[HARMAN] 세미콘 아카데미/Embedded 6

[Harman 세미콘 아카데미] Day_91(Embedded)

저번주에 이어 FND를 Control 해보겠습니다.Watch와 Stopwatch의 핵심은 정확한 시간이기 때문에, Timer Counter Peripheral으로 1ms마다 Interrupt 발생을 통해 시간을 잽니다. 인터럽트의 동작 방식을 확인하면 Instruction Memory에 인터럽트용 전용 주소가 있고, 그 외에는 User Code가 들어가게 됩니다. 그래서, User Code를 수행하다가 Interrupt가 발생하면, PC에 현재 위치를 임시로 저장하고 해당 Interrupt의 위치에 접근하여 저장되어 있는 "함수 주소"를 받아 다시 이동하여 수행합니다.User Code -> 인터럽트 발생 -> 해당 인터럽트 주소 접근 -> 내부에 저장된 함수 주소 이동 -> 함수 실행 -> 복귀 아..

[Harman 세미콘 아카데미] Day_90(Embedded)

FND 설계하기 : 10000진 Counter를 FND에 출력하도록 설계, 1번 버튼을 누르면 Counter Stop, 2번 버튼 누르면 Counter Start, 3번 버튼을 누르면 숫자가 Clear 되도록 설계 FND. c Code : FND의 메인 함수에는, FND를 켜기 위해 SEL 신호를 통해 Common 단자를 GPIO_WritePin 함수를 통해 PIN_RESET을 시켜줍니다(Annode Type). 또한, 들어오는 값을 Segment에 출력하기 위해 Decoding이 필요하기 때문에 switch - case 문을 통해 값을 변경해 줍니다.https://github.com/Heeju99/embedded/blob/main/250619_LED_Button1/Src/driver/FND/FND...

[Harman 세미콘 아카데미] Day_89(Embedded)

Application에서 인접한 Layer를 통해 메시지를 송수신 합니다. 지금의 설계는 LED를 Shift하는 Applicaion이 인접한 Driver에 전달하고, HW인 LED와 GPIO를 통해 연결합니다. 그리하여, 최종적으로 stack을 쌓아 LED를 출력하도록 합니다. 이러한 SW Stack구조로 만들면 재사용성이 좋다는 장점이 있습니다.--> Stack내 인접한 layer간의 메시지 전달을 수행합니다. 오늘을 Button을 통한 LED 제어를 동작하는 것을 시작하겠습니다. 먼저 RCC(Reset & Control Clock)에 대한 폴더를 새로 만들어, GPIO A,B,C에 대해 Clock을 넣어줍니다. 그렇게 main문 설정을 진행합니다. LEDBar_write(data)를 통해 좌로 ..

[Harman 세미콘 아카데미] Day_88(Embedded)

Nucleo - F411RE 보드를 활용한 임베디드 시스템 설계 Nucleo - F411RE Features :- ARM Cortex -M4 Proccessor- 512Kbyte Flash Memory- 128Kbyte RAM- 100Mhz Frequency Nucleo - F411RE 보드 Pinout 참고자료 : CLK 관련 : System Core -> RCC -> Mode(HSE) -> Clock Configuration(HSE, frequency = 8, PLLCK, HCLK = 100) ㄴ CLK 설정을 안하면 16MHz의 HSI RC인 PLL이 자동으로 사용됩니다 SYS : 시스템을 디버깅하기 위한 Option -> Serial Wire Nucleo 보드의 DataSheet..

[Harman 세미콘 아카데미] Day_87(Embedded)

포인터 : 특정 값이 저장된 메모리의 주소에 접근하기 위해 사용, (주소를 저장하는 메모리 공간) ㄴ 식 : int *pa -> 주소를 구한 변수의 형태를 포인터 기호(*)를 통해 지정 위의 코드를 실행하여 조사식을 확인해 보면, a라는 변수가 있는 메모리의 주소가 pa에 0x5ffec4라는 값으로 저장이 되고, 이를 포인터로하여 해당 위치에 10이라는 값을 저장하게 됩니다. 그래서, 0x5ffec4라는 메모리 주소에 10이라는 값이 저장되게 됩니다. Little Endian : CPU가 읽는 방식 -> 1234를 "일이삼사"라고 읽고, 4 -> 3 -> 2 -> 1 순으로 저장 (LSB가 낮은 메모리에 저장)Big Endian : 사람이 읽는 방식 -> 1234를 "천이백삼십사" 라고 읽고..

[Harman 세미콘 아카데미] Day_86(Embedded)

📖 교재 : 혼자 공부하는 C언어 개발환경 설정 : VSCode + GCC -> Msys2 : Linux 환경 구현 ㄴ 참고 자료 : https://code.visualstudio.com/docs/cpp/config-mingw Using GCC with MinGWConfiguring the C++ extension in Visual Studio Code to target g++ and gdb on a MinGW-w64 installationcode.visualstudio.com C언어 특징 : 유닉스를 개발하기 위해 만든 언어, 시스템 프로그래밍 가능, 이식성 갖춘 프로그램 개발 가능, 개별 프로그래밍 가능 컴파일 과정 3단계 : 1) 전처리 : 전처리 지시자에 따라 소스 파일을 가..