전체 글 153

FreeRTOS porting

RTOS 사용 : thread 들이 거의 동시에 동작하면서도(실제로는 CPU가 왔다갔다)    그와중에 진짜 필요한 task는 우선적으로 실행될 수 있도록함 (우선순위) 0. STM32 cubeide > from1.5.0 1. cube32 Folder > Third party > FreeRTOS Folder2. lib 폴더에 복붙3.빌드제외     CMSIS V2      portable Folder > gcc, memmang 이외      GCC Folder      > ARM_CM3        이외     Mammeng        > heap_4              이외                              // 정적으로 스택메모리 사용 (static)4. Include    I..

4장 ,안한부분 끝 // 완

1, Assembly Helloworld.s -----------------------------------------------------------------------CODE32 ; ARM mode로 짰삼.AREA Helloworld CODE, READONLY ; 이 코드 block의 이름과 속성, 이름은 HelloWorld // CODE의 모음 AREAENTRY ; Instruction이 제일 처음 실행할 곳.BEGIN ; label      ADR r0, THUMB+1 ; r0에 THUMB label의 주소를 넣음.      BX r0 ; r0값으로 점프CODE16 ; 여기서부터는 THUMB mode로 컴파일 해줘.THUMB ; label      ADR r1, TEXT ; r1 ← "Hello..

2장 이어서 ~ 3장까지 (완)

1. extern  :: linker 에게 구멍 위치를 알려준다는 느낌 섹션별로 분리하고 모으고 분리하고 모으고.. > 실행가능한 파일로 만들어줌    > Relocate// Segment = ∑ Sections  2. Linker 의 link rule ( 동일한 이름의 Global symbol )   >   strong : 함수와 초기화가 된 전역변수 Weak  : 초기화가 되지 않은 전역변수  1) 여러 개의 Strong Symbol  > X   :: Link error2)  한개의 Strong Symbol, 여러 개의 Weak Symbol  >> Strong Symbol 선택3) 여러 개의 Weak Symbol  > 아무거나 하나 골라서 선택// Flag : True, false     > stat..

2장 이어서

1. .Preprocessor (.i) .c -> .s -> .o -> .elf -> bin  #ifdef :: 2중 define 막기위함 2. sta tic ::  C++ : protect     > 자기 함수, .c파일내에서만 global          > exturn 불가 3. Volatile : 같은 주소에 값을 연달아 넣을때 최적화방지 4. symbol : 자신만의 주소를 갖는 단위 :: global     local : 자신만의 주소 X  5. const : ReadOnly : 값 따로 못줌   ex) const int i;  > i 는 쓰레기값으로 평생 살아야함                   i=3; >> X 컴파일에러  6. RO, RW : read / write    > ROM 에 저..

2장 정리

1. word : CPU 가 한번에 처리할 수 있는 크기 2. Thumb mode : 과거에 쓰던거라서..   > uint16_t 짜리 data 를 uint32_t 버퍼에 넣는거랑 비슷함      // 2번 가져오지뭐,, 3. ARM mode     normal : USR , 나머지 : privileged       >> USR -> privileged X 4. 모드별 Register N : Negative : 마이너스2) Z : Zero : 0 일때 3) C : Carry : 자리올림.4) V : over flow 하위 7 bit : IRQ        6 bit : FIQ       > 0 :: enable        5 bit : Thumb       0~4 bit : 현재 mode  SPSR  ..

1장 이어서

13.  Ripple 제거 : DC의 흔들림 (약간의 AC) 제거하기 위함 ( 보통] 캐페시터 사용) 14. CONTROL/ : High > T1 : ON  > 0V: T2의 Emittor쪽 > T2 : OFF  > OUT : 0V (R2)                   : Low > T1 : OFF > INPUT > T2 : ON > OUT : INPUT // R2 : 평소에 0V 묶기 위한 High Active Pull Down 15. IC chip : NC : No Connection 16. Register : Flip Flop의 집합  // FLip Flop(Latch) : 1bit 정보저장 input 이 새로 들어올때까지 data out 을 유지함 > Memory 기능 17.    Bus(lo..

Chapter 1

메인 보드  ( 여러 부품 연결)                내                                          밖   CPU,  메모리     보조기억, 입출력장치                             ( 여러 정보 연결)                            (제어, 주소 , 데이터 )   > 제어 bus : 제어신호 (읽기? 쓰기? 저장?)   > 주소 bus : 읽고자 하는 주소   > 데이터 bus : 내용  메모리 : 현재 실행중인 명령어,데이터 저장 (주소)>CPU : 메모리 내용 읽어들여서 처리      ( ALU ,레지스터 , 제어장치)    : ALU ) 산술논리연산    : 레지스터) 임시저장    : 제어장치) 제어신호  ( ex) 메..

CS/혼공컴운 2025.01.21

1장 정리안된부분

1. cos2ㅠft :       시간영역) 시간과 신호크기에 대한 주파수 ( 2가지성분)  : AC  // 극성이 바뀜 // 주파수 O      주파수영역) 주파수에 대한 주파수크기(진폭) ( 1가지성분)       : DC // 극성 유지( AC의 평균값 )  // 주파수 0// 주파수 크기 == 진폭2. FFT   : 세상의 모든 신호를 cos 과 sin의 무한한 합으로 나타낼 수 있다. ( DC + AC )   /*cos⁡(2πt) ::  주기가 1 , f = 1Hz > FFT     :  Δf = 1/T 시간을 길고 짧게 짤라서 그때의 주파수를 재해석함   > 가능한 모든 주파수의 영역을 계산// 함수 그래프처럼 일부를 짜르는 것이 아님.  ex)cos(2πft) :: 무한한 시간에서도 진폭이 ..

Excetption , JTAG, ICD (완)

Memory Map :: 다른데는 다 FF 인데 > 0xFD 이면 > SDRAM 불량 ICE : In-Circuit Emulator   Host의 Debugger > Taget 의 Regi, memory내용 > 실시간 읽고쓰기 + break point + step : go-break 를 한번에 해줌  > step-by-step 으로 관찰가능 > with Host ) USB , Ethernet , Paralled 로 통신   with Target ) JTAG    > HW pin 직접 control 가능 ARM : JTAG MACRO cell 존재 : bountdary scan 기술적용    > CPU상황 모니터링 JTAG : 프로세서를 들여다 볼수있음 + memory access , CPU 하는일 중간에..