Day 4 - Memory Endian
·
IDEC 교육/Embedded C
Big EndianHigh Order Byte: 낮은 주소에 기록ADDR | 0x123456780x100 | 0x120x101 | 0x340x102 | 0x560x103 | 0x78Little EndianLow Order Byte: 낮은 주소에 기록ADDR | 0x123456780x100 | 0x780x101 | 0x560x102 | 0x340x103 | 0x12
Day 3 - Function Pointer
·
IDEC 교육/Embedded C
Function Pointer함수 포인터: 함수를 가리키는 포인터 변수*: Pointer / []: Array / (): Function 으로 생각Examplevoid func(int a, int b) { ... } // 정의...int main(){ void (*p)(int, int); // 함수 포인터 변수 p = func; p(1, 2); return 0;}Usage 1-1함수는 매개변수를 전달 받고 다음 함수로 전달하는 경우가 있는데그럴때, 함수 포인터를 매개변수로 전달 받을 수 있고, 유기적인 함수의 선택이 가능하다.qsort(퀵소트, 퀵정렬)함수와 같은 경우 compare함수를 매개변수로 전달 받는데,이때 사용자는 해당 함수만 수정하여 기능을 변경 할 수 있다.Usage ..
Day 2 - Pointer & Array
·
IDEC 교육/Embedded C
Pointer*: PointerArray[]: Array연산자 우선 순위C언어 코딩도장 25.0 연산자 우선순위 알아보기[] -> * 순으로 우선 순위가 높으므로 (여기서 ()는 우선 처리의 의미)int *arr[4]: 배열int (*arr)[4]: 포인터라고 정리 할 수 있다.Pointer Variable모든 Pointer 변수는 크기가 4 Byte이다 = 주소값은 항상 4 Byte 크기예시char *p: Pointer to charint *p: Pointer to intint (*p)[4]: Pointer to Array(4 int)int *p[4]: Array of Pointer(4 int*)복잡한 예시 | name | type | target ..
Day 2 - Preprocessor
·
IDEC 교육/Embedded C
#define (= 치환)#define은 치환을 하는 기능을 함EXAMPLE을 42로 치환하는 예제#define EXAMPLE 42 #if  #else  #endif  (= 조건 컴파일)컴파일시에 컴파일을 할지 안할지 선택 가능ifdef는 조건으로 하나의 정의된 형식만 사용 가능 (ifndef는 !ifdef와 같음)#ifdef 조건~#else~#endif#ifndef 조건~#else~#endifif는 조건으로 여러 정의 형식 사용 가능#if(조건)~#else~#endifelif를 사용하여 조건을 추가하여  사용 가능#if(조건)~#elif~#else~#endif Header file 작성시 활용a.h#ifndef _A_H_#define _A_H_~#endifb.h#ifndef _B_H_#define _B..
Day 1 - Build 과정
·
IDEC 교육/Embedded C
Keil에서 Buildaxf / bin(optional) / hex(optional)axf: windows에서의 exe와 같은 실행 파일(elf = Executable and Linkable Format 의 변형)Code & Data (bin의 내용): .text(Code) / .ro / .rwDebug 정보: 소스 코드와 기계어 코드 간의 매핑을 위한 라인 번호, 함수 이름, 변수 이름 등의 정보Symbol Table: 프로그램 내의 함수와 변수의 이름 및 주소 정보를 포함Section Header & MetaData: 각 섹션의 시작 주소, 크기, 속성 등 상세 정보를 제공Relocation 정보(optional): 실행 시 주소 조정을 위해 필요한 경우, 코드와 데이터 위치를 재배치할 수 있는 정보..
Day 1 - Variable의 선언 vs 정의
·
IDEC 교육/Embedded C
Declare vs Define선언: Type을 Comiler에게 알려주는 역할 (메모리 할당 X)extern int a;정의: 변수명 지정으로 실체화 (메모리 할당 O)int a;
Day 1 - Keil Settings & Global, Local Variable
·
IDEC 교육/Embedded C
Keil ToolProject SettingsTarget SettingsAddress of Variablemain.c#include #include "ARMCM3.h"#include "core_cm3.h"int gVar;int fputc(int c, FILE * fp){ ITM_SendChar(c); return c;}void MyFunc(){ int a, b; printf("%#010x \r\n", (int)&gVar); printf("%#010x, %#010x \r\n", (int)&a, (int)&b); return ;}void MyFunc2(){ MyFunc(); return ;}int main(){ printf("%#010x \r\n", (int)&gVar); MyFunc(); MyFun..