7567|22

199

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

从FLASH开始擦除和从RAM开始擦除FLASH,有什么区别啊? [复制链接]

不懂啊。。看了手册还是不懂

软件编程方面好像也没有太大的区别,而且user guide上面的那个伪写入的地址是一样的

还有就是从RAM开始写入,和从FLASH开始写入有什么区别?

有人跟我说是:一个是写在RAM,一个是写在FLASH,但是我觉得不对。。。

最新回复

我也觉得奇怪啊,好像基本都一样大,就是多了一句while(FCTL3 & BUSY);  详情 回复 发表于 2011-12-26 14:43
 
点赞 关注

回复
举报

199

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
总是没有人回答我的问题,我的各种疑问。也不知道为啥,在学习群里问,别人老是先问我是要干嘛,但是我是觉得,就算不干嘛,至少也得先把问题弄清楚吧。唉
  
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
身边木有一个可以学习的人,从来一个人在孤军作战,虽然现在学东西,群里还有朋友一起学,一起玩。以后学FPGA,又是一个人了,一个人摸索的日子,何其蛋疼。
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

4
 
今晚不把这个搞懂,不睡觉!!!就不信搞不死FLASH....
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

5
 

写FLASH这个操作是需要一些代码来执行的,那么这段代码在哪里执行呢?一般烧写在FLASH里执行,这就是所谓的“”从FLASH开始擦除”。但是”从FLASH开始擦除”只能擦除这段操作代码所在段以外的段(段的概念一般MSP430介绍上都有),如果自身所在的段要擦除,就会导致把擦除FLASH的代码也擦除了,极有可能导致后面的cpu执行代码不可预知的错误(可以这样理解吧,代码断了呀)。所以这时只能所谓“从RAM开始擦除”登场了,就是把执行擦除的代码拷贝到ram中执行。好像从RAM开始擦除有点不同的是cpu不会像”从FLASH开始擦除”那样cpu停止等待擦除完成,cpu不会停止,所有操作方式有点不同,例如好像要不断查询一些标志位以确定擦除完成。不过您如果使用的是小FLASH容量的cpu一般用不到  “从RAM开始擦除” 吧?

具体看手册呀,要勤劳一点呀,中文的虽然不少有许多错误,也得看呀,英文好就直接看英文的呀。如果您是大学生,我就倚老卖老说教一句:英文还是要不能懒呀。当然,别人直接点到可能更快一点。 我可能会结合我的实例介绍一点入门吧。靠,又说漏嘴了 敲字也费时间呀,您起码得感谢我苦劳。我对msp430也是接触不久,说得不一定对,就当帮顶

[ 本帖最后由 wangfuchong 于 2011-11-4 21:04 编辑 ]
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

6
 

回复 5楼 wangfuchong 的帖子

谢谢这位兄弟的回答。其实我刚开始的时候也是这么理解的,后来又不知道怎么想了。。。现在还是不懂如何从RAM开始执行,因为不懂代码如何放在RAM中,我从手册上的汇编程序只看到检测BUSY位的区别。
还没搞懂,郁闷了
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

7
 
基本上搞定!就是快写入这个程序还有点问题,块读出的程序还没有验证。
虽然程序懂得编写了,而且比较简单,但是还是不怎么明白两者的区别。
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

8
 
代码如何放在RAM中
能不能说说呀
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

9
 

回复 8楼 wangfuchong 的帖子

额,我不懂的就是这个了。。。仅仅就感觉到代码上的那点差异。我感觉很多人,都仅仅是会写点代码,而对内部的运行部了解,也不去了解。
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

10
 
我的块写程序不知道为啥还是不行,写入第一个字节后,后面的就没有反应了。但是指针还在加。
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

11
 
我没看清楚楼主的帖子,想简单了

不过从RAM开始执行,就是自己想笨办法也能实现吧,不过我也想知道人家实际的例子

楼主现在是在RAM执行还是在FLASH执行的呢?
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

12
 

回复 11楼 wangfuchong 的帖子

都写了啊,不过仅仅是把手册上的汇编翻译成C语言罢了。
 
 
 

回复

299

帖子

0

TA的资源

纯净的硅(高级)

13
 
简单的说一个方法供参考:
将Flash中的擦除程序代码记住;
在RAM中找到一块不用的空间,将上述代码写入;
把指针指向RAM中的擦除代码块。
 
 
 

回复

49

帖子

0

TA的资源

一粒金砂(中级)

14
 
哎,看到有一起学习的感觉不错啊,,一起学习吧
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

15
 

回复 13楼 永远的不知 的帖子

今天突然想到,如果说把代码从ROM中复制到RAM中,这肯定也得占用不少时间,跟直接执行相应的指令比起来,我觉得还不如直接把指令执行了。
 
 
 

回复

299

帖子

0

TA的资源

纯净的硅(高级)

16
 
一般对FLASH进行擦写操作,是为了把它当作EEPROM的功能,这样的话,直接在FLASH中执行擦写指令就可以了。
另外,使用RAM擦除FLASH,如果RAM足够多,擦除指令很少,也可以考虑上电初始化的时候直接将代码初始化给RAM。
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

17
 

回复 16楼 永远的不知 的帖子

上面的我还是不懂...
再请教你个问题哈
在149的手册上写了,块写入FLASH的时候,理论上应该把BLKWRT这一位应该置一吧.
但是我自己实际操作的时候发现,如果把BLKWRT这一位置位,就只能写入一个字节的数据.
然后如果该位清零,就可以写入多个字节数据.
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

18
 

两个代码程序是TI官方的,但是有个问题.

一个代码中有把BLKWRT置位,另一个却没有.

而且有一个程序中有等待WAIT位,另一个也没有.

 

如果从USER GUIDE来看,应该是要置位BLKWRT,而且也要等待WAIT的.

 

我自己的程序是有等到WAIT的,但是加上了BLKWRT,就只能写一个字节.不加BLKWRT就可以写做字节.

我觉得这不是跟USER GUIDE描述的相反了么?

QQ截图20111111231523.jpg (19.2 KB, 下载次数: 0)

F149手册上关于BLKWRT的描述

F149手册上关于BLKWRT的描述

QQ截图20111111231604.jpg (27.22 KB, 下载次数: 2)

TI官方的FLASH多字节写程序

TI官方的FLASH多字节写程序

未命名.jpg (27.18 KB, 下载次数: 2)

TI官方的FLASH多字节写程序

TI官方的FLASH多字节写程序
 
 
 

回复

299

帖子

0

TA的资源

纯净的硅(高级)

19
 

回复 18楼 老阮 的帖子

字节或字写入可以从Flash或RAM中执行代码,不需要wait,不用置位BLKWRT;
块写入必须从RAM中执行代码,需要wait,需要置位BLKWRT。
建议参考一下430F1xxx系列用户指南。有详细的描述和汇编例程。
 
 
 

回复

299

帖子

0

TA的资源

纯净的硅(高级)

20
 

回复 18楼 老阮 的帖子

官网给出的例程应该是对的,是不是楼主的块写入程序没有在RAM中执行呀?
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表