(1) 计算所需RAMROM芯片是什么的数量;
(2) 分别计算ROM区域和RAM区域的结束地址;
(3)画出整个存储系统的接线图(ROMROM芯片是什么和RAMROM芯片昰什么只需要连接地址线、数据线和片选信号线即可,其它控制线可以不画但必须要画出译码器以便对ROM芯片是什么进行片选)
格式:PDF ? 页数:76页 ? 上传日期: 11:19:23 ? 浏览次数:13 ? ? 3000积分 ? ? 用稻壳阅读器打开
全文阅读已结束如果下载本文需要使用
我们都知道FLASH和EEPROM这两种存储器但昰大部分人了解的都是专门的FLASH和EEPROMROM芯片是什么,如:W25Q16和ATAT24C08(外部)储存ROM芯片是什么
外部存储ROM芯片是什么和本文说的内部FLASH和EEPROM最大的区别就是在於:内部FLASH和EEPROM是不需要SPI、I2C等进行操作,也就是说同等情况下内部FLASH和EEPROM的读写要快一点。
STM8的FLASH除了储存程序代码之外就是用于用户编程(存储數据),不像之前的51ROM芯片是什么不能利用内部储存代码的FLASH
为方便大家阅读,本文内容已经整理成PDF文件:
版权所有未经允许,禁止用于其它商业用途!!!
STM8内部的FLASH程序存储器和数据EEPROM由一组通用寄存器来控制用户可以使用这些寄存器来编程或擦除存储器的内容、设置写保護、或者配置特定的低功耗模式。用户也可以对器件的选项字节(Option
块(BLOCK):一个块是指可由一个简单编程操作编程或擦除的一组字节块级的操莋非常快,是标准的编程和擦除操作请参考表4来了解块的大小。
页(PAGE):一页由一组块组成 STM8S 器件拥有启动代码,程序代码和数据EEPROM这些区域都由特定的结构所保护。通过对特定的选项字节进行操作这些区域的大小能够以页为单位来进行调整。
● STM8S分为两个存储器阵列:
─ 最哆至 128K字节的FLASH程序存储器不同的器件容量有所不同。
─ 最多至 2K字节的数据EEPROM(包括option byte-选择字节)不同的器件容量有所不同。
─ 字节编程和自动赽速字节编程(没有擦除操作)
─ 块编程和快速块编程(没有擦除操作)
─ 在编程/擦除操作结束时和发生非法编程操作时产生中断
● 读同时写(RWW)功能该特性并不是所有STM8S器件都拥有。请参考具体的数据手册了解更多细节
● 在应用编程(IAP)和在线编程(ICP)能力。
─ 存储器读保护(ROP)
─ 基于存储器存取安全系统(MASS 密钥)的程序存储器写保护
─ 基于存储器存取安全系统(MASS 密钥)的数据存储器写保护
─ 可编程的用户启动代码区域(UBC)写保护
● 在待机(Halt)模式和活跃待机(Active-halt)模式下存储器可配置为运行状态和掉电状态。
STM8S的EEPROM以32位字长(每字4字节)为基础组织起来根据不同的器件,存储器组织机构有所不同:
包括一页的选项字节(64字节)
包括一页的选项字节(512 字节)。
包括一页的选项字节(512 字节)
在尝试执行任何编程操作之前,必须对主程序存储器FLASH和DATA区域解锁
编程分类:字节编程、字编程、块编程和选项字节编程。
可以对主程序存储器和DATA区域逐字节地编程要对一个字节编程,应用程序可直接向目标地址写入数据
当字节编程操作执行时,应用程序停止运行
─ 有 RWW 功能的器件:在 IAP 模式下,应用程序不停止运荇字节编程进行操作。
─ 无 RWW 功能的器件:当字节编程操作执行时应用程序停止运行。
要擦除一个字节向对应的字节简单写入’0x00即可。
应用程序可以通过读FLASH_IAPSR寄存器来校验编程或擦除操作是否已被正确执行:
● 在一次成功的编程操作后EOP位被置1
● 当软件试图对一个被保护嘚页进行写操作时WP_PG_DIS位被置1。在这种情况下写操作不会被执行。
如果FLASH_CR1中的IE位已经被预先使能则只要这些标志位(EOP/WP_PG_DIS)中有一个被置位就会产生┅个中断。
字写入操作允许一次对整个4字节的字进行编程从而将编程时间缩短。
主程序存储器和DATA EEPROM都可以进行字操作在一些STM8S器件中,也擁有当EEPROM在进行写操作时同时具备RWW功能
块编程比字节编程和字编程都要快。在块编程操作中整个块的编程或擦除在一个编程周期就可以唍成。
在主程序存储器FLASH和DATA区域都可以执行块操作
用于块编程的代码必须全部在RAM中执行。
─ 有RWW功能的器件: DATA 块操作可在主程序存储器中执荇然而数据装载阶段必须在RAM中执行。
─ 无RWW功能的器件:用于块编程的代码必须全部在RAM中执行
一共有三种可能的块操作:
● 块编程(也叫標准块编程):整个块在编程前被自动擦除。
● 快速块编程:在编程前没有预先的块擦除操作
在块编程时,中断被硬件自动屏蔽
块编程操作允许一次对整个块进行编程,整个块在编程前被自动擦除
快速块编程允许不擦除存储器内容就对块进行编程,因此快速块编程的编程速度是标准块编程的两倍
警告: 在执行快速块编程之前如果这个块不是空的话,不能保证写入的数据无误
对选项字节编程和对DATA EEPROM区域編程非常相似。
应用程序可直接向目标地址进行写操作利用STM8的RWW功能,在对选项字节写操作的同时程序不必停下来
本文提供的工程代码昰基于前面软件工程“”增加FLASH修改而来。初学的朋友可以参看我前面对应的基础文章那些文章讲的比较详细。
工程源代码主要实现功能:写入FLASH或EEPROM并读取写入的数据通过UART打印来观察读取的数据是否和写入的一直。
这两个工程需要注意读写操作的地址不同见下图:
这里需偠注意:1.写之前解锁,写完需要上锁;2.我们提供的代码是字节操作因此,每次操作需要“等待上次写操作完成”
读操作一般都很简单,不管是读FLASH还是EEPROM基本上操作都类似。为什么我们买的U盘读取速度远大于写的速度原因就在这里。
和FLASH的写对比可以看得出来,他们之間的差别在于参数:FLASH_MEMTYPE_DATA.
通过UART打印“读BUF”的数据可以看得出来,我们从FLASH中写入的数据是否正确
两个工程代码实现功能都一样,注意地址
軟件源代码工程(STM8S-A07_内部xxx编程):
提示:如果网盘链接失效,可以微信公众号“底部菜单”查看更新链接
微信搜索“EmbeddDeveloper” 或者扫描下面二维碼、关注,查看更多精彩内容
2)对于16bit的计算机有ROM结束地
其他按由低到高顺序连接;片
选信号使用地址的14位作为ROM和RAM的选择,
画出整个储存系统的接线图必须要画译码器
你对这个回答的评价是?
下载百度知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。