基于PowerPC和嵌入式Linux的VPN網關設計
cpu / /與MPC8xx硬件關聯的系統初始化. c代碼
disk / /磁盤分區支持
doc / /技術文檔目錄
examp les / /一些簡單的、無需操作系統的應用程序
fs / /ppcboot中對文件系統的支持
include / /頭文件
net / /網絡協議支持
ppc PowerPC / /處理器運行時環境支持
ppcboot / / elf32格式的ppcboot二進制執行文件
ppcboot. bin / / raw二進制格式的ppcboot執行文件
ppcboot. map / / s2record格式的ppcboot執行文件
rtc / /實時時鐘支持
tools / /與ppcboot相關的一些工具軟件ppcboot的特點
經修改后, ppcboot-1. 1. 5 具有如下特性: ( 1 ) 支持bootm,直接從flash引導L inux,并提供軟件工具集,可構建出最終燒結用的影像; (2) 支持從doc或flash memory引導L inux,并提供工具集,可構建出最終燒結用的影像; (3) 板上flash /doc讀、寫、擦除功能; (4) 支持串行口kermit協議下載代碼或數據; (5) 支持scc1以太網口啟動tftp下傳數據:如內核、ramdisk、autoscrip t等影像; ( 6) 支持串行口srecord下載代碼或數據; (7) 支持autoscrip t; (8) 提供板上內存讀寫,格式化顯示,可進行簡單測試。
當完成ppcboot-1. 1. 5的改寫后,對其進行編譯,得到二進制的ppcboot. bin代碼,然后將其燒錄在板上的BOOTEPROM中,這樣就可以在上電后完成對系統的引導。
建立Linux開發平臺
修改和編譯嵌入式L inux內核
Linux內核有自己的結構體系,進程管理、內存管理和文件系統是其最基本的三個子系統。圖2 為L inux 內核的結構。圖中虛線框中部分可以看成是Linux內核的單內核結構,因此修改內核必須注意各子系統間的協調。

Linux開發平臺使用內核版本為2. 4. 4的PowerPC嵌入式L inux操作系統作為VPN 網關的基本軟件平臺。為了支持硬件平臺,需要對內核進行修改,并增加相應設備的驅動程序。
(1) 驅動程序列表。
DOC 驅動程序源碼: /home / sjw01 / linux/drivers/mtd /devices/ doc2000. c;
以太網驅動程序源碼: / home / sjw01 / linux/ arch /ppc /8xx _ io / enet_scc1. c fec. c;
RTC 驅動程序源碼: /home / sjw01 / linux/drivers/unis _ rtc / rtc8xx. h rtc8xx. c setrtc8xx. cMkaefile setrtc8xx;
串口驅動程序源碼: /home / sjw01 / linux/ arch /ppc /8xx_ io / uart. c;
flash memory 驅動程序源碼: /home / sjw01 / linux/drivers/mtd / map s/unis. c。
(2) 交叉編譯環境。
使用hardhat CDK2. 0作為開發工具,需將下面的路徑加入用戶環境變量$PATH 中: /op t/hardhat/devkit/ppc /8xx/bin; #export PATH = $PATH: /op t/hardhat/devkit/ppc /8xx/bin或編輯“. bash_p rofile”文件的PATH行。對于應用軟件,一般情況下只要替換編譯器cc為ppc_8xx-gcc,重新編譯一下源代碼即可。構建目標文件系統
配置DOC或FlashMemory中的文件系統是件很講究的事情,主要是因為DOC /Flash容量有限,在保證正常功能的前提下,要盡可能地少占用資源。
總體上,文件分成如下幾類: (1)共享庫類:這類文件必不可少。(2) L inux/GNU系統實用工具:盡量用busybox、tinylogin代替,能減則減。(3)配置文件:多出現在/ etc下,不太占地方,但要注意協調關系。(4)用戶應用程序:編譯時盡量使用動態連接,編譯后strip一下,放到固定位置。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論