ARM Cortex 개발 시 툴체인으로 빌드 후에 생성되는 정보로 필요한 Flash 및 RAM 사이즈를 계산하는 방법으 아래와 같습니다.
만약 툴체인으로 빌드 후에 아래와 같은 정보를 얻었다면,
[출력된 정보]
Program Size: Code=1264 RO-data=16 RW-data=0 ZI-data=1384[계산 방법]
Flash = Code + RO data + RW data
ROM = RW data + ZI data
[계산 원리 설명]
Here I tried to illustrate how a typical program looks like for the above-mentioned LPC1768:
+-----------+ 0x1000 8000 \
| Unused | |
+-----------+ |
| ZI data | <--(clear) | RAM
+-----------+ |
| RW data | <--(copy)---|---+
+-----------+ 0x1000 0000 / |
|
|
+-----------+ 0x0008 0000 \ |
| Unused | | |
+-----------+ | |
| RW init |-------------|---+
+-----------+ |
| RO data | | ROM (Flash)
+-----------+ |
| User code | |
+-----------+ |
| Boot code | |
+-----------+ |
| Vectors | |
+-----------+ 0x0000 0000 /
Thus, to calculate the used ROM (flash) space, you need to add up code, RO-data and RW-data. Used RAM will be the sum of RW-data and ZI-data. So, for your case, it's 1264+16+0=1280 bytes of flash and 0+1384=1384 bytes of RAM.
위의 것은 Cortex-M3의 경우이고, 각자의 MCU의 Memory Map 정보를 봐야 정확한 계산이 가능하다.
*: not always true: I think Cortex-M0 chips have a single data/instruction bus.
'프로그래밍 > 임베디드' 카테고리의 다른 글
ARM Cortex-M의 효과적인 코딩 방법 소개 (0) | 2013.02.03 |
---|---|
.bin 파일과 .hex 파일의 이해 (0) | 2013.02.03 |
ARM Cortex-M 기반 MCU 무료 툴로 개발하기 (0) | 2013.02.03 |
ARM Cortex-M3 개발 하기 (0) | 2010.12.04 |
ARM Cortex M3 프로세서용 무료 개발환경 구축하기 (0) | 2010.11.22 |