离线安装帮助插件
STM32U385的PB1引脚设置推挽输出,外部接电阻上拉时,断掉MCU的电源,MCU仍然运行的问题
新版本STM32CUBEIDE在新建工程中无法没有CUBEMX的选项了?
STM32CubeIDE for Visual Studio Code无法使用
STM32 CubeIDE 中的编译器优化等级
cubeide登录不了,软件连不上网
stm32cubeide登录问题
STM32N647配置LTDC时遇到问题
STM32CubeIDE for VScode对工程路径要很严格
IDE 对 _Static_assert 的识别问题
微信公众号
手机版
我尝试过修改ld文件,将外部FLASH的区域划出来。但是编译的时候,依然无法将超过的代码放置在外部FLASH里面。
ST有关于XIP的例子,但是都是通过做一个boot,然后全部跳转到外部flash的方式。如果这样做,就会丢弃掉内部2M的FLASH,我觉得这不是一个完美的解决方案。
你要注意,程序启动后要及时初始化QSPI,通常在启动文件里的sysinit()里完成。
修改链接文件脚本是必不可少的环节。类似下面的做法:
/* 外部 OSPI FLASH 中的主程序 */
.qspi :
{
. = ALIGN(4);
*(.qspi)
*(.qspi*)
. = ALIGN(4);
} >OSPI
另外,你还得准备基于外部QSPI的下载算法驱动文件。ST公司有基于各类现存开发版和常用存储器件准备了一些下载驱动,在STM32cubeProgrammer里可以看到现存的。如果没有就得自己写了。
Hi xmshao
我将您说的这据嵌入到ld文件里面了。然后编译后会报错误。
我参考了H7 emwin的例子,可以将编译出来的文件放到外部FLASH里面运行了。
修改方式是:
.externFlash :
{
. = ALIGN(4);
led.o(.text .text)
. = ALIGN(4);
_eQSPI = .; } >SPI_FLASH
但是每次都手动添加,项目复杂了后,还是不好处理。
[md]你好!
请问像是TouGFX这种有很多文件的项目需要怎么处理呢?
期待您的回复!!!
[md]我记得这个TouchGFX里面会有一个extern flash的选项,将资源设置到这个位置,生成代码后自动的会给你做到ld文件,不用自己去弄。只需要调用就好。