您现在的位置: 主页 > MCU > 单片机技术应用 > Cortex M3存储器映射图 & EWARM地址配置 -
本文所属标签:
为本文创立个标签吧:

Cortex M3存储器映射图 & EWARM地址配置 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]在程序下载起始地址,范围,RAM的地址,范围,堆栈的配置有两种方法。其实本质是一样的。方法1:在EWARM中利用编译化境配置,如下图方法2:修改stm32f10x_flash.icf文件(其实就是方法1)define symbol __ICFEDIT_intv


在程序下载起始地址,范围,RAM的地址,范围,堆栈的配置有两种方法。其实本质是一样的。

本文引用地址: http://www.21ic.com/app/mcu/201808/779076.htm


方法1:在EWARM中利用编译化境配置,如下图




方法2:修改stm32f10x_flash.icf文件(其实就是方法1)

define symbol __ICFEDIT_intvec_start__ = 0x08004000;

define symbol __ICFEDIT_SYS_FUNC_start__ = 0x08004200; //functab

define symbol __ICFEDIT_region_ROM_start__ = 0x08004000;

define symbol __ICFEDIT_region_ROM_end__ = 0x0803FFFF; //240K的空间,程序下载到这里面

define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;

define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; //8K的ram

define symbol __ICFEDIT_size_cstack__ = 400;

define symbol __ICFEDIT_size_heap__ = 200;

define memory mem with size = 4G;

define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];

define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];

define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };

define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };

initialize by copy { readwrite };

do not initialize { section .noinit };

place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };

place at address mem:__ICFEDIT_SYS_FUNC_start__ { readonly section SYS_FUNC };

place in ROM_region { readonly };

place in RAM_region { readwrite,

block CSTACK, block HEAP };

从上面的ICF文件可以看到,中断向量表的地址是0x08004000。同时用户自定义了一个固定的起始地址0x08004200,用于存放代码段SYS_FUN




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > Cortex M3存储器映射图 & EWARM地址配置 -
 

"Cortex M3存储器映射图 & EWARM地址配置 -"的相关文章

网站地图

围观()