우리 주변에는 많은 종류의 컴퓨터 언어가 존재합니다. 하지만 그 중에서 C언어만이 모든 Processor를 제어할 수 있습니다. 가전 제품, 자동차 등에 필요한 Processor를 C언어를 통해 만드는 이유가 바로 이것이죠
C언어가 갖는 강력한 특징이 무엇일까요?
그것은 바로
포인터 연산입니다. 그렇다면 포인터 연산이란 무엇일까요?
누구에게 편지를 보낼 때, 주소에 번지를 쓰는 것과 동일하게 Processor 내부에는 모든 구성요소를 번지로 구분합니다. 이 번지를 저장하고, 번지 값을 연산하는 등의 과정들을 포인터 연산이라고 합니다.
이번 강의는 지난 강의에 이어 C언어와 프로세서 기초를 배우시는 분들을 위해, C언어에서 가장 중요한 포인터 개념에 대해 학습해보겠습니다.
실습 예제 : CodeMania를 이용하여 GPIO port를 통해 LED를 점멸하는 과정에서 번지가 어떻게 사용되는지 단계별 설명
C언어는 직접적으로 번지를 통해 Core가 접근하고자 하는 임의의 주변 장치들에 접근하도록 허락할 수 있습니다.
다시 말해서, Processor의 내부를 보면, 명령어를 해석하는 Core와 Core의 명령에 따라서 동작을 수행하는 주변 장치들로 구성되어 있습니다.
이때, 각각의 주변 장치, 예를 들면, 외부의 온도 센서와 연결되어 있는 주변 장치에 Core가 현재의 온도 값을 읽으라고 명령하기 위해서는 해당 주변 장치의 Controller를 제어할 수 있어야 합니다.
이때, Controller를 제어한다는 것은 결국, Controller를 구성하는 Register에 새로운 값을 설정한다는 의미이고, 이들 Register를 식별하는데 사용하는 것이 바로 번지입니다.
그러므로, Core가 많은 주변 장치들 중에서 온도 센서에 연결되어 있는 Controller의 특정 Register에 새로운 값을 설정할 수 있는 것은 해당 Register가 갖고 있는 유일한 즉 고유한 번지에 접근할 수 있기 때문입니다.
웨비나 주요내용
-C언어의 포인터 개념
-번지 연산 이해
-Controller 제어 원리
-Controller를 구성하는 register 식별
-GPIO를 통한 번지 가동 원리