新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 如何移植Linux到晶心平臺

如何移植Linux到晶心平臺

作者: 時間:2012-03-30 來源:網(wǎng)絡(luò) 收藏

4.2.3. Kernel 解壓縮與software breakpoint
在進行kernel 調(diào)試時,如果在低地址處,例如:head.S中進行調(diào)試,當(dāng)設(shè)定 software breakpoint時,會有breakpoint無法停下來與AICE 斷線的情況發(fā)生。原因是當(dāng)使用者設(shè)定software breakpoint時,breakpoint處的instruction會修改并加入break instruction。但kernel解壓縮時會將調(diào)試的程序代碼覆蓋造成與GDB調(diào)試不一致性而產(chǎn)生錯誤。解決的方法就是原設(shè)定software breakpoint改為hardware breakpoint,這樣就可以避免因kernel解壓縮所造成調(diào)試的錯誤,降低調(diào)試時的困難度。



4.2.4. PA/VA 觀念說明與調(diào)試要領(lǐng)
在原始碼arch/nds32/kernel/head.S中
la $lp, __mmap_switched
mtsr $lp, $IPC
iret

執(zhí)行完iret后,系統(tǒng)就會從PA轉(zhuǎn)成VA,MMU translation status從translation off轉(zhuǎn)為translation on在此分界處調(diào)試規(guī)則如下所述,如果觀念不清楚及容易產(chǎn)生調(diào)試時的錯誤,請務(wù)必牢記。

4.2.4.1. MMU translation off 時期調(diào)試

在這個時期調(diào)試,VA是不存在的。所有的IO address與memory都是PA沒有VA,如果調(diào)試地址設(shè)成VA,容易hit illegal address 而造成exception。

4.2.4.2. MMU translation on 時期調(diào)試
在這個時期調(diào)試,PA是不存在的。所有的IO address與memory都是VA沒有PA,如果調(diào)試地址設(shè)成PA,容易hit illegal address 而造成exception.

4.2.5. 的基礎(chǔ)組件

MMU translation on后,很快就會進入start_kernel 函數(shù),接下來的重點就是基礎(chǔ)組件,那就是interrupt,timer and UART。當(dāng)這3個device移植成功后,的架構(gòu)就建立起來了,printk也可以用了,Linux已經(jīng)可以正常的運作。如果沒有意外,可以執(zhí)行完kernel甚至將filesystem帶起來。接下來用戶可以將自己的周邊組件一個一個的device driver移植入系統(tǒng)。當(dāng)周邊組件移植完成后,Linux系統(tǒng)移植到就完成了。

5. 結(jié)語

Linux操作系統(tǒng)運作在已有多年的時間。各式各樣的Linux軟件運作在不計其數(shù)。皆可證明Linux操作系統(tǒng)運作結(jié)合晶心平臺是一個穩(wěn)定與成熟的產(chǎn)品,只要能明了熟悉Linux 移植的技巧與重點,使用晶心平臺開發(fā)Linux的產(chǎn)品將是一件愉快與簡單的工作。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 4 下一頁

關(guān)鍵詞: Linux 移植 晶心平臺

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉