智能车制作
标题:
关于上电流程的疑问
[打印本页]
作者:
BlackFire531
时间:
2013-5-24 14:47
标题:
关于上电流程的疑问
最近想调试一下bootloader,在做准备工作的时候想到有了bootloader,application 程序就需要往后偏移一些,于是就在icf文件里,把数值偏移了4k(0x1000),修改如下(红色为修改的,数值增加了0x1000):
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ =
0x00001000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ =
0x00001000;
define symbol __ICFEDIT_region_ROM_end__ = 0x0003ffff;
define symbol __ICFEDIT_region_RAM_start__ = 0x1fff8000;
define symbol __ICFEDIT_region_RAM_end__ = 0x1fffffff;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
define symbol __ICFEDIT_size_heap__ = 0x2000;
/**** End of ICF editor section. ###ICF###*/
define symbol __region_RAM2_start__ = 0x20000000;
define symbol __region_RAM2_end__ = 0x20007fff;
define symbol __FlashConfig_start__ =
0x00001400;
define symbol __FlashConfig_end__ =
0x0000140f;
使用仿真器先把芯片擦除,然后烧写代码进去,令人奇怪的是,编译完毕竟然可以直接运行。此时从memory窗口查看,地址0x0~0x1000全为0xff,这不是和M4核的原则"复位后处理器从地址0x0000_0000取值装载MSP的"冲突了么?我的0地址是空的,那么cpu是从哪里得到需要跳转的指针的呢?麻烦知道的各位告诉一声,先谢过了。
作者:
BlackFire531
时间:
2013-5-27 09:36
求各位大神解惑,不胜感谢!
作者:
BlackFire531
时间:
2013-5-28 15:31
原来是因为插着仿真器,所以才会自动定位代码位置。拔掉之后果然无法正常启动。
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2