在上一帖的内容中,我使用外部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程序也能正常运行:
完全胜利! |
【STM32U3评测】CANFD Bootloader(1)
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
【福利三:逢7发帖赢大礼】使用惠勤致远STM32H743VI开发板+ST7796并口彩屏移植LVGL9.5并分享一些额外内容
【逢7发帖赢大礼】#5 Arduino UNO Q的led matrix
【逢7发帖赢大礼】#4 使用Arduino APP LAB 玩arduino UNO Q
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】#3 STM32U新进驻的新开发板Arduino UNO Q
【 逢7发帖赢大礼】7、TouchGFX中实现云彩流动效果
【逢7发帖赢大礼】#2 STM32F429-Discovery在 Arduino 中的使用
【 逢7发帖赢大礼】6、TouchGFX中添加图像素材和自定义代码编辑
微信公众号
手机版