Embedded3 pointer(포인터) 변수 Intro 임베디드 개발환경에서는 메모리 레이아웃을 이해하고 개발한다. 이는 개발자가 특정 메모리 주소에 접근할 수 있음을 의미한다. 주소 접근을 위해서는, 주소 번지를 알아야 하고, 필요에 따라 번지를 저장하는 변수가 필요할 수 있다. 여기서 주소 번지는 포인터라고 하고, 이를 저장하는 변수를 포인터 변수라고 한다. 포인터 변수 포인터는 주소 번지이므로, 메모리의 특정 위치를 의미한다. 즉, 포인터 변수는 번지를 저장하는 변수이다. 포인터 변수의 type 의미 int *intp char *charp 32bit 시스템에서는 번지가 4byte로 표현이 가능하다. 포인터 변수에 저장되는 값의 크기는 4byte라는 의미이다. 그렇다면, 포인터 변수 type이 왜 필요할까? 어차피 저장되는 값의 크기는 같은데!.. 2023. 1. 23. startup code - main()은 누가 호출할까 Intro 어떤 프로그램의 시작을 물어보면, 대부분 main함수라고 말한다. 그러나, 복잡도가 낮은 임베디드 시스템은 OS(운영체제)가 없다. 그렇다면, OS(운영체제)가 없는 시스템에서 main 함수는 어떻게 호출될까? ARM Core를 기준으로 이해하려고 한다. startup code 1. Entry Point 지정과 Exception Vector 설정 Entry Point를 지정하고, Exception Vector Table을 배치한다. AREA INT_VECT, CODE, READONLY CODE32 ; 32 bit ARM instruction ENTRY B Reset_Handler ; 0x0 B Undefined_Handler ; 0x4 B SWI_Handler ; 0x8 B Prefetch_H.. 2023. 1. 22. Embedded(임베디드) System이란? Intro 임베디드 시스템은 무엇이고, 다른 시스템과의 차이점을 이해하고자 한다. 임베디드 시스템이란? cambridge 영영사전으로 검색하면, 어떤 무언가 안에 존재하는 것을 의미한다. existing or firmly attached within something or under a surface 그렇다면, 컴퓨터에서 말하는 임베디드 시스템이란 무엇일까? 일반적으로 범용 컴퓨터는 General 목적 시스템이다. 그러나, 임베디드 시스템은 Special 목적의 내장 시스템이다. 예를 들어, 전자레인지, 밥솥과 같은 전자기기에 내장된 시스템이 해당한다. (비용 문제만 아니면, Special 목적의 시스템이 별도로 필요하지 않을 수 있지만...) 다른 시스템과 다른 점은? SW 개발환경(Host Syste.. 2023. 1. 21. 이전 1 다음