我目前正在编写一些代码在c++的语法类似于Arduino与一些更多的功能.目前,我正在努力使一种方法来调用程序的处理器从外部闪存.由于内存问题.我有几个想法,因为我使用自定义 Bootstrap ,我可以让它运行代码从闪存.然而,我想处理的另一个问题是使用限定符将数据类型移动到外部闪存,类似于teensy 4.0代码中的EXTMEM
限定符。
我试着在网上冲浪了整整30分钟来寻找答案,但我没有找到任何令我满意的答案。
编辑:澄清一下,我这么做主要是为了教育目的。2我试图完全从零开始做一个微控制器,除了标准库之外没有任何依赖性(iostream,inttypes等)。我意识到要做到这一点,我需要从这个的底部开始,使用我的指令集来创建这个。我知道这是一个奇怪的项目,但我选择这些项目大多是因为它们的古怪。为了回答另一个问题,我计划使用我的引导加载程序从外部闪存中读取,将内容复制到内部闪存中,然后执行程序。
1条答案
按热度按时间uqjltbpv1#
这个问题的答案在很大程度上取决于你使用的编译器。
__flash
、__tinyflash
、__farflash
和__hughflash
关键字。<avr/pgmspace.h>
头。该头包含几个函数和宏来访问闪存。progmem
属性,但是你仍然需要特殊的函数来访问FLASH,比如在<avr/pgmspace.h>
中。<arv/pgmspace.h>
。)例如,可以生成类似
const int someVar __attribute__((section(".text"))) = 123;
的值或
const int someVar __attribute__((section(".progmem"))) = 123;
-取决于您的链接器及其配置...