在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网站征稿正在进行时,欢迎踊跃投稿啦 | |
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! |
打赏帖 | |
---|---|
如何实现基于NXPiMX.RT1021的BH1730采集被打赏50分 | |
【换取手持数字示波器】AHT10温度检测分享被打赏40分 | |
【换取手持数字示波器】ACM32F070开发板点亮LCD屏和触控按键,串口,ADC被打赏40分 | |
【换取手持数字示波器】ACM32F070LCD屏和触控按键功驱动蜂鸣器分享被打赏40分 | |
【换取手持数字示波器】国民技术PWM功能知识分享被打赏40分 | |
【换取手持数字示波器】放大器运放知识分享被打赏40分 | |
【分享评测,赢取加热台】+开关电源AC输入知识分享被打赏30分 | |
【换取手持数字示波器】N32G430点亮数码管与串口打印、ADC被打赏40分 | |
老胖子聊电路--分析一个反馈电路被打赏50分 | |
【换取手持数字示波器】+点亮WS2812RGB灯被打赏50分 |