完成后,uclinux啟動一個最初的init線程,進入到第三階段。這時候內核已經正常運行,外圍模塊也都就緒,開始執行一些腳本文件(如/etc/rc腳本文件)。這通常是嵌入式開發者最感興趣的一個切入點。 3.2 編寫硬件相關代碼 作為源代碼公開的免費操作系統,uclinux源代碼可以從www.uclinux.org得到。這個源代碼也在不斷更新。筆者使用的是于2002年5月發布的greg ungerer(gerg@snapgear.com)版本。該版本的uclinux包含了對motorola公司m5272c3和其他幾款mcf5272評估板的支持。但與筆者的目標平臺相比,硬件資源并不完全相同,且為ram版本,并不能直接固化到rom中。于是決定直接在m5272c3的基礎上進行修改,以減少工作量。 需要添加三個文件:crt0_rom.s、sysinit.c和rom.ld。crt0_rom.s可以由crt0_ram.s修改得到,它提供一個rom矢量表以供cpu上電時讀取,并初始化cpu寄存器,設置程序堆棧,并最終跳轉到uclinux內核。mem_size也必須修改為實際容量。 ……#define mem