智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1969|回复: 2
打印 上一主题 下一主题

关于上电流程的疑问

[复制链接]

1

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
威望
247
贡献
134
兑换币
90
注册时间
2012-8-22
在线时间
18 小时
毕业学校
跳转到指定楼层
1#
发表于 2013-5-24 14:47:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近想调试一下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是从哪里得到需要跳转的指针的呢?麻烦知道的各位告诉一声,先谢过了。

1

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
威望
247
贡献
134
兑换币
90
注册时间
2012-8-22
在线时间
18 小时
毕业学校
2#
 楼主| 发表于 2013-5-27 09:36:20 | 只看该作者
求各位大神解惑,不胜感谢!
回复 支持 反对

使用道具 举报

1

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
威望
247
贡献
134
兑换币
90
注册时间
2012-8-22
在线时间
18 小时
毕业学校
3#
 楼主| 发表于 2013-5-28 15:31:34 | 只看该作者
原来是因为插着仿真器,所以才会自动定位代码位置。拔掉之后果然无法正常启动。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 03:19 , Processed in 0.133819 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表