ALL127 [C/C++] 고정된 너비 정수 (fixed-width integers) 자료형 1. 고정된 너비 정수 (fixed-width integers)다음과 같은 고정된 너비 정수 자료형은 stdint.h 헤더파일 typedef로 정의되어 있다.고정된 너비 정수원시자료형바이트 (Byte)int8_tchar 1uint8_tunsigned char1int16_tshort2uint16_tunsigned short2int32_tint4uint32_tunsigned int4int64_tlong long8uint64_tunsigned long long8이 같은 자료형을 사용하는 이유는 비트수를 고정하여 모든 시스템(프로그램)에서 동일한 bit수를 사용하도록 위함이다.예를 들어 32 비트 정수는 항상 4byte(32비트)를 사용한다.고정된 너비 정수는 정해진 비트 수만큼 메모리를 차지하므로, 메모리 관.. 2024. 7. 9. [F/W] 펌웨어 구현 시 메모리 관리 펌웨어란 하드웨어를 직접 접근하고 제어하는 밀접한 관계를 가지고 동작하는 소프트웨어의 일종이다.그렇기 때문에 일반적인 어플리케이션 소프트웨어와는 다르게 조금 더 신경 써줘야한다고 생각한다. 수정: 스택은 컴파일러가 정해주고 힙은 런타임(프로그램 실행 중 동적으로 바뀜)1 .스택 오버플로우 (Stack Overflow) 예방펌웨어의 크기가 커질수록 또는 최적화해야 할 필요가 있다면, 자신에 시스템에 맞는 스택과 힙의 크기를 결정해야 한다.스택은 메모리 최상단에 위치하여 데이터가 추가될 수록 아래로 커지는 자료구조힙은 반대로 데이터가 추가될 수록 위로 커지는 자료구조스택 여유 공간 확인 (모니터링) : FreeRTOS 테스크를 사용중이라면 각 태스크의 스택 사용량을 확인 할 수 있다. 또는 런타임 시 스택의.. 2024. 6. 25. [C++] 참조자 (Reference)/ 참조에 의한 호출(Call-by-reference) 1. C++ 참조자#include using namespace std;int main(void) { int num1 = 2024; int &num2 = num1; // num2는 변수 num1을 참조한다. (num1의 참조자가 된다.) num2++; cout 기존 C언어에서 & 연산자는 변수의 주소값을 반환하는 연산자 였다.변수선언에서 변수명 앞의 & 연산자는 여기서 "참조자(Reference)" 선언의 의미가 된다.참조자는 비유적으로 별칭이다. (변수로 봐도 문제가 없다)오로지 변수만 참조할 수 있다.참조하는 변수 메모리 공간을 사용한다.참조자의 수에는 제한이 없으며, 참조자를 대상으로도 참조자를 선언할 수 있다. (하지만, 필요이상으로 선언하는 것은 바람직하지 못하다.)아래는 참조자 선언의 잘못.. 2024. 6. 21. [C++] 함수 오버로딩 (Function Overloading) 1. 헤더파일 선언문의 확장자# include int main (void) { int num = 20 ; std :: cout 과거 입력 및 출력에 관한 일을 하기 위해서 .h 의 확장자를 붙여 헤더파일을 선언하였다.그러나 다음 2가지 이유로 헤더파일의 포함에는 확장자를 생략하기로 한다.현재 C++ 컴파일러는 를 지원하지 않는 추세로 접어들었다.과거의 표준 라이브러리와 새로운 표준 라이브러리의 구분새로운 표준 라이브러리를 사용하는 형태로 소스코드를 쉽게 변경할 수 있도록2. 함수 오버로딩 (Function Overlording)int MyFunc(int num) { num++; return num;}int MyFunc(int a, int b) { return a + b;}C언어에서는 위의 코드와 같이.. 2024. 6. 20. [F/W] CPU 구조 및 동작 CPU의 구성과 동작 원리는 펌웨어 개발에 도움이 많이 될 것 같아서 정리해본다.CPU는 논리회로의 집합체이다. 개인적으로 생각으로는 이런 CPU를 만들어내는 것이 진정한 반도체 기술이라고 생각한다. (우리는 이미 만들어진 CPU를 사용하여 또 다른 회로를 만든다... ) CPU에 구성된 pin들에 신호를 주게되면, 그에 대한 일을 수행하는 원리이다. 예를 들어 8bit CPU에서 0~7번 까지의 약속된 신호를 주게 되면 CPU는 그에 해당하는 일을 하게 된다. 당연하게도 CPU제조사 마다 구성은 다르기에 핀을 굳이 외우고 다닐 필요까진 없고1. CU (Control Unit, 제어 유닛)제어 유닛인 CU는 ALU과 REGISTER 등의 주변 유닛을 제어하여 기계어 명령을 읽고 어떤 동작을 해야하는 해석.. 2024. 6. 18. USB to UART 회로 1. USB to UART는 어디에 사용하는가?MCU (마이크로컨트롤러, 요새는 프로그래밍이 가능한 SoC를 포함하기도 한다)를 활용하는 임베디드 개발자는 MCU에 동작 펌웨어를 빌드하는 과정이 필요하기 마련이다.또한 간단한 시리얼 통신으로 현재 MCU 작동 상태를 모니터링하는 디버깅 수단이 필요할 수 도 있겠다.PC와 MCU를 연결하여 이러한 과정을 수행할 수 있는데, 그 수단중 하나가 USB (PC 인터페이스)와 UART (MCU 인터페이스) 이다.즉 위에 상기된 과정을 수행하기위한 USB to UART 회로 (USB신호를 UART 신호로 변경하거나, 혹은 그 반대의 경우)가 사용된다.2. USB와 연결할 타겟 시스템 MCU의 데이터시트를 확인하자펌웨어 다운로드 모드로 진입하는 조건과 UART의 사양.. 2024. 6. 12. 이전 1 ··· 4 5 6 7 8 9 10 ··· 22 다음