MSPM0在指定Flash地址开辟模拟EEPROM

发布时间:2023-10-18  

嵌入式系统中,诸如变频器和伺服驱动器等工业应用,乃至CD播放器等众多消费电子产品,都需要保存最近的用户设置,在下次上电后加载使用。如果使用MCU内置Flash,一般擦写次数限制在10k次,无法满足寿命和耐久性要求,所以只能通过外置实现。

本文引用地址:

新推出的系列MCU支持使用Flash,在小容量存储需求的场合能节省外部芯片,实现成本控制。系列MCU的Flash容量覆盖16KB到128KB,其中低32KB的Flash区域支持10万次擦写,而剩余区域支持1万次擦写,如下图G3507规格书所示。所以,在使用FlashEEPROM时,应尽可能选择低32KB区域。

当使用<=32KB Flash容量产品时,这时芯片的全部Flash区域都支持10万次擦写,只需要根据用户代码量以及存储需求确定EEPROM的容量大小,然后放置到Flash的尾部地址即可。

当使用>32KB Flash容量产品时,这时用户代码占用空间可能较大,如果直接选取低32KB尾部地址作为EEPROM,有可能与用户代码地址相冲突而造成误擦写,如下图所示:

这时则需要在代码中向编译器声明EEPROM的位置及长度,使其安排Code及Data时避开用户设置的EEPROM区域。

在CCS IDE with Clang中,需要做两步修改:

  1. 在.cmd文件中添加Sections的声明如下图:

其中EEPROM 为自定义的section名字,0x00001000为自定义的开始地址。

2. 在需要使用的.c文件中(如c)添加数组定义如下:

图片.png

以上语句定义了一个名为EEPROM、类型为uint32,长度为4096的const数组,并且存放在上面开辟的.EEPROM Sections,其中添加__attribute((used))可以避免编译器把该数组优化掉。

完成以上修改后,编译器会避开自定义的EEPROM SECONS,代码只会存放于.text SECTIONS,这样修改后就可以保证EEPROM地址和长度都落在期望的Lower 32KB区域且不会与代码段冲突。

添加修改并编译后,查看Memory Allocation如下图,可见EEPROM段与.text代码段分开,所定义的EEPROM数组也成功初始化。

最后就可以进行Flash的Erase/Program操作,具体可参考drivelib中的flashctl_program_with_ecc等例程,这里不再赘述。

本文针对MSPM0系列MCU使用FlashEEPROM时需要在Lower 32KB开辟EEPROM专用区域的工况,提出使用SECTIONS分配的方式解决与EEPROM和Code可能重合的问题,配合SDK的Flash操作,可以很容易实现EEPROM在任意Flash区域的开辟。

文章来源于:电子产品世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储器概念;常见存储器概念:RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储......
    EEPROM和Flash这样讲,我早就懂了;存储器分为两大类:RAM和ROM,本文主要讨论ROM。。ROM最初不能编程,出厂什么内容就永远什么内容,不灵活。 后来出现了PROM,可以......
    EEPROM 和 flash 这样讲,早就懂了!;前几天看到群里在讨论,有些人一直搞不懂,今天给大家分享一篇文章总结一下。本文引用地址:分为两大类:RAM 和 ROM。 RAM 就不讲了,今天......
    被占用的空间为:  ROM(Flash) size = Code+RO-data+RW-data; 上面代码大小    = 28784 + 6480 + 60 = 35324......
    的返回值存放在栈区。 } 上面我们已经对堆、栈、全局区、常量区、代码区进行了全面的分析,也举例进行了说明。 下面我们在对这些区存放在哪种介质上进行讨论。   8、RAM和ROMFlash Memory的物......
    Flash、QSPI Flash 等启动。用户可以根据实际情况,选择合适的启动设备。 芯片上电以后,芯片会根据 BOOT_MODE[1:0] 的设置来选择 BOOT 方式, BOOT_MODE[1:0......
    分在 IT8528 芯片内部。 XROM : 外接 Flash ROM,大小不确定,一般为64K--128K,通过SPI连接。 内部RAM 它属于8032内核部分,访问速度快,容量很小。逻辑地址和 SFR 寄存......
    Holtek推出BA45F5740/5740-2/5750/5760带万年历的感烟探测器MCU; BA45F5740/5740-2具备4K×16 Flash ROM、256×8 RAM、64×8......
    般不会发生冲突。 用户程序存储区P89V51RD2内部有64KFLASH ROM,不需要用户再进行ROM扩展地址范围:0000H~FFFFH其内部分配和其他51系列单片机是相同的Flash ROM可以......
    HOLTEK新推出HT45F8640第二代锂电池保护MCU; 【导读】Holtek新推出第二代锂电池保护Flash MCU HT45F8640,提供客户4K×16 Flash ROM,让原......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>