Linux系統(tǒng)移植類(lèi)型
1.基于處理器的移植 這種類(lèi)型的移植要求從支持處理器的編譯器開(kāi)始,這是主要的也是困難的一步。通常當(dāng)一個(gè)操作系統(tǒng)(即便是一個(gè)應(yīng)用程序)要運(yùn)行于處理器上時(shí),都需要特定的編譯器把操作系統(tǒng)(應(yīng)用程序)編譯成處理器可識(shí)別的字節(jié)碼?! ♂槍?duì)linux系統(tǒng)而言,由于gnu(gnu是一種自由軟件體系)套件支持大量的處理器,gnu編譯器gcc在設(shè)計(jì)時(shí)就已經(jīng)考慮跨平臺(tái)的問(wèn)題,所以在進(jìn)行g(shù)oo移植時(shí)可以不考慮前端高級(jí)語(yǔ)言解析的部分(即針對(duì)c語(yǔ)言等解析的過(guò)程),而只需要考慮后端的移植(主要針對(duì)處理器部分)。這些后端告訴goo在編譯時(shí)如何形成匯編代碼,如何滿(mǎn)足處理器體系結(jié)構(gòu)下的參數(shù)傳遞,如何針對(duì)處理器進(jìn)行流水線優(yōu)化等?! 』赼rm處理器的移植還包括操作系統(tǒng)的移植(假如嵌入式設(shè)備不需要操作系統(tǒng),則編譯器完成后就可以進(jìn)入編寫(xiě)應(yīng)用的階段)。任何操作系統(tǒng)都有一定的代碼是同處理器相關(guān)的,而操作系統(tǒng)為了增加運(yùn)行效率,大都使用了大量特定處理器提供的底層功能支持。這些與特定處理器相關(guān)的部分最終都必須修改,使其適用于新的處理器?! ×硗?,從編寫(xiě)應(yīng)用程序的角度來(lái)看,還必須提供函數(shù)庫(kù)。因此函數(shù)庫(kù)的移植也是必需的。 2.基于平臺(tái)的移植 這種移植相對(duì)于處理器的移植而言所處的開(kāi)發(fā)層次更高,主要在板級(jí)上進(jìn)行。對(duì)于一個(gè)嵌入式設(shè)備,除了處理器還要有很多周邊的器件才能正常工作。因此操作系統(tǒng)在運(yùn)行時(shí)必須初始化特定目標(biāo)板的器件。 這些器件中最主要的是flash、sdram存儲(chǔ)器等。這些設(shè)備在系統(tǒng)啟動(dòng)后必須能夠正確尋址,從而使操作系統(tǒng)能夠正常運(yùn)行。此外可能需要考慮的問(wèn)題還包括:打印終端、串口、以太網(wǎng)設(shè)備等。
歡迎轉(zhuǎn)載,信息來(lái)源維庫(kù)電子市場(chǎng)網(wǎng)()