FLASH模块.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FLASH模块

FLASH模块 TMS320F28335片上有256K16位的FLASH存储器,FLASH存储器由8个32K16位扇区组成,用户可以对其中任何一个扇区进行擦除,编程和校验,而其他扇区不变。不能在其中一个扇区上执行程序来擦除和编写其他的扇区。 F28335的FLASH选择寄存器FOPT 位 名称 功能描述 15-1 Reserved 保留 0 ENPIPE 使能FLASH流水线模式 当该位被置1时,流水线模式被激活,该模式下通过预处理指令提高了取指令的效率,在该模式下,FLASH的访问周期(页访问或随机访问)必须大于0,默认状态为0; F28335的FLASH功耗模式寄存器FPWR 位 名称 功能描述 15-2 Reserved 保留 1-0 PWR FLASH功耗模式位,向这些位写操作会改变FLASH的BANK和PUMP当前功耗模式。 00:睡眠模式 01:等待状态 10:保留 11:激活状态,使能FLASH(高功耗) Flash控制寄存器FOPT、FPWR、FSTDBY-WAIT、FACTIVEWAIT、FBANKWAIT、FOTPWAIT的初始化代码不能从Flash存储器当中运行.否则就会有不可预料的结果出现。所以,Flash控制寄存器的初始化函数在运行时必须从Flash(它的装载地址)拷贝到RAM(它的运行地址)。?Flash控制寄存器由Code?SecurityModule(CSM)保护。如果CSM被保护起来了,那么必须从被保护的RAM(例如:L0或者L1SARAM)运行Flash控制寄存器的初始化代码,否则Flash控制寄存器的初始化代码无法访问Flash控制寄存器 外扩FLASH: FLASH初始化函数如下: void InitFlash(void) { EALLOW; FlashRegs.FOPT.bit.ENPIPE = 1; // 使能流水线模式FlashRegs.FBANKWAIT.bit.PAGEWAIT = 5; //页模式FLASH读取 指令周期 FlashRegs.FBANKWAIT.bit.RANDWAIT = 5;//随机模式FLASH读取指令周期 FlashRegs.FOTPWAIT.bit.OTPWAIT = 8; FlashRegs.FSTDBYWAIT.bit.STDBYWAIT=0x01FF; //设置从睡眠到等待的转换时间 FlashRegs.FACTIVEWAIT.bit.ACTIVEWAIT = 0x01FF; //设置从等待到激活的转换时间 FlashRegs.FPWR.bit.PWR = 3; //设置Flash为正常工作状态 FlashRegs.FSTATUS.bit.V3STAT = 1; //Clear the 3VSTAT bit EDIS; asm( RPT #7 || NOP); ////等待流水线操作完成,保证最后一个设置操作完成后才从该函数返回 } FLASH的流水线模式:FLASH存储器数据掉电不丢失,所以通常用来保存应用代码。在代码执行期间,除非有中断产生,指令可以从存储器地址中连续获取,连续地址中的代码组成了主要的代码,又称为线性代码。FLASH的流水线模式默认状态下无效。

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档