zoukankan      html  css  js  c++  java
  • 基于RT1052 Aworks 内存扩容记录(一)

    本文主要是通过迁移的思维,记录本人初次使用周立功的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) = 0x00000F31
    CL=3
    COL=9BIT
    BL=8
    Port size = 16

    新配置:
    New: *(0x402F0040) = 0x00000E31
    CL=3
    COL=10BIT
    BL=8
    Port 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 2020
    
    AWorks 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:01
    P/IP i|AWorks->>> nitializing
    Hostname set to AWorks
    TCP/IP initialized
    netif: add 0 <eth0>, (default)
    
    Application Start. 
    demo_sdram test...
    test_sdram_write:246.15 MB/s
    test_sdram_read:90.14 MB/s
    test sdram success
    test_sdram_read:90.14 MB/s
    test sdram success
    test_sdram_read:90.14 MB/s
    test sdram success
    test_sdram_read:90.14 MB/s
    test sdram success
    test_sdram_read:90.14 MB/s
    test sdram success
    ```</eth0>
  • 相关阅读:
    java
    图解MotionEvent中getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY
    ListView分栏--制作分栏音乐列表
    Android中Touch事件的传递机制
    Android进程间通信之使用AIDL
    Android进程间通信之使用Messenger
    Android Mms之短信接收流程--从Framework到App
    Android组件的使用:ListView、GridView
    Android组件的使用:AutoCompleteTextView、Spinner
    Android组件的使用:DatePicker,TimePicker
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/15169424.html
Copyright © 2011-2022 走看看