在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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 | |
【换取逻辑分析仪】rtthread添加RRH62000传感器驱动-基于野火启明6M5被打赏48分 | |
换逻辑分析仪+Verilog多输入门被打赏27分 |