初级会员

- 积分
- 74
- 金钱
- 74
- 注册时间
- 2016-11-22
- 在线时间
- 9 小时
|
发表于 2016-12-14 10:20:51
|
显示全部楼层
首先添加FLASH分区,如果是按楼主教程建的工程就是在stm32_flash.ld里修改
比如将:
[mw_shl_code=asm,true]/* Specify the memory areas */
MEMORY
{
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 64K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 8K
MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K
}
[/mw_shl_code]
修改为:
[mw_shl_code=asm,true]/* Specify the memory areas */
MEMORY
{
FLASH0 (rx) : ORIGIN = 0x08000000, LENGTH = 32K
FLASH (rx) : ORIGIN = 0x08008400, LENGTH = 31K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 8K
MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K
}[/mw_shl_code]
然后,将中断向量表等启动代码放在FLASH0里,其他代码啥的放在FLASH里
比如将:
[mw_shl_code=asm,true] /* The startup code goes first into FLASH */
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector)) /* Startup code */
. = ALIGN(4);
} >FLASH
[/mw_shl_code]
修改为:
[mw_shl_code=asm,true] /* The startup code goes first into FLASH */
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector)) /* Startup code */
. = ALIGN(4);
} >FLASH0
[/mw_shl_code]
就可以了,你可以看一下编译出来的HEX文件,中间0x8008000到0x8008400是否有空出来
用工具自带的模板建的工程也是同样修改,就是文件不同,都是.ld文件。 |
|