内置闪存容量不足


11

我在我的项目之一中使用了德州仪器的TM4C1230C3PMI控制器。它具有32KB的内部闪存,不足以满足我的应用程序的需要。市场上有更高闪存大小的微控制器可以使用,但我只想使用该微控制器。据我所知,可以使用外部EEPROM来增加总闪存大小(程序存储器)。

我的想法是正确的吗?

如果不是,请建议如何增加控制器的总闪存容量?


1
外部EEPROM通常用于存储数据,因为内部闪存比大多数EEPROM具有更少的擦除/写入周期,并且可以按字节方式对其进行覆盖。对于具有外部总线接口(您的接口没有此接口)的CPU,可以添加外部程序存储器(但是这有点复杂...)。从理论上讲,可以将一段代码存储在一个外部EEPROM中并将该代码加载到RAM中以执行它-但是在大多数情况下,这种情况是不现实的。
Martin Rosenau 2015年

3
许多年前,一个相关的格言是“如果不能在1K中做到这一点,就不能做到”。我认为它很聪明,值得考虑,但并没有真正接受它。然后MicroChess到达1K。
user2338816 2015年

1
为什么不从外部存储器引导代码?可以将许多外部存储器连接到uC。这将不会对内部闪存施加约束,因为您将在外部引导代码。
AlphaGoku


Answers:


22

您不能扩展程序存储器(闪存)。德州仪器(TI)生产的闪存和RAM 均为原来的两倍,但没有其他变化:TM4C1230D5PMI

如果无法使用具有较大闪存的芯片,则必须减小代码大小:

  • 禁用调试,例如昂贵的printf功能。printf支持浮点输出的A 通常会使您回到5KB-10KB。
  • 确保在启用优化的情况下进行编译-通常,编译器标志为-Os
  • 现代编译器可以执行链接时间优化(LTO)。使用gcc,您可以使用-flto。您必须进入-flto所有文件的编译和链接阶段。通常,这会将产生的代码大小减少30%-50%。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.