|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
誰(shuí)能看懂BLOB里的這個(gè)函數(shù)? |
| 作者:smartsheep 欄目:ARM技術(shù) |
這是bootloader BLOB里的一個(gè)函數(shù),這個(gè)函數(shù)應(yīng)該是跳到linux內(nèi)核的函數(shù),參數(shù)addr就是linux kernel所在RAM起始地址, 但我實(shí)在看不懂,addr是在哪里放到r3去的? 這里的幾個(gè)參數(shù)函數(shù)都沒(méi)以用到啊 /* disable MMU then jump to addr preserve r0..r2 */ static void mmu_off_jump(u32 r0, u32 r1, u32 r2, u32 addr) { /* read CP15 c1, clear MMU bit, write BACK */ asm ("mrc p15, 0, r4, c1, c0, 0"); asm ("bic r4, r4, #1"); asm ("mcr p15, 0, r4, c1, c0, 0"); /* physical now!!, branch while still in pipeline */ asm ("mov pc, r3"); } |
| 2樓: | >>參與討論 |
| 作者: dragonyu 于 2006/2/2 16:31:00 發(fā)布:
我是這樣理解的,不知對(duì)不對(duì) ARM 的c編譯器,比如:ADS中用的,好像是用通用寄存器傳遞4個(gè)參數(shù),r0-r3,正好addr放在r3中, 我是這樣理解的,不知對(duì)不對(duì) |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |