嵌入式系統(tǒng)北京航空航天大學(xué)Experim

上傳人:san****019 文檔編號:22610512 上傳時間:2021-05-29 格式:PPT 頁數(shù):28 大?。?.11MB
收藏 版權(quán)申訴 舉報 下載
嵌入式系統(tǒng)北京航空航天大學(xué)Experim_第1頁
第1頁 / 共28頁
嵌入式系統(tǒng)北京航空航天大學(xué)Experim_第2頁
第2頁 / 共28頁
嵌入式系統(tǒng)北京航空航天大學(xué)Experim_第3頁
第3頁 / 共28頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《嵌入式系統(tǒng)北京航空航天大學(xué)Experim》由會員分享,可在線閱讀,更多相關(guān)《嵌入式系統(tǒng)北京航空航天大學(xué)Experim(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 2006 Embedded嵌 入 式 LINUX開 發(fā) 環(huán) 境 的 建 立鄒 琪牛 建 偉 嵌 入 式 系 統(tǒng) 課 程 實(shí) 驗(yàn) 一 2006 Embedded 實(shí) 驗(yàn) 目 的 實(shí) 驗(yàn) 內(nèi) 容 開 發(fā) 環(huán) 境 配 置 開 發(fā) 工 具 介 紹 編 寫 程 序 和 Makefile 編 譯 、 下 載 調(diào) 試 2006 Embedded 實(shí) 驗(yàn) 目 的 介 紹 一 般 的 嵌 入 式 開 發(fā) 流 程 , 并 介 紹 開 發(fā) 流 程 中 使 用 的 軟件 和 硬 件 的 安 裝 來 建 立 開 發(fā) 環(huán) 境 , 通 過 此 實(shí) 驗(yàn) 了 解 和 熟 悉嵌 入 式 的 軟 硬 件 平 臺 。 熟 悉 Li

2、nux開 發(fā) 環(huán) 境 , 學(xué) 會 基 于 S3C2410的 Linux開 發(fā) 環(huán) 境的 配 置 和 使 用 。 使 用 Linux的 arm4l-unknown-linux-gcc編譯 , 使 用 基 于 NFS方 式 的 下 載 調(diào) 試 , 了 解 嵌 入 式 開 發(fā) 的 基本 過 程 。 2006 Embedded 實(shí) 驗(yàn) 內(nèi) 容 本 次 實(shí) 驗(yàn) 硬 件 平 臺 使 用 UP-NetARM2410-S實(shí) 驗(yàn) 箱 , 宿 主 PC機(jī) 上 使 用 REDHAT Linux 9.0操 作 系 統(tǒng) 環(huán) 境 。 將 硬 件 平 臺 和宿 主 PC機(jī) 通 過 串 口 線 和 網(wǎng) 線 連 接 好 后 ,

3、 在 宿 主 PC機(jī) 上 安 裝開 發(fā) 工 具 軟 件 , 建 立 交 叉 編 譯 調(diào) 試 環(huán) 境 并 進(jìn) 行 配 置 。 利 用 已 經(jīng) 建 立 好 的 ARM-Linux的 開 發(fā) 庫 及 編 譯 器 , 編 寫hello.c和 Makefile文 件 。 學(xué) 習(xí) 在 Linux下 的 編 程 和 編 譯 過程 , 以 及 ARM開 發(fā) 板 的 使 用 和 開 發(fā) 環(huán) 境 的 設(shè) 置 。 下 載 已 經(jīng)編 譯 好 的 文 件 到 目 標(biāo) 開 發(fā) 板 上 運(yùn) 行 。 2006 Embedded 開 發(fā) 環(huán) 境 配 置 ( 1) 在 宿 主 機(jī) Linux環(huán) 境 下 配 置 網(wǎng) 絡(luò) , 包 括

4、 IP地 址 、 NFS服 務(wù) 、防 火 墻 。 設(shè) 置 宿 主 機(jī) IP地 址 時 , 需 將 其 地 址 與 開 發(fā) 平 臺 的 IP地 址 設(shè)置 在 同 一 網(wǎng) 段 內(nèi) 。 這 里 , 將 PC的 IP設(shè) 為 192.168.0.121。 2006 Embedded 開 發(fā) 環(huán) 境 配 置 ( 2) 雙 擊 設(shè) 備 eth0, 進(jìn) 入 以 太 網(wǎng) 設(shè) 置 界 面 , 可 以 設(shè) 置 地 址 、 子網(wǎng) 掩 碼 和 網(wǎng) 關(guān) 。 對 REDHAT9.0, 它 默 認(rèn) 打 開 了 防 火 墻 , 外 來 IP無 法 用 NFS mount訪 問 它 , 此 因 要 在 安 全 級 別 設(shè) 置 中

5、 關(guān) 閉 它 。 2006 Embedded 開 發(fā) 環(huán) 境 配 置 ( 3) 在 系 統(tǒng) 設(shè) 置 菜 單 中 選 擇 服 務(wù) 器 設(shè) 置 菜 單 , 再 選 中 服 務(wù) 菜 單 ,將 iptables服 務(wù) 去 掉 , 選 中 NFS。 點(diǎn) 擊 系 統(tǒng) 設(shè) 置 -服 務(wù) 器 設(shè) 置 -NFS服 務(wù) 器 , 出 現(xiàn) 如 下 界 面 ,在 目 錄 中 填 入 共 享 目 錄 的 路 徑 和 主 機(jī) 地 址 。 2006 Embedded 一 些 常 規(guī) 選 項(xiàng) 設(shè) 置 , 保 留 默 認(rèn) 值 。 在 用 戶 訪 問 中 , 設(shè) 置 將 遠(yuǎn) 程用 戶 當(dāng) 作 根 用 戶 時 , 對 于 操 作 比

6、 較 方 便 , 但 安 全 性 較 差 。 配 置 NFS完 成 后 , 可 以 測 試 是 否 成 功 。 在 宿 主 機(jī) 下 自 己 mount自 己 mount 192.168.0.10:/arm2410s /mnt 其 中 192.168.0.10是 主 機(jī) IP, 然 后 到 /mnt/ 目 錄 下 看 是 否可 以 列 出 對 應(yīng) arm2410s目 錄 下 的 所 有 文 件 和 目 錄 , 如 可 以 則說 明 mount成 功 , NFS配 置 成 功 。 2006 Embedded MINICOM的 配 置 1.在 Xwindows界 面 下 新 建 終 端 , 在 終

7、端 的 命 令 提 示 符 后 輸入 minicom, 回 車 , 就 能 看 到 minicom的 啟 動 畫 面 。 若 是 在字 符 界 面 下 , 直 接 輸 入 minicom即 可 。 2006 Embedded 2.minicom啟 動 后 , 先 按 Ctrl+A鍵 , 再 按 Z鍵 ( 非 連 續(xù) 按 ) ,進(jìn) 入 主 配 置 界 面 。 按 O進(jìn) 入 配 置 界 面 。 按 上 下 選 擇 Serial port setup, 進(jìn) 入 端 口 設(shè) 置 界 面 。 2006 Embedded 3. 如 上 圖 進(jìn) 行 參 數(shù) 配 置 , 選 好 后 按 ESC鍵 退 出 ,

8、選 擇 Save setup as df1保 存 退 出 , 以 后 只 要 啟 動 minicom就 是 該 配 置 ,無 需 再 做 改 動 。 2006 Embedded 4. 配 置 完 成 后 , 用 串 口 線 連 接 好 PC機(jī) 和 2410-s實(shí) 驗(yàn) 箱 ,打 開 電 源 , 即 可 在 minicom上 看 到 啟 動 信 息 , 并 可 以 執(zhí) 行操 作 控 制 。 2006 Embedded 開 發(fā) 工 具 軟 件 的 安 裝 將 開 發(fā) 板 附 帶 光 盤 插 入 光 驅(qū) , 在 光 驅(qū) 所 在 目 錄/mnt/cdrom中 運(yùn) 行 安 裝 腳 本 。 cd /mnt/

9、cdrom ./install.sh 安 裝 腳 本 程 序 將 自 動 建 立 /arm2410s目 錄 , 并 將 所 有 開 發(fā)軟 件 包 安 裝 到 /arm2410s目 錄 下 , 同 時 自 動 配 置 編 譯 環(huán) 境 ,建 立 合 適 的 符 號 連 接 。 注 意 : 安 裝 完 成 后 看 一 下 主 編 譯 器 Armv4l-unknown-linux-gcc是 否 在 /opt/host/armv4l/bin/, 如 果 不 是 這 個 路 徑 , 請使 用 vi修 改 /root/.bash_profile文 件 中 PATH變 量 為PATH=$PATH:$HOME/

10、bin:/opt/host/armv4l/bin/, 存 盤 以 后執(zhí) 行 : source/root/.bash_profile, 則 以 后 armv4l-unknown-linux-gcc會 自 動 搜 索 到 , 可 以 在 終 端 上 輸 入 arm, 然 后 按 tab鍵 , 會 自 動 顯 示 armv4l-unknown-linux- 2006 Embedded Linux開 發(fā) 套 件 GCC 編 譯 器 Binutils 是 一 組 開 發(fā) 工 具 , 包 括 連 接 器 , 匯 編 器 和 其他 用 于 目 標(biāo) 文 件 和 檔 案 的 工 具 。 Make 使 用 GNU

11、 的 make工 具 能 夠 比 較 容 易 的 構(gòu) 建 一 個 工程 , 整 個 工 程 的 編 譯 只 需 要 一 個 命 令 就 可 以 完 成 編 譯 、 連接 以 至 于 最 后 的 執(zhí) 行 。 不 過 這 需 要 編 寫 Makefile文 件 。 GDB 負(fù) 責(zé) 程 序 調(diào) 試 Glibc 標(biāo) 準(zhǔn) C庫 , 數(shù) 學(xué) 庫 , 以 及 板 級 程 序 庫 集 成 開 發(fā) 環(huán) 境 2006 Embedded GCC選 項(xiàng) g: 在 可 執(zhí) 行 文 件 中 輸 出 調(diào) 試 信 息 , 通 常 是 為 調(diào) 試 器 gdb所 用 On: 代 碼 優(yōu) 化 , n隨 著 系 統(tǒng) 的 不 同 而

12、不 同 Idir: 指 定 頭 文 件 搜 索 目 錄 gcc foo.c I/home/zou/include o foo Ldir: 指 定 在 目 錄 中 需 要 搜 索 的 庫 (動 態(tài) 庫 .so 和 靜 態(tài) 庫 .a) gcc foo.c L/home/zou/lib lfoo o foo static: 鏈 接 時 使 用 靜 態(tài) 鏈 接 elf2flt: 將 可 執(zhí) 行 文 件 頭 轉(zhuǎn) 換 為 flt平 板 格 式 c: 只 預(yù) 處 理 , 編 譯 和 匯 編 生 產(chǎn) obj文 件 2006 Embedded 調(diào) 試 工 具 GDB 調(diào) 試 嵌 入 式 Linux系 統(tǒng) 需 要

13、 一 個 運(yùn) 行 系 統(tǒng) 的 環(huán) 境 , 一 個 調(diào)試 環(huán) 境 。 這 里 采 用 GDB的 遠(yuǎn) 程 調(diào) 試 功 能 遠(yuǎn) 程 調(diào) 試 一 般 由 主 機(jī) 和 目 標(biāo) 機(jī) 通 過 串 口 或 網(wǎng) 絡(luò) 連 接 而 成 。 GDB里 面 嵌 有 串 口 通 信 協(xié) 議 。 在 目 標(biāo) 機(jī) 上 需 要 實(shí) 現(xiàn) 一 個stub文 件 , 這 個 文 件 里 面 需 要 提 供 串 口 連 接 的 協(xié) 議 和 傳 送數(shù) 據(jù) 信 息 的 方 法 。 調(diào) 試 的 一 般 步 驟 將 兩 臺 機(jī) 器 用 串 口 連 接 起 來 將 需 要 調(diào) 試 的 程 序 下 載 到 目 標(biāo) 機(jī) 在 主 機(jī) 啟 動 GDB,

14、 讀 入 需 要 調(diào) 試 的 程 序 的 符 號 表 和 程 序 代 碼 使 用 target remote命 名 建 立 和 遠(yuǎn) 程 主 機(jī) 的 連 接 然 后 就 象 使 用 一 般 的 GDB一 樣 進(jìn) 行 程 序 的 調(diào) 試 了 2006 Embedded GDB調(diào) 試 程 序 Host gdb myprogram Gdbtarget remote /dev/ttys0 Gdbload /程 序 運(yùn) 行 至 main Gdb display foo /目 標(biāo) 在 main()處 停 止 gdb stepi /目 標(biāo) 執(zhí) 行 一 個 指 令 Gdbquit /退 出 調(diào) 試 2006 E

15、mbedded HelloWorld程 序 在 Linux下 用 文 本 編 輯 器 ( vi、 gedit等 ) hello.c的 源 代 碼 如 下 : #include int main(void) printf (Hello world, Linux programming!n); return 0; 2006 Embedded 編 寫 Makefile文 件 ( 1) CC = armv4l-unknown-linux-gcc EXEC = hello OBJS = hello.o CFLAGS += LDFLAGS += -static all: $(EXEC) $(EXEC):

16、$(OBJS) $(CC) $(LDFLAGS) -o $ $(OBJS) clean: -rm -f $(EXEC) *.elf *.gdb *.o 2006 Embedded 編 寫 Makefile文 件 ( 2) 以 上 是 本 例 用 到 的 Makefile文 件 , 它 有 幾 個 主 要 部 分 CC 指 明 編 譯 器 EXEC 表 示 編 譯 后 生 成 的 執(zhí) 行 文 件 名 稱 OBJS 目 標(biāo) 文 件 列 表 CFLAGS 編 譯 參 數(shù) LDFLAGS 連 接 參 數(shù) all: 編 譯 主 入 口 clean: 清 除 編 譯 結(jié) 果 注 意 : “ $(CC) $

17、(LDFLAGS) -o $ $(OBJS)” 和 “ -rm -f $(EXEC) *.elf *.gdb *.o” 前 空 白 由 一 個 Tab制 表 符 生 成 ,不 能 單 純 由 空 格 來 代 替 。 2006 Embedded 編 譯 應(yīng) 用 程 序 在 上 面 的 步 驟 完 成 后 , 我 們 將 hello.c和 Makefile文 件 放在 同 一 目 錄 下 , 運(yùn) 行 make來 編 譯 程 序 了 。 如 程 序 進(jìn) 行 了 修改 , 重 新 編 譯 則 運(yùn) 行 make clean, 然 后 再 make。 若 不 用 Makefile, 直 接 用 gcc編

18、譯 也 行 armv4l-unknown-linux-gcc hello.c o hello 注 意 : 編 譯 、 修 改 程 序 都 是 在 宿 主 機(jī) ( 本 地 PC機(jī) ) 上 進(jìn) 行 ,不 能 在 MINICOM下 進(jìn) 行 。 2006 Embedded 編 譯 應(yīng) 用 程 序l編 寫 數(shù) 組 排 序 程 序 在 Linux下 編 寫 匯 編 程 序 和 C程 序 , 然 后 編 譯 連 接 成 ARM可 運(yùn) 行 的 二 進(jìn) 制 文 件 , 最 后 把 該 二 進(jìn) 制 文 件 下 載 到 目標(biāo) 機(jī) ( 教 學(xué) 試 驗(yàn) 平 臺 ) 上 運(yùn) 行 , 查 看 運(yùn) 行 結(jié) 果 是 否 正確

19、。 在 C程 序 main函 數(shù) 中 , 接 收 用 戶 輸 入 ( 用 戶 任 意 輸 入 9個 整 數(shù) ) , 然 后 在 main中 調(diào) 用 使 用 ARM匯 編 編 寫 的 函 數(shù)( 單 獨(dú) 存 儲 成 一 個 文 件 , 在 該 函 數(shù) 中 完 成 對 這 9個 整 數(shù)的 排 序 功 能 ) , 然 后 再 在 C程 序 main函 數(shù) 中 輸 出 這 9個排 好 順 序 的 整 數(shù) 。 2006 Embedded 編 譯 應(yīng) 用 程 序l 編 寫 數(shù) 組 排 序 程 序#include int main() int i=0;int num=0;int *array=NULL;whi

20、le(num 0) break;if(NULL = (array = (int *)malloc(num*sizeof(int) printf(malloc failed!n);exit(-1);printf(please enter the elements:n);for(i = 0; inum; i+) printf(n%d:t, i);scanf(%d, array+i);select(array, num);printf(=nthe result is:n); for(i = 0; inum; i+) printf(%d:t%dn, i, *(array+i);return 0; 20

21、06 Embedded 通 過 NFS調(diào) 試 程 序 前 面 配 置 開 發(fā) 環(huán) 境 時 已 在 宿 主 PC上 啟 動 了 NFS服 務(wù) , 并 設(shè)置 好 了 共 享 目 錄 , 可 以 在 終 端 中 輸 入 minicom, 建 立 開 發(fā)板 與 宿 主 PC機(jī) 之 間 的 通 訊 了 。 /mnt/yaffs mount t nfs o nolock 192.168.0.56:/arm2410s /host 注 意 : IP地 址 需 要 根 據(jù) 宿 主 PC的 實(shí) 際 情 況 修 改 成 功 掛 接 宿 主 PC的 arm2410s目 錄 ( 假 定 編 寫 了 hello.c和Ma

22、kefile都 在 此 目 錄 下 ) 后 , 在 開 發(fā) 板 上 進(jìn) 入 /host目 錄便 相 應(yīng) 進(jìn) 入 宿 主 PC的 /arm2410s目 錄 。 在 /host目 錄 下 運(yùn) 行編 譯 好 的 hello程 序 /host./hello 可 以 看 到 結(jié) 果 Hello world, Linux programming! 注 意 : 開 發(fā) 板 掛 接 宿 主 機(jī) 目 錄 只 需 掛 接 一 次 , 只 要 開 發(fā) 板沒 有 重 啟 , 就 能 一 直 保 持 連 接 。 這 樣 可 以 反 復(fù) 修 改 、 編 譯 、 調(diào) 試 , 不 需 要 下 載 到 開 發(fā) 板 2006 E

23、mbedded 通 過 FTP上 傳 應(yīng) 用 程 序 用 交 叉 網(wǎng) 線 連 接 好 開 發(fā) 板 的 NIC-1網(wǎng) 口 和 PC機(jī) 的 網(wǎng) 口 , 在宿 主 機(jī) 下 打 開 終 端 輸 入 minicom, 建 立 開 發(fā) 板 與 宿 主 PC機(jī)之 間 的 通 訊 , 配 置 開 發(fā) 板 的 IP和 宿 主 機(jī) 在 同 一 網(wǎng) 段 。 /mnt/yaffsifconfig -查 看 IP /mnt/yaffsifconfig eth0 192.168.0.111 -配置 eth0的 IP /mnt/yaffsinetd -啟 動 ftp服 務(wù) 打 開 FTP軟 件 gFTP, 輸 入 地 址

24、192.168.0.111, 用 戶 名 :root, 密 碼 : 無 。 連 接 進(jìn) 入 , 上 傳 編 譯 好 的 程 序 hello到/var文 件 夾 下 , 運(yùn) 行 可 以 看 到 結(jié) 果 /var/./hello Hello world, Linux programming! 2006 Embedded MINCOM下 載 調(diào) 試 minicom啟 動 后 , 先 按 Ctrl+A鍵 , 再 按 Z鍵 進(jìn) 入 主 配 置 界 面 。按 S發(fā) 送 文 件 。 選 擇 Xmodem協(xié) 議 , 然 后 再 選 中 要 發(fā) 送 的 文件 即 可 。 2006 Embedded Windows下 超 級 終 端 下 載 調(diào) 試 在 Windows下 可 以 用 超 級 終 端 實(shí) 現(xiàn) 和 minicom一 樣 的 功 能 ,先 設(shè) 置 好 相 關(guān) 參 數(shù) : 波 特 率 為 115200, 數(shù) 據(jù) 位 8, 無 奇 偶校 驗(yàn) , 停 止 位 為 1, 無 數(shù) 據(jù) 流 控 制 。 2006 Embedded開 始 實(shí) 驗(yàn)

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!