All posts by RSR

STM8S

DM00024550_STM8S003F3_Datasheet

PM0044_STM8 CPU programming manualpd

RM0016_STM8S_STM8A_Reference manual

리눅스에서 sdccstm8flash로 개발 가능

High-Quality-Mini-Board-STM8S003F3P6-Development-Board-Program-Module-With-Download-Serial-Port-Pin

알리에서 싸다고 몇개 구매했는데…. 지금 생각해보니 저렴하지 않은듯.. (2.5$)
회로도를 구하지 못했다.. J2를 쇼트시키면 PA3에 LED가 연결되어 있다

짜깁기 하여 IRQ로 UART 처리하는 코드

#include <string.h>
#include "stm8s.h" // stm9l.h랑 다른거다, 다른부분 다 비슷한데 CLK 부분이 DS랑 좀 다르다...

int uart_write(const char *str) {
	char i;
	for(i = 0; i < strlen(str); i++) {
		USART1_DR = str[i];
		while(!(USART1_SR & USART_SR_TXE));
	}
	return(i); // Bytes sent
}

unsigned char GetByte(void)
{
	while (!(USART1_SR & USART_SR_RXNE));
	return USART1_DR;
}

void PutByte(unsigned char Data)
{
    USART1_DR = Data;
    while (!(USART1_SR & USART_SR_TXE));
}

void USART_RX_ISR(void) __interrupt 18
{
	uart_write("GOT ST ");
	PutByte(GetByte());
	uart_write("\r\n");
}

int main() 
{
	int d;

	PA_DDR = 0x08; // PA3
	PA_CR1 = 0x08;
	
	CLK_DIVR = 0x00; // Set the frequency to 16 MHz
	CLK_PCKENR1 = 0x08; // Enable UART1

	USART1_CR2 = USART_CR2_TEN | USART_CR2_REN |USART_CR2_RIEN; // Allow TX & RX
	USART1_CR3 &= ~(USART_CR3_STOP1 | USART_CR3_STOP2); // 1 stop bit
	USART1_BRR2 = 0x03; USART1_BRR1 = 0x68; // 9600 baud
	
	__asm__("rim"); // Enable Interrupt
	
	while(1)
	{
		//PA_ODR ^= 0x08;
		for(d = 0; d < 29000; d++);
		//uart_write("Hello World!\r\n");
		//PutByte(GetByte());
	}
}

 

TIM1_CH3에 PWM 출력샘플 (아 이거하느라고 되게 애먹었는데..  OISR에서 or 연산이 제대로 안되서 그랬던거같다….)

int main() 
{

	TIM1_ARRH = 0x0F;
	TIM1_ARRL = 0xFF;
	
	TIM1_PSCRH = 0x00;
	TIM1_PSCRL = 0x00;
	
	TIM1_CR1 = 0x00; 
	TIM1_RCR = 0;
	
	TIM1_CCER2 = 0x0f;
	TIM1_CCMR3 = 0x70;
	TIM1_OISR = 0x7F;
	TIM1_CCR3H = 0x03;
	TIM1_CCR3L = 0xFF;
	TIM1_CR1 =0x01;
	TIM1_BKR = 0x80;

	while(1);
	return 0;
}

 

사용한 Makefile

SDCC=sdcc
SDLD=sdld
OBJECTS=myStm8.ihx
OBJECT=myStm8
.PHONY: all clean flash

all: $(OBJECTS)

clean:
	rm -f $(OBJECTS)

flash: $(OBJECT).ihx
	stm8flash -cstlinkv2 -pstm8s003f3 -w $(OBJECT).ihx

%.ihx: %.c
	$(SDCC) -lstm8 -mstm8 --out-fmt-ihx $(CFLAGS) $(LDFLAGS) $<

이왕 환경구성한거 몇개 더샀다
저렴하다(0.78$) 크리스탈이 없다(내부클럭 쓰나?…)
HTB11CtFMFXXXXadXFXXq6xXFXXXf
http://www.aliexpress.com/item/1pcs-lot-STM8S103F3P6-system-board-STM8S-STM8-development-board-minimum-core-board/32524292414.html

VxWorks Basic and Frequent Command

출처 : http://csg.lbl.gov/pipermail/vxwexplo/2003-March/000762.html
http://www.dfcgen.de/refcards/vxworks.pdf
자주쓰는건 볼드처리

agentModeShow( ) – show the agent mode (*) (WindSh)
b( ) – set or display breakpoints (WindSh)
bd( ) – delete a breakpoint (WindSh)
bdall( ) – delete all breakpoints (WindSh)
bh( ) – set a hardware breakpoint (WindSh)
bootChange( ) – change the boot line (WindSh)
browse( ) – send a message to the browser asking it to browse an
address (*) (WindSh)
c( ) – continue from a breakpoint (WindSh)
cd( ) – change the default directory (WindSh)
checkStack( ) – print a summary of each task’s stack usage (WindSh)
classShow( ) – show information about a class of objects (*) (WindSh)
cplusCtors( ) – call static constructors (C++) (WindSh)
cplusDtors( ) – call static destructors (C++) (WindSh)
cplusStratShow( ) – show C++ static constructors calling strategy (*)
(WindSh)
cplusXtorSet( ) – change C++ static constructor calling strategy (C++)
(WindSh)
cret( ) – continue until the current subroutine returns (WindSh)
d( ) – display memory (WindSh)
devs( ) – list all system-known devices (WindSh)
h( ) – display or set the size of shell history (WindSh)
help( ) – print a synopsis of selected routines (WindSh)
hostShow( ) – display the host table (WindSh)
i( ) – print a summary of each task’s TCB, task by task (WindSh)
iStrict( ) – print a summary of all task TCBs, as an atomic snapshot(*) (WindSh)
icmpstatShow( ) – display statistics for ICMP (WindSh)
ifShow( ) – display the attached network interfaces (WindSh)
inetstatShow( ) – display all active connections for Internet protocol
sockets (WindSh)
intVecShow( ) – display the interrupt vector table (WindSh)
iosDevShow( ) – display the list of devices in the system (WindSh)
iosDrvShow( ) – display a list of system drivers (WindSh)
iosFdShow( ) – display a list of file descriptor names in the system(WindSh)
ipstatShow( ) – display IP statistics (WindSh)
l( ) – disassemble and display a specified number of instructions(WindSh)
ld( ) – load an object module into memory (WindSh)
lkAddr( ) – list symbols whose values are near a specified value(WindSh)
lkup( ) – list symbols (WindSh)
ls( ) – list the contents of a directory (WindSh)
m( ) – modify memory (WindSh)
memPartShow( ) – show partition blocks and statistics (WindSh)
memShow( ) – show system memory partition blocks and statistics(WindSh)
moduleIdFigure( ) – figure out module ID, given name or number (*)(WindSh)
moduleShow( ) – show the current status for all the loaded modules(WindSh)
mqPxShow( ) – show information about a POSIX message queue (*)(WindSh)
mRegs( ) – modify registers (WindSh)
msgQShow( ) – show information about a message queue (WindSh)
period( ) – spawn a task to call a function periodically (WindSh)
printErrno( ) – print the definition of a specified error status value(WindSh)
printLogo( ) – display the Tornado logo (WindSh)
pwd( ) – display the current default directory (WindSh)
quit( ) – shut down WindSh (*) (WindSh)
reboot( ) – reset network devices and transfer control to boot ROMs(WindSh)
repeat( ) – spawn a task to call a function repeatedly (WindSh)
routestatShow( ) – display routing statistics (WindSh)
s( ) – single-step a task (WindSh)
semPxShow( ) – show information about a POSIX semaphore (*) (WindSh)
semShow( ) – show information about a semaphore (WindSh)
shellHistory( ) – display or set the size of shell history (WindSh)
shellPromptSet( ) – change the shell prompt (WindSh)
show( ) – display information on a specified object (WindSh)
smMemPartShow( ) – show user’s shared memory system partition blocks
and statistics (*) (WindSh)
smMemShow( ) – show the shared memory system partition blocks and
statistics (WindSh)
so( ) – single-step, but step over a subroutine (WindSh)
sp( ) – spawn a task with default parameters (WindSh)
sps( ) – spawn a task with default parameters, and leave it suspended(*) (WindSh)
sysResume( ) – reset the agent to tasking mode (*) (WindSh)
sysStatusShow( ) – show system context status (*) (WindSh)
sysSuspend( ) – set the agent to external mode and suspend the system(*) (WindSh)
taskCreateHookShow( ) – show the list of task create routines (WindSh)
taskDeleteHookShow( ) – show the list of task delete routines (WindSh)
taskIdDefault( ) – set the default task ID (WindSh)
taskIdFigure( ) – figure out the task ID of a specified task (*)(WindSh)
taskRegsShow( ) – display the contents of a task’s registers (WindSh)
taskShow( ) – display task information from TCBs (WindSh)
taskSwitchHookShow( ) – show the list of task switch routines (WindSh)
taskWaitShow( ) – show information about the object a task is pendedon (*) (WindSh)
tcpstatShow( ) – display all statistics for the TCP protocol (WindSh)
td( ) – delete a task (WindSh)
tftpInfoShow( ) – get TFTP status information (WindSh)
ti( ) – display complete information from a task’s TCB (WindSh)
tr( ) – resume a task (WindSh)
ts( ) – suspend a task (WindSh)
tt( ) – display a stack trace of a task (WindSh)
tw( ) – print info about the object the given task is pending on (*)(WindSh)
udpstatShow( ) – display statistics for the UDP protocol (WindSh)
unld( ) – unload an object module by specifying a file name or moduleID (WindSh)
version( ) – print VxWorks version information (WindSh)
w( ) – print a summary of each task’s pending information, task by
task (*) (WindSh)
wdShow( ) – show information about a watchdog (WindSh)

UML 종류

배우긴 했는데… 하도 헷갈려서 찾아보니 정리가 잘되있다

https://www.lucidchart.com/pages/uml-tutorial

ACTIVITY DIAGRAMS
UML_activity_diagram-500x713

USE CASE DIAGRAMS
UML_use_case_diagram-500x403

CLASS DIAGRAMS
UML_class_diagram-900x320

SEQUENCE DIAGRAMS
UML_sequence_diagram-700x664

COMPONENT DIAGRAMS
UML_component_diagram-700x371

DEPLOYMENT DIAGRAMS
UML_deployment_diagram-700x505

ChromeOS 복구

지금 ChromeOS 복구 미디어를 만드려면 Chrome App을 설치해야된다…
예전에는 스크립트만 있으면 됫는데 싶어서 찾아보니 있다!!

https://dl.google.com/dl/edgedl/chromeos/recovery/linux_recovery.sh

설정파일
https://dl.google.com/dl/edgedl/chromeos/recovery/recovery.conf

내 크롬북에 맞는 이미지
https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_7834.70.0_x86-alex-he_recovery_stable-channel_alex-mp-v4.bin.zip

그냥 압축풀어다가 dd로 구우면된다

알리발 USB 3.0허브

http://www.aliexpress.com/item/High-Quality-Sliver-USB-3-0-HUB-4-ports-Splitter-Adapter-Aluminum-Hub-for-Apple-Macbook/32515102822.html

5.4$ 구매,  18일 쉬핑 30일 수령 셀러쉬핑, 송장 708665????2 (트래킹 불가)

납땜 눈감고 한듯… 아쉬운 마감(스크래치..) 가격이 모든걸 용서

노트북에 쓸려고하는데 우측에 꽂으니까 방향이 반대로 된다….
시간나면 납땜 다시해서 방향을 바꿔야지…

20160530_204452 20160530_204506 20160530_204535 20160530_204545 20160530_204553 20160530_204842