在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功能了,通过软件代码也是可以实现一个类似功能的。
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |