?? 00000001.htm
字號:
容 易 造 成 其 他 問 題。 更 主 要 的 是 這 保 留 了 這 部 分 功 能, 能 夠 <br /> 使 得 不 同 進(jìn) 程 使 用 相 同 代 碼 。 如 果 沒 有 了 這 個(gè) 功 能, 每 個(gè) 程 <br /> 序 都 需 要 自 己 的 運(yùn) 行 庫, 在 內(nèi) 存 中 就 會 有 庫 的 很 多 拷 貝。 其 <br /> 實(shí) 只 需 把 交 換 空 間 的 長 度 設(shè) 置 為 零, 就 可 以 關(guān) 閉 虛 擬 內(nèi) 存 的 <br /> 頁 面 換 入 和 換 出 功 能。 對 一 些CPU, 虛 擬 存 儲 器 的 功 能 提 供 內(nèi) <br /> 存 管 理, 防 止 不 同 程 序 占 用 相 同 的 地 址 空 間。 而 在 嵌 入 式 系 <br /> 統(tǒng) 中, 使 用 簡 單 、 絕 對 的 地 址 空 間, 因 此 這 種 功 能 也 不 會 起 <br /> 作 用。 不 過 這 到 提 供 了 防 止 誤 寫 以 至 于 使 系 統(tǒng) 崩 潰 的 功 能。 <br /> 很 多 嵌 入 式 系 統(tǒng) 習(xí) 慣 使 用“ 全 局 變 量”, 讓 進(jìn) 程 共 享 數(shù) 據(jù) 。 <br />在Linux 系 統(tǒng) 中 提 供 共 享 內(nèi) 存 方 法 讓 進(jìn) 程 共 享 數(shù) 據(jù) 信 息。 在RT- <br />Linux 中 使 用FIFO 進(jìn) 行 信 息 交 換。 <br />7. 處 理 文 件 系 統(tǒng) 很 多 嵌 入 式 系 統(tǒng) 沒 有磁 盤 和文 件 系 統(tǒng);Linux 也 <br /> 可 以 在沒 有 磁 盤 的 系 統(tǒng) 上 運(yùn) 行。 正 如 上 面 提 到 的, 應(yīng) 用 程 序 <br />可 以 和 核 心 一 起 編 譯, 在 啟 動 時(shí) 一 起 裝 入 運(yùn) 行。 這 適 應(yīng) 于 簡 <br />單 系 統(tǒng), 但不 具 有 靈 活 性。 其 實(shí), 許 多 商 業(yè) 的 嵌 入 式 系 統(tǒng) 都 提 <br /> 供 文 件 系 統(tǒng) 的 選 擇。 大 都 是 特 殊 的 文 件 系 統(tǒng) 或 者 兼 容MS-DOS <br />文 件 系 統(tǒng)。Linux 提 供 包 括MS-DOS 等許 多 選 擇。 其 他 的 文 件 系 統(tǒng) 具 <br /> 有 更 好 的 性 能。Linux 還 具 有 許 多 實(shí) 時(shí)商 業(yè) 操 作 系 統(tǒng) 所 不 具 備 <br />的檢 查 和 修 復(fù) 文 件 系 統(tǒng) 的 功 能。 這 種 功 能 對 于 通 過 網(wǎng) 絡(luò) 更 新 <br />的 系 統(tǒng) 尤 為 重 要。 Linux 的 文 件 系 統(tǒng) 可 以 建 立 在 傳 統(tǒng) 的 磁 盤 上 <br />、Flash Memory、 或 其 他 載 體。 甚 至 可 以 用 RAM 磁 盤 存 放 臨 時(shí) 文 件 <br />。 有 些 系 統(tǒng) 中 包 含 了 廉 價(jià) 的CD-ROM, 它 比Flash Memory 更 便 宜, 更 <br /> 新 升 級 更 容 易。Linux 系 統(tǒng) 可 以 從CD-ROM 中 啟 動 以 及 運(yùn) 行 程 序。 <br />在 網(wǎng) 絡(luò) 化 的 嵌 入 式 系 統(tǒng) ,Linux 支 持NFS( 網(wǎng) 絡(luò) 文 件 系 統(tǒng))。 于 是 <br /> , 你 可 以 使 用 很 多 網(wǎng) 絡(luò) 功 能。 首 先, 可 以 通 過 網(wǎng) 絡(luò) 來 啟 動 應(yīng) <br /> 用 程 序。 因 為 通 過 服 務(wù) 器 來 啟 動 應(yīng) 用 程 序, 所 以 是 進(jìn) 行 軟 件 <br /> 更 新 的 最 好 解 決 辦 法。 其 次, 在 運(yùn) 行 過 程 中, 可 以 很 方 便 地 <br />導(dǎo) 入 和 導(dǎo) 出 數(shù) 據(jù)、 狀 態(tài) 設(shè) 置 和 狀 態(tài) 信 息 等。 這 個(gè) 功 能 很 適 合 <br />用 于 遠(yuǎn) 程 監(jiān) 視 和 控 制 應(yīng) 用 系 統(tǒng)。 例 如, 在RAM 中 建 立 磁 盤, 保 存 <br /> 各 種 需 要 的 重 要 數(shù) 據(jù), 遠(yuǎn) 程 系 統(tǒng) 登 錄 到 此RAM 文 件 系 統(tǒng), 讀 取 <br /> 數(shù) 據(jù), 然 后 在 操 作 者 的 機(jī) 器 上 用 圖 形 界 面顯 示 運(yùn) 行狀 態(tài), 起 到 <br /> 很 好 的 監(jiān) 視 效 果。 <br />8. 設(shè) 置 啟 動-LILO 和BIOS 當(dāng) 微 機(jī) 啟 動 時(shí), 它 運(yùn) 行 預(yù) 定 地 址 的 代 <br />碼 ,那 地 址通 常 是 在 只 讀 存 儲 區(qū), 存 放 有 啟 動 代 碼 。 在PC 中 , <br /> 即 BIOS, 它 執(zhí) 行 底 層 的CPU 初 始 化 工 作 和 初 始 化 設(shè) 置 其 他 硬 件 <br />。BIOS 確 認(rèn) 哪 個(gè) 硬 盤 存 放 操 作 系 統(tǒng), 拷 貝 操 作 系 統(tǒng) 到RAM 中, 然 <br /> 后 運(yùn) 行 操 作 系 統(tǒng)。同 樣,Linux 在PC 上 運(yùn) 行, 依 靠PC 的BIOS 來 設(shè) 置 <br />硬 件、 啟 動OS。 在 嵌 入 式 系 統(tǒng) 中, 通 常 沒 有BIOS, 因 此, 需 要 提 <br />供 等 價(jià) 的 啟 動 代 碼。 嵌 入 式 系 統(tǒng) 并 不 需 要 象PC 那 樣 靈 活 的BIOS <br /> 啟 動 程 序, 它 初 始 化 的 硬 件 比 較 單 一。 這 段 代 碼 其 實(shí) 很 簡 單 <br />, 只 是 把 一 些 很 重 要, 而 且 還 要 特 殊 的 寫 入 順 序 要 求 的 數(shù) 據(jù) <br /> 寫 入 硬 件 的 寄 存 器 。 另 外 必 須 具 備 的 功 能 有 內(nèi) 存 檢 測, 點(diǎn) 亮 <br />LED, 檢 測 其 他 很 重 要 的 硬 件。 這 些 代 碼 的 針 對 性 很 強(qiáng), 不 需 <br />要 很 好 的 移 植 性。 所 以 不 同 的 硬 件 環(huán) 境 需 要 不 同 的 啟 動 代 碼 <br />。 為 了 進(jìn) 行 測 試, 可 以 使 用ICE( 在 線 仿 真 器) 或 其 他 的 設(shè) 備 來 <br /> 調(diào) 試 這 部 分 代 碼 。 這 部 分 代 碼 總 是 運(yùn) 行 在Flash 或EPROM 等 芯 片 <br /> 上, 所 以, 需 要 把 它 們 寫 入 這 些 芯 片。 如 何 寫, 當(dāng) 然 因 硬 件 的 <br /> 不 同 而 不 同 了。 一 個(gè) 最 為 普 通 的 方 法 是 使 用EPROM 或Flash 燒 錄 <br />器, 把 程 序 燒 錄 在 芯 片, 然 后 把 芯 片 插 入 板 上。 另 外 的 方 法 是 <br /> 通 過JTAG 接 口 進(jìn) 行。 <br />9. 嵌 入 式 的 Linux 同 樣 健 壯 可 靠 和其他的運(yùn)行于PC的系統(tǒng)相比,Linux是最 <br />可靠和最穩(wěn)定的操作系統(tǒng)。而嵌入式的核心也是如此的。Linux的核心移植到新的微處理 <br />器上,基本不用什么修改。因此Linux可以使用許多計(jì)算機(jī)板。外設(shè)的驅(qū)動程序也多如牛 <br />毛,而且比其他的都穩(wěn)定好用。但是,如果不是PC平臺環(huán)境,那么你必需為特殊硬件編 <br />寫驅(qū)動程序。對于各種硬件的相似驅(qū)動程序市面上隨處可見,所以,你可以DOWN下來修 <br />改而成,所以安裝新的或特殊 驅(qū)動器、網(wǎng)卡、串口、并口就不困難了。不過,我還是建 <br />議你在身邊放一本Kernel的書比較好,以備查找。 在我的經(jīng)驗(yàn)中,我覺得使用Linux的 <br />錯(cuò)誤大都是對系統(tǒng)的了解不準(zhǔn)確所至。況且,Linux的源代碼隨處可得、注釋豐富、文檔 <br />齊全,你完全可能自己去解決問題。 <br />10.結(jié)束語 嵌入式的Linux系統(tǒng)也有缺點(diǎn)。和某些商業(yè)操作系統(tǒng)一樣,占用較大的內(nèi)存 <br />。當(dāng)然可以去掉部分無用的功能來減小使用的內(nèi)存,但是,如果不仔細(xì),將引起新的問 <br />題。 有些Linux的應(yīng)用程序需要虛擬內(nèi)存,而嵌入式系統(tǒng)中并沒有或不需要虛擬內(nèi)存, <br />所以,并非所有的Linux應(yīng)用程序可以在嵌入式系統(tǒng)運(yùn)行。 核心的調(diào)試工具并非完盡人 <br />意,雖然可以使用kgdb,不過我們更多的是使用print語句來幫助調(diào)試。 在應(yīng)用于嵌入 <br />式系統(tǒng)的主要問題是:Linux本身具有很大的靈活性,而嵌入式系統(tǒng)不具有靈活性,它們 <br />主要針對特殊的問題。這是問題的關(guān)鍵。 總之,Linux用于開發(fā)嵌入式系統(tǒng)的應(yīng)用軟件 <br />是可能的和可行的。 <br /> <br />-- <br /> <br />※ 來源:·BBS 水木清華站 smth.org·[FROM: 166.111.167.231] <br /><a href="00000000.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一頁</a><a href="index.htm">回到目錄</a><a href="#top">回到頁首</a><a href="00000002.htm">下一篇</a></h1></center><center><h1>BBS 水木清華站∶精華區(qū)</h1></center></body></html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -