一
請問uboot啟動過程都做了些什么?
二
為什么uboot要關掉cache?
三
nandflash和norflash的區別,對norflash的操作方式的理解?
請先思考后在看答案哦
一
uboot啟動過程都做了些什么
1、cpu剛開始初始化的時候,還未設置棧,所以先使用匯編代碼,構建異常項鏈表,然后設置cpu為svc(特權)模式,同時關閉FIQ和IRQ(防止突發中斷程序跑飛了)
注:在跳轉到內核之前,要滿足CPU出在SVC模式下。
2、對cp15協處理器進行設置,這里主要是關閉MMU和cache
3、進入到板級初始化階段,這里會進行時鐘、內存、串口的初始化。最后還要關閉看門狗。
4、接下來就是設置棧,為c語言準備運行環境,調用board_init_f,填充gd結構體。
5、對代碼重定位,搬運到內存中去,搬運之后,跳轉到內存中去執行board_init_r,這里就可以開啟cache了,當然也可以不開啟。然后初始化其他設備。比如flash、網卡、emmc等。初始化完之后,在執行main_loop
二
uboot要關掉cache
1、cpu剛開始初始化的時候,還未設置棧,所以先使用匯編代碼,構建異常項鏈表,然后設置cpu為svc(特權)模式,同時關閉FIQ和IRQ(防止突發中斷程序跑飛了)
注:在跳轉到內核之前,要滿足CPU出在SVC模式下。
2、對cp15協處理器進行設置,這里主要是關閉MMU和cache
3、進入到板級初始化階段,這里會進行時鐘、內存、串口的初始化。最后還要關閉看門狗。
4、接下來就是設置棧,為c語言準備運行環境,調用board_init_f,填充gd結構體。
5、對代碼重定位,搬運到內存中去,搬運之后,跳轉到內存中去執行board_init_r,這里就可以開啟cache了,當然也可以不開啟。然后初始化其他設備。比如flash、網卡、emmc等。初始化完之后,在執行main_loop
三
nandflash和norflash的區別及對norflash的操作方式的理解
兩種芯片的結構不同 NORflash之所以可以片內執行,就是因為他符合CPU去指令譯碼執行的要求。CPU送一個地址出來,NORflash就能給一個數據讓CPU執行,中間不需要額外的處理操作。
NAND flash不一樣是因為nandflash有地址,數據,命令共用IO口的問題,cpu把地址發出來之后,并不能直接得到數據,還需要控制線的操作才能完成。就是他沒有專用的SRAM接口。
嵌入式系統中代碼的執行方式主要有3種:
-
cpu
+關注
關注
68文章
11031瀏覽量
215944 -
Linux
+關注
關注
87文章
11456瀏覽量
212750 -
Uboot
+關注
關注
4文章
126瀏覽量
28874
原文標題:Linux面試基礎題3道
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
關于C語言的10道面試題
java基礎練習、面試題
java經典面試題深度解析
c語言面試題,c++面試題下載
Java的經典面試題和答案詳細說明

評論