在上一帖的内容中,我使用外部sct文件的方式来链接STM32H743VI片内的RAM空间,想要利用0x30000000开头的SRAM12区和0x20000000开头的DTCM区,但是并不顺利,缓存数组是强制指定到SRAM12区没错,但是没法生效,使得LVGL相关初始化代码跑不起来。在参考了惠勤致远的厂家例程后,将此问题成功解决,目前已经可以利用STM32H743VI片内SRAM12和DTCM空间了,共计300K出头的空间,将STM32H743VI片内资源进一步充分利用。
解决方法:使用AC6编译器时,指定缓存内存地址需要用指令: __attribute__((section(".bss.ARM.__at_0x30000000"))); 只有这样才能被AC6编译器识别到并添加进汇编指令中。另外,SRAM123总计的空间为0x48000大小也就是294912字节,但是这是把SRAM3也算进去的,实际上要扣掉SRAM3的空间,也就是262144字节,所以给buf_1_1分配480*240*2字节就刚刚好:
LVGL程序正常运行:
DTCM的空间为131072字节,所以给buf_1_1分配480*100*2字节:
LVGL程序也能正常运行:
完全胜利! |
STM32L562DK探索板——测试小结
STM32 GUI 图形方案,带你解锁嵌入式界面开发新思路
STM32L562DK探索板——给Audio Play添加音量控制功能
STM32L562DK探索板——Audio Play使用的疑惑
4-开发生态篇:TouchGFX+STM32Cube 一站式 GUI 落地流程
3-产品选型篇:全系列 STM32 GUI 专用 MCU 分级选型表
2-架构革新篇:STM32单芯片嵌入式GUI核心技术原理与性能优势
STM32L562DK探索板——重写Led闪烁demo
STM32L562DK探索板——触摸菜单的实验
STM32L562DK探索板——简单的显示变量函数
微信公众号
手机版