嵌入式 hi3518c裸板烧写uboot简记以及内存初始化寄存器修改技巧

时间:2022-02-28 09:01:19

注:

1)使用的是ads1.2工具

2)如果uboot原来就存在,则需要通过串口停在uboot下然后打开ads1.2

3)打开J-Link V4.78c进行设置speed 1000 然后使用ads1.2初始化内存

 

1、加载uboot.bin
 J-Link>loadbin g:\3518\uboot_tools\3518a.bin 0x80800000
 Loading binary file... [g:\3518\uboot_tools\3518a.bin]
 
Writing bin data into target memory @ 0x80800000.
 
2、设置uboot执行地址
 J-Link>setpc 0x80800000
 
3、执行
 
J-Link>go
 
这时,如果顺利,在串口可以看到相应的uboot打印信息。

 

在ads1.2中调出下面的窗口:

嵌入式 hi3518c裸板烧写uboot简记以及内存初始化寄存器修改技巧

内存初始化寄存器修改技巧:

首先我们找到正确的DDRXINIT流程,然后针对相关的寄存器进行修改,主要的寄存器如下:

1、DDRC_RNKCFG为配置DDR特性的寄存器

其中一些具体参数例如:“单片SDRAM行地址位宽配置”“单片SDRAM列地址位宽配置”需要我们针对“DDRX”手册进行查找地址线个数以及数据线个数进行修改

2、然后主要是时序寄存器就不赘述,一些参数的修改技巧就是,在初始化流程中会有name--”trfc“,然后对应内存手册中的名称一般是”rfc“,这样两个手册就对应起来了:

    2、1 流程手册
嵌入式 hi3518c裸板烧写uboot简记以及内存初始化寄存器修改技巧

   2、2 DDR手册:

嵌入式 hi3518c裸板烧写uboot简记以及内存初始化寄存器修改技巧 

内存初始化命令:


setmem 0x20030000 0x11000000 32
setmem 0x20030004 0x0068306E 32
setmem 0x20030008 0x12000000 32
setmem 0x2003000c 0x007C2063 32
setmem 0x20030010 0x19000000 32
setmem 0x20030014 0x00682064 32
setmem 0x20030020 0x1B000000 32
setmem 0x20030024 0x007C40E1 32
setmem 0x20030028 0x00000010 32
setmem 0x2011001c 0x80000600 32

 

setmem 0x20030028 0x00000410 32
setmem 0x2011001c 0x80000600 32

 


setmem 0x20050014 0x0fff8000 32
setmem 0x2011001c 0x80000600 32

 

 


setmem 0x20050000 0x00000214 32
setmem 0x2011001c 0x80000600 32

 

setmem 0x2011001c 0x80000600 32
setmem 0x20110020 0x00000785 32
setmem 0x20110058 0x3240a000 32
setmem 0x20110010 0x00000001 32
setmem 0x2011002c 0x00000122 32
setmem 0x20110040 0x80000000 32
setmem 0x20110050 0x62330a08 32
setmem 0x20110054 0xff626720 32
setmem 0x2011005c 0xffcff5f2 32
setmem 0x201100ac 0x03000001 32
setmem 0x2011001c 0x80000600 32

 

setmem 0x201100f4 0x00000001 32
setmem 0x20110004 0x00000000 32
setmem 0x2011001c 0x80000600 32

 

 

setmem 0x20120404 0x80000000 32
setmem 0x2011001c 0x80000600 32


setmem 0x20120408 0x01842200 32
setmem 0x20120418 0x00220055 32
setmem 0x2012041c 0x048b0d41 32
setmem 0x20120420 0x03233881 32
setmem 0x2012042c 0xf200001e 32
setmem 0x20120434 0x288f6693 32
setmem 0x20120438 0x0040009b 32
setmem 0x2012043c 0x1001aa00 32
setmem 0x20120584 0x0000006d 32
setmem 0x20120440 0x00001730 32
setmem 0x20120444 0x00000006 32
setmem 0x20120448 0x00000008 32
setmem 0x2011001c 0x80000600 32

 


setmem 0x201205c0 0x00000e81 32
setmem 0x20120600 0x00000e81 32
setmem 0x2011001c 0x80000600 32

 

setmem 0x20120404 0x000000ff 32
setmem 0x2011001c 0x80000600 32


setmem 0x20110058 0x3240a062 32
setmem 0x20120408 0x01842200 32