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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

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

[BootLoader] 關(guān)于bootloader中的編譯地址、運(yùn)行地址和下載地址的問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-10-14 14:19 |只看該作者 |倒序?yàn)g覽
這幾天偶然想到一個(gè)問題,一直想不通,所以在這里發(fā)帖請(qǐng)教各位大牛們,在使用bootloader時(shí),我們常常需要和這3個(gè)地址打交道:編譯地址、運(yùn)行地址和下載地址,這里以U-boot為例子,使用的開發(fā)板是S3C2440,編譯地址是指各個(gè)具體開發(fā)板中board/開發(fā)板名/config.mk中指定,s3c2440是TEXT_BASE = 0x33F80000,
這樣我們生成的uboot.bin文件中所有的函數(shù)地址就是在TEXT_BASE上做偏移,打開編譯好的根目錄下文件System.map,顯示如下:
01.33f80000 T _start

02.33f80020 t _undefined_instruction

03.33f80024 t _software_interrupt

04.33f80028 t _prefetch_abort

05.33f8002c t _data_abort

06.33f80030 t _not_used

07.33f80034 t _irq

08.33f80038 t _fiq

09.33f80040 t _TEXT_BASE

10.33f80044 T _armboot_start

11.33f80048 T _bss_start

12.33f8004c T _bss_end

13.33f80050 t start_code

14.33f80104 t nandflash_boot

15.33f80140 t bad_nand_read

16......
復(fù)制代碼我的理解是Uboot中在C部分的函數(shù)調(diào)用都是以絕對(duì)地址來進(jìn)行的,因?yàn)閡boot關(guān)閉了MMU,沒有提供虛擬地址,所有的函數(shù)調(diào)用是以絕對(duì)地址來執(zhí)行,調(diào)用那個(gè)函數(shù)就到上表中對(duì)應(yīng)的地址中去尋找(start.S中除外,那里的函數(shù)調(diào)用是以b和bl調(diào)用,那是一種相對(duì)地址調(diào)用),我所說的是C語言的部分,所以在實(shí)際中,編譯地址和下載地址需要一致,這樣C語言中的調(diào)用才能找到對(duì)應(yīng)的函數(shù)(因?yàn)楹瘮?shù)調(diào)用是以絕對(duì)地址方式調(diào)用)。
這種理解方式解釋了為什么uboot的編譯地址和下載地址須一致的問題,你可以做實(shí)驗(yàn),編一個(gè)可在SDRAM中直接運(yùn)行的U-boot,但是下載地址和編譯地址不一致,其結(jié)果就是程序飛了。
    但是另一種情況出現(xiàn)了,norflash是支持XIP的, uboot也可以支持在norflash中直接運(yùn)行,你可在對(duì)應(yīng)開發(fā)板的.h中添加宏
#define CONFIG_SKIP_LOWLEVEL_INIT   1
#define CONFIG_SKIP_RELOCATE_UBOOT  1,再設(shè)置從norflash啟動(dòng)即可,此時(shí)U-boot能否運(yùn)行,因?yàn)殚_發(fā)板送人了,以前測(cè)試時(shí)我記得是可以運(yùn)行的,請(qǐng)哪位有開發(fā)板的朋友幫忙驗(yàn)證一下,如果能運(yùn)行,而norflash的地址從0開始,執(zhí)行函數(shù)調(diào)用時(shí)又去調(diào)用33fXXXXX處的函數(shù),那程序不是應(yīng)該crash掉嗎?如果不crash那么則說明函數(shù)調(diào)用是以相對(duì)地址方式的,如果是相對(duì)方式,編譯地址和下載地址可以不一致,但實(shí)際驗(yàn)證是不行的,這樣矛盾產(chǎn)生了。
那位老兄幫忙解答一下????????????????????????????????????????????????????????????????????????
不勝感激!


您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP