5406|12

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

at91sam7se如何判程序是跑在ram还是flash里? [复制链接]

rt

最新回复

记号。  详情 回复 发表于 2009-11-10 17:17
点赞 关注

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
沉了
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
不是运行以后都在ram里嘛?up
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
类似这样的语句:
ands r9, pc, #0xFF000000        ; see if we are in flash or in ram
bne %F20                        ; go ahead if we are already in ram
通过判断当前PC值来判断当前执行代码的地址,就能知道当前是在RAM里边还是FLASH里边了
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 
因为程序在flash里跑,导致写flash异常,

当时我想确认程序是否在flash里跑

如何解决既能在flash里跑,而又能写flash呢?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

6
 
如何解决既能在flash里跑,而又能写flash呢?。。。。。。。。

你也太强了吧,很多数据之类的你放哪里啊?
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

7
 
32k内存太小了,flash不是大些么,呵呵

既然不能写,就只能优化程序了

 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

8
 
flash是完全可以写程序的,同样可以在flash里面跑,但是你要擦写是要注意的,不要强行改动一些配置,否则就要跑飞的。最好的办法是将整段擦出C语言数拷贝到RAM中运行
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

9
 
看看初始代码,有些是将代码从flash拷贝到ram里面的。建议在写flash的时候,不要覆盖代码区,这样很危险的。而且最后将代码从flash拷贝到ram里面运行,速度快一点,而且可以防止不小心的写操作。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

10
 
是在哪个地方跑,在你的配置文件中有明确定义,而且你的iar工具上可以选择,一般来说,通常这些嵌入式芯片除非扩展sdram,否则ram都是很宝贵的,程序都是放在flash中,当然,是norflash,楼主如果觉得ram不够用,可以用flash进行读写,当然,需要一系列设置,简单的说,一个128k的flash,通常有32个sector,就是说,一个sector为4k,那么你可以通过设置寄存器使用其中的某块sector,然后,这整块sector都将无法放置程序,只能读写了,楼主慎用。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

11
 
结合汇编指令看PC和链接配置文件scf就可以判断出来了。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

12
 
可以的,一般写FLASH之前需要先擦除,正在运行的程序如果在将要擦除的段中,一定要先将这些程序代码转移到RAM中,再执行擦除操作,以免后面代码也被擦除造成程序跑飞。可以用一个搬移,将用户代码转移到片内RAM中。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

13
 
记号。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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