Chinaunix首页 | 论坛 | 博客
  • 博客访问: 857403
  • 博文数量: 213
  • 博客积分: 5048
  • 博客等级: 大校
  • 技术积分: 1883
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-14 10:14
文章分类

全部博文(213)

文章存档

2011年(4)

2010年(55)

2009年(47)

2008年(107)

我的朋友

分类: 嵌入式

2009-10-13 21:50:32

msp430是一个16位的单片机。
但是他的地址线可以是16位的,当然也可以是20位的。
我用的msp430f2132的flash只有8kb,flash的范围是0xE000-0xFFFF,
但是像msp430f2416的flash却有92kb,flash的范围是0x2100-0xFFFF,这部分可作为cstartup和isr的code区以及一般普通的code区,固定DATA_16的放置区域,
还有0x10000-0x18FFF这部分只能作为普通的code区,和固定DATA_20的放置区域
(msp2416使用的是msp430x体系结构,具体可看这篇文章http://blog.chinaunix.net/u2/66435/showart.php?id=2076097)
flash空间分为两部分
一部分叫main memory,由两块以上segments(512byte)组成,segment1-segmentn,每个segment由8个blocks(64byte)组成,
一部分叫information memory,都是256byte(图中的512有误),由四个64byte的segments组成。这四个segment主要做配置信息存储,其中segmentA是比较特殊的一个,他保存了这个cpu出产的一些矫正和配置信息,只有LOCKA被置0,segmentA中的内容才会被修改。

flash的功能有
1,byte/word写,执行flash写的时候,执行代码可以是在flash中或者ram中,flash中时,flash整个都会被挂起,写完了flash才会继续执行代码,而在ram中时,需要判断busy位,判断是否写完。
2,block写,这个写操作只能在ram中被执行。不知为啥有待测试。
3,segment擦除,擦除某个flashsegment,只要往这个segment的任意地址写任何数据,都会擦除对应segment区域
4,mass擦除,all擦除,过程同segment擦除,只是在控制寄存器中选择(注意:all擦除如果LOCKA没被置0,segmentA不会修改)

flash的频率,msp430x2xxx系列的基本都是257khz-476khz

flash的写必须是往一个空白地址写,如果已经写入需要先擦除。

flash有个控制位EEI可以允许在操作flash的中途发生中断。
阅读(2104) | 评论(0) | 转发(0) |
0

上一篇:文件IO的练习,apue3.6

下一篇:ADC10,ADC12

给主人留下些什么吧!~~