在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电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 |