- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
02_存储器组织课件
2.2.4 程序存储器 C8051F120 有64K程序存储器空间,在该空间集成了128KB Flash 存储器(用于存储程序代码或各种非易失性数据)。 另外还有两个128B字节的FLASH页,只能用来存储非易失性数据。 FLASH存储器特性: 一个FLASH 位可以随便从1清0。但是一旦被清0,必须经过擦除才能再回到1状态。因此在进行重新编程之前,应将数据字节擦除(置为0xFF)。写和擦除操作由硬件自动定时,以保证操作正确。 程序存储器通常被认为是只读的,有两种情况下读程序存储器: 1.CPU根据PC从程序存储器相应的地址读出下一条指令,然后译码执行; 2.执行程序时,遇到MOVC指令,执行该条指令时将到程序存储器某个地址获得一个字节的数据。 特殊情况下 : MOVX 写入 程序存储器空间 这一特性为CIP-51 提供了更新程序代码和将程序存储器空间用于非易失性数据存储的机制。 128K程序存储器组织成4 个32KB 的程序存储块。地址在0x0000 到0x7FFF 之间的32K 字节为公共程序存储块(块0)。其它3 个高地址程序存储块(块1、块2 和块3)都映射到地址0x8000 ~ 0xFFFF,由PSBANK 寄存器中的块选择位选择当前存储块,见图11.3。 当SFLE=0时: 指向128KB FLASH 存储器 当SFLE=0时: 指向128KB FLASH 存储器 注意:复位值 注意:位于块3 的1024 个存储器字节(0x1FC00 ~ 0X1FFFF)为保留区,不能用于用户程序或数据存储。 程序执行过程及PC寄存器 PC(不是SFR)复位值=0000 PC指向下一条需要执行指令的首地址 单片机开发过程: 编辑,编译,连接,下载,调试。 上电后自动运行FLASH程序。 当SFLE=1时: 指向256B FLASH 存储器 为什么安排两个128B的FLASH? 为什么安排两个128B的FLASH? 两个128 字节的扇区可以被分别擦除或同时擦除。 要同时擦除这两个扇区,擦除操作的目标地址应为0x0400。 类似FLASH存储器的写保护 查表即可 见前2页 选择是写一个字节还是擦一个扇区 FLASH 存储器编程 两种方法: 对FLASH 存储器编程的最简单的方法是使用由Silicon Labs 或第三方供应商提供的编程工具,通过JTAG 接口编程。这是对未初始化器件的唯一的编程方法。 可以用软件使用MOVX 指令对FLASH 存储器编程,象一般的操作数一样为MOVX 指令提供待编程的地址和数据字节。在使用MOVX 指令对FLASH 存储器写入之前,必须将程序存储写允许位PSWE(PSCTL.0)设置为逻辑‘1’,以使MOVX指向FLASH。在用软件清除之前PSWE 位一直保持置位状态。为了避免对FLASH的误写,强烈建议在PSWE 为逻辑‘1’期间禁止中断。 在执行FLASH 写、读、擦除操作时,PSBANK 寄存器中的COBANK 位决定三个高地址FLASH 块中的哪一个被映射到地址范围0x08000 ~0x0FFFF。 注意:为保证FLASH 存储器内容的完整性,强烈建议在任何从应用软件写和/或擦除FLASH存储器的系统中使能VDD监视器(通过将VDD监视器使能引脚MONEN连接到VDD和将RSTSRC寄存器中的PORSF 位置1) 写FLASH 存储器可以清除数据位,但不能使数据位置‘1’;只有擦除操作能将FLASH 中的数据位置‘1’。所以在写入新值之前,必须先擦除待编程的字节地址。 写/擦除操作的定时由硬件自动控制。注意:对于128KB FLASH 器件,从0x1FC00 开始的1024个单元被保留。应避免FLASH 写和擦除操作指向保留区。 软件擦除FLASH 页: 一次FLASH 擦除操作将擦除整个扇区(扇区内的所有字节被置为0xFF)。 128k 字节的FLASH存储器是以1024 字节的扇区为单位组织的。256 字节的临时数据区(地址0x20000 ~ 0x200FF)由两个128 字节的扇区(页)组成。 要擦除一个FLASH 页,FLWE、PSWE 和PSEE 位必须被置‘1’,然后用MOVX 指令写一个数据字节到扇区内的任何一个地址。 2.2.5 外部数据存储器/IO空间 空间大小: 64K 地址范围: 0000H-FFFFH 空间中可以安排:RAM存储器或IO设备 片内已集成: 8KRAM 片外扩展: 1.保留8K则最多扩展56KRAM/IO设备 2.屏蔽8K则最多扩展64KRAM/IO设备 3.扩展方法后面章节详细介绍 逻辑上: 程序存储器空间:0000h-FFFFh, 共128KB全部集成在芯片上; 数据存储器空间:0000h-FFFFh,64k集成
文档评论(0)