在STM32中,如果扩展了外部程序存储器的话(如选用M29W128),就要涉及它的应用问题。而这时如果不想浪费STM32内部的FLASH的,那就要同时使用内外部存储器了。初步的构想是:在内部存储器上烧入核心代码(类似于PC机的BIOS,这里可以嵌入一个操作系统的源码),而在外部存储器上烧入一些功能代码;这样既避免了一些代码体积增大而显的混乱,又可以使系统软件模块化便于后期升级。
目前的问题是:如果在内部存储器中写入核心代码(如采用操作系统),当系统运行后,核心代码会调用外部存储器中的功能代码,然后去实现执行相关功能。这里我不明白的是,烧入外部存储器中的代码是什么文件格式的好,不可能烧入纯C语言格式的文件,而这个文件又如何编译链接在一起。
ARM系统开发之我来问4:同时使用内外部程序存储器的问题

5楼
keil里面就支持指定代码存储地址编译,但代码得满足ARM的EABI标准,即Embedded Application Binary Interface,嵌入式应用二进制接口,可以仔细研究下,在linux和wince里面就可以做到代码分段存储,这里面还和MCU的内存管理有关,最好是有MMU单元,而STM32内部只有MPU,两者有着本质的差别,但这并不是说,STM32就不能实现MMU功能了,通过软件代码也是可以实现一个类似功能的。

回复
打赏帖 | |
---|---|
宏定义和const关键字定义被打赏5分 | |
【功率监测与控制系统DIY活动成果贴】DIY功率计与LabVIEW数据采集被打赏100分 | |
【Freertos】任务管理被打赏10分 | |
分享博世的两种不同的喷射系统模式被打赏5分 | |
汽车+开路实验与短路实验被打赏10分 | |
多点式电子控制汽油喷射系统知识分享被打赏10分 | |
分享机械控制式汽油喷射系统被打赏5分 | |
【分享开发笔记,赚取电动螺丝刀】解决基于CH341制作无线模块时芯片发热问题被打赏31分 | |
【分享开发笔记,赚取电动螺丝刀】使用STM32F103ZE主控调试RS485通讯的避坑经验被打赏36分 | |
【分享开发笔记,赚取电动螺丝刀】移植xprintf模块被打赏27分 |