关于把程序烧写进c2000launchpad的FLASH中无**常运行的问题?

[复制链接]
 楼主| xichengmadia 发表于 2013-11-28 22:55 | 显示全部楼层 |阅读模式
同一个程序在DEBUG模式下,在RAM中正常运行,但是把工程改为Release模式烧写程序到Flash中,就不能运行了.

我把同一个流水灯的程序,在Debug模式下正常闪烁z,但是在release模式下烧写,灯就不再闪烁了,这是为什么呢?
 楼主| xichengmadia 发表于 2013-11-28 22:55 | 显示全部楼层
是不是同一个DELAY_US(100000);函数在ram和flash中运行不一样?
huangfeng33 发表于 2013-11-30 20:43 | 显示全部楼层
程序运行调用的是相对地址,不是绝对地址,所以装载到RAM中可以正常运行。不同的单片机指令体系不同,这个跳转地址大小可能有限制,也有短跳转和长跳转之说。
我会爱你的 发表于 2013-12-2 14:51 | 显示全部楼层
这问题我刚解决,你看是不是这两个原因:
1,定义了在RAM中运行的函数没有拷贝到RAM中运行。解决办法是用TI给的源程序里面有一个MEMCOPY函数将flash中的函数搬移到RAM。
2,没有设置等待时钟,就是flash速度更不上CPU速度。解决办法是些等待时钟,在系统初始化那个函数里面有。
zhangmangui 发表于 2013-12-2 22:44 | 显示全部楼层
我会爱你的 发表于 2013-12-2 14:51
这问题我刚解决,你看是不是这两个原因:
1,定义了在RAM中运行的函数没有拷贝到RAM中运行。解决办法是用TI ...

https://bbs.21ic.com/icview-624892-1-1.html
先看看debug和release的区别  
我会爱你的 发表于 2013-12-3 23:20 | 显示全部楼层
zhangmangui 发表于 2013-12-2 22:44
https://bbs.21ic.com/icview-624892-1-1.html
先看看debug和release的区别

什么意思啊?
zhangmangui 发表于 2013-12-3 23:51 | 显示全部楼层
我会爱你的 发表于 2013-12-3 23:20
什么意思啊?

给你的连接中讲解了debug和release的优化程度等问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

105

主题

1002

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部