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