基于RT1052 Aworks 内存扩容记录(一)
张三 2021-09-10 17:36:36 2021-09-10 99 0
本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发
1. 首先阅读原理图
内存容量由32M扩容至64M。
2. 再则比较两颗芯片的参数
通过比较32M和64M SDRAM的数据手册,其行地址线不变,数据位宽不变,列地址线多了一根。
在相同的频率下,关键参数兼容。3. 查找Aworks初始化DDR参数的位置
在工程里面找到flexram_config_for_armcc.S 文件提供了初始化DDR参数的函数接口,通过阅读DDR初始化的汇编函数。
配置总的SDRAM容量大小:ldr r0, = 0x8000001B str r0, [r1], #4
*(0x402F0010) = 0x8000001B 32M
New: *(0x402F0010) = 0x8000001D 64M参考芯片手册进行修该:配置列地址线的位数:
ldr r0, = 0x00000F31 ldr r1, = 0x402F0040 str r0, [r1], #4
老配置:
*(0x402F0040) = 0x00000F31CL=3COL=9BITBL=8Port size = 16新配置:
New: *(0x402F0040) = 0x00000E31CL=3COL=10BITBL=8Port size = 16参考芯片手册进行修改:4. 适配sct文件
在easy_arm_rt1052_flexspi_flash.sct文件当中多出来的32M内存,
HEAP_SIZE 增加27M, VRAM_SIZE增加5M,如下所示:在easy_arm_rt1052_sdram.sct文件当中多出来的32M内存,HEAP_SIZE 增加27M, VRAM_SIZE增加5M,如下所示:5. 支持SDRAM 在线调试
为了支持SDRAM调试,需要修该其在线调试的ini文件如下所示:
在easy_arm_rt1052_sdram.ini会调用 easy_arm_rt1052_common.ini的函数。
Index: easy_arm_rt1052_common.ini===================================================================--- easy_arm_rt1052_common.ini (revision 1)+++ easy_arm_rt1052_common.ini (working copy)@@ -131,8 +131,8 @@ _WDWORD(0x402F0000, 0x10000004); _WDWORD(0x402F0008, 0x00030524); _WDWORD(0x402F000C, 0x06030524);- _WDWORD(0x402F0010, 0x8000001B);- _WDWORD(0x402F0040, 0x00000F31);+ _WDWORD(0x402F0010, 0x8000001D);+ _WDWORD(0x402F0040, 0x00000E31); _WDWORD(0x402F0044, 0x00652922); _WDWORD(0x402F0048, 0x00010920); _WDWORD(0x402F004C, 0x50210A08);
6.如何测试
可以使用SDK自带的测试样例demo_sdram.c 测试日记如下所示:
AWorks for i.MX RT1050, build Oct 15 2020AWorks SDK Version is 2.1.0 <2020-04-20> use panel: tft_panel 0 (480 x 272 16 bpp)current time: 1970-01-01 05:18:01P/IP i|AWorks->>> nitializingHostname set to AWorksTCP/IP initializednetif: add 0 <eth0>, (default)Application Start. demo_sdram test...test_sdram_write:246.15 MB/stest_sdram_read:90.14 MB/stest sdram successtest_sdram_read:90.14 MB/stest sdram successtest_sdram_read:90.14 MB/stest sdram successtest_sdram_read:90.14 MB/stest sdram successtest_sdram_read:90.14 MB/stest sdram success```</eth0>