프로그램을 개발할 환경이 모두 갖추어 졌으면 본격적으로 프로젝트를 하나씩 만들어 나가도록 하겠다. 이번 글에서는 최초 보드에 전원이 on 되는 시점에 어디에서 어떻게 프로그램이 동작되는지 알아보고, 실제 프로그램을 만들어서 보드에서 동작 시켜 보도록 하겠다.일반적으로 ARM에서는 memory map을 규정하지 않고, 실제 칩을 만드는 반도체 회사에서 칩의 구조에 맞게 memory map을 설정한다.하지만, Cortex-M에 대해서만은 ARM에서 memory map을 한가지 포맷으로 규정하였다.ARMv7-M Architecture Reference Manual과 ARM Cortex-M3 Processor Technical Reference Manual을 읽어 보면 ARM에서 정의한 자세한 memory ma..
하드웨어도 준비되고 개발 환경 설정도 완료되었으면 다음으로 할일은 타겟보드와 프로그래머 장비를 연결시켜 보는 일이다.STM32F103의 경우 두가지 방법으로 실행파일을 보드에 프로그램할 수 있는데 하나는 이미 앞에서 설명한대로 ST-Link/V2라는 장비를 이용해서 가능하고, 또 다른 하나는 UART를 이용한 프로그램 방법이다.먼저 ST-Link/V2를 이용한 프로그램 방법부터 설명 하도록 하겠다.보드와 ST-Link/v2와는 위의 그림과 같이 20핀 케이블을 이용하여 연결한다. 각각 USB 케이블을 이용하여 컴퓨터와 연결한다. STMicroelectronics 홈페이지에서 STM32 ST-LINK Utility라는 프로그램을 검색하여 컴퓨터에 설치한다.STM32 ST-LINK Utility를 실행하면 ..
Cortex-M 기반의 MCU 프로그램을 개발하기 위한 환경은 셀 수없이 많다.특히, ARM사에서는 CMSIS라는 일종의 device driver와 같은 API를 제공하기 때문에 이를 적용한 개발 툴들도 적지 않다.만약 회사에서나 개인이라도 상용 제품을 빠른 시간내에 개발해야 된다는 조건이 있다면 유료 개발 툴을 도입하거나 무료 제품중에서 적당한 툴을 이용하는것이 좋을것이다.그러나 이 블로그는 가급적이면 datasheet 만을 분석하여 직접 하드웨어를 제어하는 코드를 만들어 보는 것이 목적이므로, 하드웨어도 단순할 뿐 아니라 소프트웨어 개발도 오로지 GCC 컴파일러만 사용해서 진행해 볼 예정이다.개발 OS는 Linux를 이용한다. 별도의 Linux가 설치되어 있는 컴퓨터가 없다면 VirtualBox와 같..