Embeded/ARM Cortex-M4

펌웨어(Firmware)의 구조

gharlic 2015. 7. 8. 02:38

 앞으로 포스팅될 게시물들은 각 기능에 대한 설명과 더불어 부분적인 소스를 제공할 것이다.

MCU를 처음배우는 사람들은 각 기능의 소스를 제공하더라도 활용하지 못하기 때문에

기본적인 펌웨어의 구조를 제시하겠다. 여기서 펌웨어란 임베디드에서의 소스코드(Source Code)를 말한다고 할 수 있다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include 라이브러리들
 
#define 타이머 프리스케어 (타이머의 주기)
 
int 전역변수들(각 함수내에서 static으로 대체가능)
 
void Init_Timer(); //함수원형
 
void main() {
        초기화함수들 호출
        while(1) {
        } // 종료방지
}
 
void Init_Timer() { //함수정의
~~~~
}
 
void Timer_Handler() {
~~~~
}
 
cs

 1번째 줄은 라이브러리를 사용할 경우에 해당한다.

 

 3번째 줄의 타이머 프리스케어는 다음에 포스팅할 Timer 소스에서 자세히 설명하겠다.

간단히 말하면 타이머의 속도를 결정하는 역할을 한다.

 

 5번째 줄은 이전 포스팅에서 토글기능을 위해 static int 변수를 사용했었는데

static으로 함수 내부에 위치시켜 가독성을 좋게 할 수도 있고

해당 변수가 여러 곳에서 사용될 경우 전역변수로 처리한다.

 

나머지는 이미 설명한 바와 같다.

위와 같은 기본적인 틀에 필요한 기능들을 덧붙여 펌웨어를 작성하게 된다.

반응형

'Embeded > ARM Cortex-M4' 카테고리의 다른 글

Timer / Timer_Handler 소스  (0) 2015.07.08
라이브러리(library)코딩과 레지스터(Register)코딩  (0) 2015.07.08
타이머(timer)와 인터럽트(interrupt)  (0) 2015.07.08
STM32F4 핀배열  (0) 2015.07.07
myCortex STM32F4 스펙  (0) 2015.07.07