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