[Harman] 세미콘(semiconductor) 아카데미-반도체설계/임베디드 시스템을 위한 SW 구조설계(6)
-
임베디드 시스템을 위한 SW 구조설계 6
기초 CS 및 구조체, 포인터 특징 공부하였다. 메모리 구조 코드(Code) 영역 코드 영역은 실행할 프로그램의 코드가 저장되는 영역 CPU는 코드 영역에 저장된 명령어를 하나씩 가져가 처리하게 된다. 데이터(Data) 영역 프로그램의 전역변수, 정적(Static)변수가 저장되는 영역 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸 스택영역의 지역변수에 메모리가 부족하여 스택 오버플로우가 발생할 때, 해당 지역변수를 데이터영역(전역변수로)으로 선언하여 컴파일 시 오버플로우해결할 수 있다.(데이터영역이 스택영역보다 크기 때문) 힙(Heap) 영역 사용자가 malloc등의 함수로 메모리를 동적으로 할당한 영역 스택, 데이터 영역은 프로그램이 실행되는 동안 메모리 공간이 지정되어 있지만, 힙 영역은..
2023.04.18 -
임베디드 시스템을 위한 SW 구조설계 5
UART, RTC를 이용하여 Console창에서 원활히 통신이 되는지 확인하였다. UART(Universal Asynchronous Receiver Transmitter) UART (Universal Asynchronous Receiver Transmitter) = 비동기 모드로서 사용되는 시리얼통신 USART (Universal Synchronous Asynchronous Receiver Transmitter) = 동기모드로서 사용되는 시리얼통신 UART는 범용 비동기 송수신기의 약자로 직렬 데이터를 교환하는 간단한 2선식 프로토콜이다. 동기방식은 주기적인 클럭을 보내면, 이때 데이터도 같이 보내는 통신방식이다. 비동기방식은 시간을 나누어 데이터를 보내는 통신방식이다. 현재 우리가 사용하는 보드(NUC..
2023.04.16 -
임베디드 시스템을 위한 SW 구조설계 4
STM32F411RE보드를 이용하여 LED점등, 소등 중 인터럽트 발생시켰다 . 단축키 Window - Preference - keys = STM32CubeIDE의 단축키 설정창이 나온다. Ctrl + space -> 해당 코드에 관련된 함수 찾기 기능 소스코드 STM32CubeIDE에선 Project Explorer에서 관련 소스코드들을 찾을 수 있다. 구성은 Core, Drivers, Debug등 3가지 폴더로 구성되어있다. Core = 우리가 사용하는 MCU(STM32F411RE)와 관련된 폴더, 기본 소스코드인 main.c파일이 존재하는 폴더, 또한 main.h에서 우리가 사용하는 보드와 관련된 변수들이 무엇인지 볼 수 있다. Drivers = GPIO, UART, EXTI, DMA등의 우리가 사..
2023.04.15 -
임베디드 시스템을 위한 SW 구조설계 3
저번시간에 공부한 개념 복습 및 함수, 연산자, 플로팅연산을 공부하였고 STM32CubeIDE를 이용한 디버깅 사용법 숙지하였다. 하드웨어는 가산과 승산으로만 이루어져있다. 맨 끝자리 비트수를 이용하여 부호 표현을 할 수 있다. signed - unsigned 통신 코드 작성 시 BCD코드 + 3을 한 express3 코드를 많이 사용한다 헌팅턴 가설 = 2진수 연산을 하기 위한 가설 드모르간 정리 - 회로설계 시 AND게이트 -> OR게이트 / OR게이트 -> AND게이트로 바꿀 때 자주 사용 반가산기 = 2개의 비트를 더하면 CARRY발생 전가산기 = 반가산기를 2개 합친 것 (전가산기를 합쳐 ALU(덧셈회로)를 만든다) https://www.st.com/en/microcontrollers-micro..
2023.04.12 -
임베디드 시스템을 위한 SW 구조설계 2
STM32F411RE보드를 이용하여 내부 소스코드 확인 및 GPIO_Read, GPIO_Write, GPIO_Toggle 함수를 이용하여 소스코드 작성 후 LD2 LED를 점등 및 소등 하였다. 저번 시간에 GPIO PORT를 확인하며 본 레지스터는 데이터를 저장하는 기억장치로 RAM에 저장된다. 레지스터 레지스터는 각종 상태, 전송 속도, DATA길이 등의 상태들을 저장하는 데이터이다. 이 레지스터를 확인하려면 해당 소스코드의 헤더파일을 찾아 해당 함수를 호출하여 리턴값을 확인하면 된다. (16비트 레지스터는 16가지의 데이터를 저장하는 것이라 보면 된다.) GPIO GPIO의 16개 핀을 묶어 놓은 것을 GPIO 포트라 한다. 그러면 GPIO PORTA는 해당 포트안에 16개의 GPIO핀이 존재한다 ..
2023.04.08 -
임베디드 시스템을 위한 SW 구조설계 1.2
ST사의 STM32F411RE보드를 이용하여 공부를 진행하였다. 개발환경에서 가장 중요한 것은 타겟과 에뮬레이터이다. 에뮬레이터 에뮬레이터는 보드 없이 호스트 PC상에서 타깃 바이너리 파일을 수행할 수 있는 프로그램을 말한다. 에뮬레이터를 이용하면 실제 보드 없이 가상 임베디드 시스템을 구성하여 어플리케이션을 테스트 할 수 있다. 개발은 무조건 사용되는 MCU의 데이터시트를 참고하며 진행해야한다. ST사 홈페이지에서 현재 우리가 사용하는 보드(NUCLEO-F411RE)의 회로도와 MCU(STM32F411RE)의 데이터시트를 다운로드받을 수 있다. MCU(STM32F411RE)의 데이터시트를 보면 인터럽트 기능을 가진 81개의 I/O 포트, 13개의 통신 포트(3개의 I2C포트, 3개의 USART포트, 5..
2023.04.08