热度 1||
2.复制此文件到工程的其他位置,为方便,直接复制在工程文件的首级
并修改文件名为如下
3.如果之前没使用过scantter file的操作,所以再次搜索此操作
参考:http://blog.csdn.net/xianjian1990/article/details/54293349
有详细的说明
4.载1的参考文献中,编写如下
1: LR_IROM1 0x00000000 0x00080000 { ; load region size_region
2: ER_IROM1 0x00000000 0x00080000 { ; load address = execution address
3: *.o (RESET, +First)
4: *(InRoot$$Sections)
5: .ANY (+RO)
6: }
7: RW_IRAM1 0x10000000 0x0000A000 { ; RW data
8: .ANY (+RW +ZI)
9: }
10: MYRAM 0x1000A000 UNINIT 0x00002000 {
11: .ANY (NO_INIT)
12: }
13: }
因为我也是用这个系列的MCU,所以第一次是完全照搬,发现运行不了,查看手册等各种资料,每次都是进入hardfault。
对照手册,存储关系如下
5.后面想,是否还是加载的位置错误(不允许如此操作),结合KEIL给出的错误提示,决定修改如下
LR_IROM1 0x08000000 0x00040000 { ;
load region size_region
ER_IROM1 0x08000000 0x00040000
{ ; load address = execution
address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x0000F000
{ ; RW data
.ANY (+RW +ZI)
}
MYRAM 0x2000F000 UNINIT 0x00001000
{
.ANY (NO_INIT)
}
}
再次编译,下载运行OK了。
所以不清楚是作者本身只是示例一下,还是实际运行的案例,如果原作者能看到,还请指教一下 QQ328721520 ,在次先谢过了。
6.项目本身是需要在不掉电的情况下,RAM中的特定变量不需要初始化为0,此操作时无任何关系的,但是既然做了,那就看看掉电后是如何的,本人试验情况如下