system boot

先来看一下RK3399启动流程图

system boot_第1张图片

从图中可以得到以下几个结论:

1.RK3399上电后,会从0xffff0000获取romcode并运行;

2.然后依次从Nor Flash、Nand Flash、eMMC、SD/MMC获取ID BLOCKID BLOCK正确则启动,都不正确则从USB端口下载;

3.如果emmc启动,则先读取SDRAM(DDR)初始化代码到内部SRAM,然后初始化DDR,再将emmc上的代码(剩下的用户代码)复制到DDR运行;

4.如果从USB下载,则先获取DDR初始化代码,下载到内部SRAM中,然后运行代码初始化DDR,再获取loader代码(用户代码),放到DDR中并运行;

5.无论是何种方式,都需要DDR的初始化代码,结合前面RK3288的经验,就是向自己写的代码加上”头部信息”,这个”头部信息”就包含DDR初始化操作;

你可能感兴趣的:(rk3399)