亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4848 | 回復: 9
打印 上一主題 下一主題

[BootLoader] 對于MIPS加電啟動U-boot的問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-11-17 20:07 |只看該作者 |倒序瀏覽
    對于MIPS加電啟動U-boot,有個問題我一直想不明白,希望大家能夠指導一下:CPU上電后會執(zhí)行一個固定地址0xbfc00000的代碼,一般存放有U-boot.bin的SPI Flash會映射到這個固定地址,也就是說CPU會執(zhí)行SPI Flash中的u-boot代碼,但是此時CPU中SPI Flash的控制器還沒有被初始化,那么CPU是如何訪問SPI Flash中的u-boot的呢?

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
2 [報告]
發(fā)表于 2014-11-17 21:43 |只看該作者
本帖最后由 arm-linux-gcc 于 2014-11-17 21:43 編輯

spi flash不會在這個地址
在這個地址是soc內部的一個rom,這個rom里的固件(流片時就固化好的)會做一些初始化,然后讀取spi flash中的程序到ram中,然后跳到ram中去

論壇徽章:
0
3 [報告]
發(fā)表于 2014-11-18 09:13 |只看該作者
回復 2# arm-linux-gcc

    主要是因為在網上看到hackpascal大俠講解U-boot的啟動流程(下圖紅線圈著的是引發(fā)我疑問的根源),不知道是不是我誤解了hackpascal大俠的意思?



   

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
4 [報告]
發(fā)表于 2014-11-18 09:36 |只看該作者
回復 3# 星閃夜空


    我以前做過spi flash的驅動,spi flash是不能像nor flash那樣直接讀取,需要發(fā)送命令,所以soc內部必須要有固件的輔助才能夠讀取spi flash中的內容

論壇徽章:
0
5 [報告]
發(fā)表于 2014-11-18 09:56 |只看該作者
回復 4# arm-linux-gcc
        非常感謝你的解答,我還有一個問題想請教你,對于u-boot源碼中的如下代碼:

     /* Initialize GOT pointer.*/
        bal     1f                    
        nop
        .word   _GLOBAL_OFFSET_TABLE_
        1:
        move    gp, ra                                 #ra:存放返回地址
        lw      t1, 0(ra)                                #lw: 從存儲器中讀取一個字的數據到寄存器中
        move        gp, t1

     _GLOBAL_OFFSET_TABLE_標志應該代表的是一個地址,不知道它起到什么作用?反正我搜索整個u-boot源碼,就沒有看到其他地址有使用到這個標志的。

     move gp, ra      這條指令應該是將ra寄存器中的返回地址存入gp寄存器中,而
     lw      t1, 0(ra)
     move        gp, t1   這兩條指令應該也是將ra寄存器中的返回地址存入gp寄存器中,不知道為什么要做兩次這樣的處理?

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
6 [報告]
發(fā)表于 2014-11-18 12:43 |只看該作者
本帖最后由 arm-linux-gcc 于 2014-11-18 12:43 編輯

回復 5# 星閃夜空


    mips的匯編我不太清楚,我主要是搞arm的,mips只是知道一些cpu體系架構方面的知識

論壇徽章:
0
7 [報告]
發(fā)表于 2014-11-18 13:56 |只看該作者
回復 6# arm-linux-gcc
    沒事,還是謝謝了。

   

論壇徽章:
0
8 [報告]
發(fā)表于 2015-03-26 19:41 |只看該作者
  /* Initialize GOT pointer.*/
        bal     1f                    
        nop
        .word   _GLOBAL_OFFSET_TABLE_
        1:
        move    gp, ra                                 #ra:存放返回地址
        lw      t1, 0(ra)                                #lw: 從存儲器中讀取一個字的數據到寄存器中
        move        gp, t1

     _GLOBAL_OFFSET_TABLE_標志應該代表的是一個地址,不知道它起到什么作用?反正我搜索整個u-boot源碼,就沒有看到其他地址有使用到這個標志的。

     move gp, ra      這條指令應該是將ra寄存器中的返回地址存入gp寄存器中,而
     lw      t1, 0(ra)
     move        gp, t1   這兩條指令應該也是將ra寄存器中的返回地址存入gp寄存器中,不知道為什么要做兩次這樣的處理?

這段代碼主要用于uboot第二階段代碼的重定位, _GLOBAL_OFFSET_TABLE_這個是在編譯時產生的,我印象中是got表的首地址,最后三行代碼你解釋的是正確的,最后兩句沒有用。
回復 5# 星閃夜空


   

論壇徽章:
0
9 [報告]
發(fā)表于 2015-04-12 22:04 |只看該作者
應該是連接地址

論壇徽章:
0
10 [報告]
發(fā)表于 2015-04-12 22:05 |只看該作者
我也是做這塊的,不過剛玩二個星期不夠
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP