在上一帖的内容中,我使用外部sct文件的方式来链接STM32H743VI片内的RAM空间,想要利用0x30000000开头的SRAM12区和0x20000000开头的DTCM区,但是并不顺利,缓存数组是强制指定到SRAM12区没错,但是没法生效,使得LVGL相关初始化代码跑不起来。在参考了惠勤致远的厂家例程后,将此问题成功解决,目前已经可以利用STM32H743VI片内SRAM12和DTCM空间了,共计300K出头的空间,将STM32H743VI片内资源进一步充分利用。. w* b. `/ W" p
解决方法:使用AC6编译器时,指定缓存内存地址需要用指令:! ]1 m9 x( P! l% u __attribute__((section(".bss.ARM.__at_0x30000000")));: ~4 ~- Y; ~1 [9 B9 F 1 T! I/ u3 F5 T 只有这样才能被AC6编译器识别到并添加进汇编指令中。另外,SRAM123总计的空间为0x48000大小也就是294912字节,但是这是把SRAM3也算进去的,实际上要扣掉SRAM3的空间,也就是262144字节,所以给buf_1_1分配480*240*2字节就刚刚好:
LVGL程序正常运行:
' n4 i2 E" y* G+ ]1 D5 t DTCM的空间为131072字节,所以给buf_1_1分配480*100*2字节:
LVGL程序也能正常运行:8 J4 s! G- _; i
完全胜利!$ ^' z# U- q1 i! |3 @ |
STM32C542RC开发板PWM呼吸灯及多功能按键实验
NUCLEO-H5E5ZJ 移植 LVGL
NUCLEO-H5E5ZJ 移植 ST7735 SPI LCD 驱动
NUCLEO-H5E5ZJ 以太网(Ethernet)移植记录
【STM32H5 评测】1、移植记录(LED / Shell)
架构革新篇:单芯片 GUI 方案原理与核心优化技术
STM32C542RC开发板实现长短按键识别功能
STM32C542RC开发板PWM呼吸灯实验
STM32C542RC开发板的串口不定长数据接收实验
《STM32CubeMX2 实战课程》学习笔记——STM32C562RE开发测试
微信公众号
手机版