1. 程式人生 > >system boot

system boot

先來看一下RK3399啟動流程圖

從圖中可以得到以下幾個結論:

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初始化操作;