"); //-->
1. LPC2000的Flash简介
LPC2000的Flash存储器系统包含128kB Flash器件的16个扇区和256kB Flash器件的17个扇区。Flash存储器从地址0开始并向上增加。Flash boot装载程序同时提供片内Flash存储器的ISP和IAP编程接口。IAP、ISP和RealMonitor程序都位于boot扇区。boot扇区存在于所有的器件当中。ISP和IAP命令不答应对boot扇区执行写/擦除/运行操作。在128kB Flash器件中只有120kB Flash可供用户程序使用。器件共包含256kB的Flash,其中,248kB的Flash可供用户程序使用。Boot Block一般位于片内Flash存储器顶端。在128kB Flash中,它是第16个扇区(对应的扇区号是15),在256kB Flash中,它是第18个扇区(对应的扇区号是17)。Boot Block占有的Flash存储器扇区不能用来存放用户数据。
LPC2000系列提供在在应用中编程IAP,最终用户代码直接执行在应用编程 (IAP)对片内Flash存储器进行擦除和编程操作。Falsh可以擦写10000次,512字节行编程时间为1ms。单扇区或整片擦除时间为400ms。
Flash存储器在写或擦除操作过程中不可被访问。
执行Flash写/擦除操作的IAP命令使用片内RAM顶端的32个字节空间。假如应用程序中答应IAP编程,那么用户程序不应使用该空间。 字串8
很多8位单片机中有页的概念,页为Flash编程的最小单位,每次可以擦除和编程一个页的内容,由于页中包含的字节较少,在这种情况下把Flash用作EEPROM灵活性会很好。而LPC2000系列没有页的概念,它只有扇区这个最小的Flash编程单位,即用户即使是只修改一个字节,也需要首先擦除8K的Flash。
把Flash当作EEPROM的过程,其实就是对Flash进行读-修改-写的过程。
2. 向Flash中写数据
Flash必须遵循选择扇区,擦除,选择扇区,写的过程,具体到程序的编写,必须先后有下面的代码:
SelSector(1,1); // 选择扇区1
EraseSector(1,1); // 擦除扇区1
SelSector(1,1); // 选择扇区1
for(i=0;i<512;i )
source[i]=0x41;
RamToFlash(0x00002000, (uint32)source, 512); // 写数据到扇区1
应用的时候需要注重下面几点:
1)假如写之前没有选择扇区,是不能正确写入的。
2)假如写之前没有擦除,写入是不正确的。
3)最少写512字节,写入的字节数应当为512 或 1024 或 4096 或 8192.
4)Flash在擦写时不能访问,这也是IAP是要关闭中断的原因。关中断可以用下面的语句来实现:__asm{MSR CPSR_c, #0xdf},与此对应,开中断可以下面的语句:__asm{MSR CPSR_c, #0x5f}。 M开发论坛
另外,经常有人问如何将一个常量的数值定义在Flash的特定地址上,我觉得这个功能不太实用,因为每次擦除的最小单位是8K,到不如直接写数据到Flash的一个地址,这个地址是在一个空扇区中,读和写都以这个地址为基址。由于编译后的代码是向下靠紧的,所以你可以查看一下编译后的代码量,然后选择靠上的地址做为用的变量区。假如实在想把数组定义在Flash的特定位置似乎可以用分散加载,具体可以参考zlg的FAQ的第378问。
3. 从Flash中读数据
从Flash中读数据比较简单,可以定义一个指针变量,该指针变量指向特定的Flash地址,例如可以写成下面的样子:
uint32 i;
uint8 * p;
p=(uint8 *)0x1C000;
for(i=0;i<400;i )
{
Puthexbyte(*(p ));
}
4. Flash的加密
代码读保护 这是Bootloader修订版1.61的特性。 代码读保护通过向Flash地址单元0x1FC(用户Flash扇区0)写入0x87654321(十进制表示为2271560481)来使能。地址单元0x1FC用来答应为fiq异常处理程序保留部分空间。当JTAG调试端口的代码读保护被使能时,外部存储器引导和以下ISP命令将被禁能:
 读存储器
 写RAM
 运行
 将RAM内容复制到Flash
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
模型飞机起落架控制器,附着陆灯,防撞灯.zip
苏姿丰:AMD在DeepSeek发布首日就给予了支持,与通义千问密切合作
模拟信号处理
SK海力士宣布全球首次向客户提供“12层HBM4”样品
MM征GG(大连)
面对爱情,你是主动还是被动??
[求助]vxworks下ppc405平台上,程序总被timerInt非常频繁的中断怎么回事儿呢?
实验板.rar
新思科技携手AMD推出业界最高效能硬件辅助验证产品
Microgate的自适应光学技术在深空探索中大显身手
论模拟电路的人才培养之道(沙龙纪实)
TPS6118x单输入控制电路图
泰克混合信号调试MSO4000实例演示操作
国产屏一哥 京东方2024年PCT国际专利申请量全球第6
模拟电路教学心得
小米集团2024年智能电动汽车等创新业务分部收入328亿元
TPS61181/1典型应用电路图
高精度数控直流稳压电源(DAC0832+89S51).rar
多功能模型用控制器
[分享]世界上最遥远的距离
数字音乐盒的完整毕业论文.rar
模拟电子教学方法的改进
第17讲:SiC MOSFET的静态特性
TI ADS1148EVM和 ADS1248EVM电路图
宁德时代与蔚来达成换电合作 对蔚来能源投资不超过25亿元
请教RTL8019输出中断信号
博通续拿 Google 第七代 TPU 订单
TI TPS6118x评估板电路图
黄仁勋宣布新一代AI芯片英伟达Rubin芯片,明年下半年推出
TI 音频降噪电路图