在上一帖的内容中,我使用外部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探索板——运动传感器测试
STM32L562DK探索板——继续深入了解Audio Play的工作流程
STM32L562DK探索板——触摸菜单实验之触摸测试
STM32L562DK探索板——触摸菜单实验之LED闪烁
STM32L562DK探索板——Audio Play的再了解
STM32L562DK探索板——测试小结
STM32 GUI 图形方案,带你解锁嵌入式界面开发新思路
STM32L562DK探索板——给Audio Play添加音量控制功能
STM32L562DK探索板——Audio Play使用的疑惑
4-开发生态篇:TouchGFX+STM32Cube 一站式 GUI 落地流程
微信公众号
手机版