4715|2

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

有没有人做过“在一个工程中将另一个工程boot起来?” [复制链接]

我这里想在一个工程运行过程中,根据命令将另一个新的工程BOOT起来。
我所做的是:

旧工程收到命令后,将已烧写到FLASH中的新工程整个搬运到0x00000000位置,
并在搬运完成后将PC指针指到0x00000000位置,然后开始运行。(这里新工程将
旧工程覆盖)

其中旧工程的搬运函数放在不会被新工程覆盖的内存部分;

结果发现新工程搬运完成,但是PC指针跳转后就运行不对拉。


呜呜呜,拜托各位大侠帮俺看看,这个过程有没有什么问题?可能的问题在哪里?

在线等待,欢迎讨论!!

最新回复

再调试发现: 仿真状态下,程序会跑飞,观察结果是:新工程搬运完成,指针也指向0x00000000地址, 但是运行新工程程序时跑飞; 但是如果选择CCS, Debug---> Reset CPU 复位一下CPU后,再选择 run,新工程程序就顺利跑起来了。 汗~~,Reset CPU都做了些什么? 欢迎各位探讨,指教! 呜呜呜,怎么没有人回列?  详情 回复 发表于 2007-3-29 07:06
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
还有我把旧工程的stack段也放在不会被新工程覆盖的内存。

总之指针跳转后,运行新程序就会有问题。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
再调试发现:

仿真状态下,程序会跑飞,观察结果是:新工程搬运完成,指针也指向0x00000000地址,
但是运行新工程程序时跑飞;

但是如果选择CCS, Debug---> Reset CPU 复位一下CPU后,再选择 run,新工程程序就顺利跑起来了。

汗~~,Reset CPU都做了些什么?


欢迎各位探讨,指教! 呜呜呜,怎么没有人回列?
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表