第 13 章 嵌入式 linux 應用開發環境

21
嵌嵌嵌嵌嵌嵌嵌 - 嵌 S3C2440 嵌嵌嵌嵌嵌 嵌 13 嵌嵌嵌嵌 Linux 嵌嵌嵌嵌嵌嵌

Upload: rana-gamble

Post on 30-Dec-2015

48 views

Category:

Documents


0 download

DESCRIPTION

第 13 章 嵌入式 Linux 應用開發環境. 大綱. 13.1 建立開發環境 13.2 建立交叉編譯環境 13.3 開發工具 GNU 的使用. 13.1 建立開發環境. 13.1 建立開發環境 13.2 建立交叉編譯環境 13.3 開發工具 GNU 的使用. 13.1 建立開發環境. 目前常見的嵌入式作業系統 Window CE Plam EPOC Linux uClinux Embedix( 實驗平台所採用 ) 其他版本嵌入式 Linux.... 自行開發系統. 13.1 建立開發環境. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構

第 13 章嵌入式 Linux應用開發環境

Page 2: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

大綱

13.1 建立開發環境13.2 建立交叉編譯環境13.3 開發工具 GNU 的使用

Page 3: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.1 建立開發環境

13.1 建立開發環境13.2 建立交叉編譯環境13.3 開發工具 GNU 的使用

Page 4: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.1 建立開發環境

目前常見的嵌入式作業系統Window CEPlamEPOCLinux

uClinux Embedix( 實驗平台所採用 ) 其他版本嵌入式 Linux....

自行開發系統

Page 5: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.1 建立開發環境

建立 Linux 開發環境的方案有下列幾種:基於 PC 上的 Windows 作業系統下的 CYGWN在 Windows 下安裝虛擬機器,在虛擬機器下安裝 Linux 虛擬機器: VM Machine

本系統平台所採用的開發方式直接在 PC 平台上安裝 Linux

Page 6: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.2 建立交叉編譯環境

13.1 建立開發環境13.2 建立交叉編譯環境13.3 開發工具 GNU 的使用

Page 7: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.2 建立交叉編譯環境

交叉編譯整體架構

來源程式碼

GCC 編譯器

目的二進制檔

經過編譯

編譯後產生

經過乙太網路、 RS232 傳輸

圖 13.4 嵌入式系統交叉編譯過程

目標實驗板 編譯主機

Page 8: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.2 建立交叉編譯環境

如何建立交叉編譯環境1. 安裝編譯工具2. 建立目標平台與開發主機的連結

RS232 串列傳輸 NFS 伺服器架設

所使用的交叉編譯工具 -GNU 開發工具 其支援使用者可使用 C/C ++語言開發應用程式 可生成高效率執行程式,易掌握的編譯語言

執行於 Linux 的 GNUgcc 編譯器其功能為: 編譯 Linux 核心及其底下執行應用程式 做交叉編譯,編譯其他 CPU 上的程式

Page 9: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.2 建立交叉編譯環境

GNU 開發工具包含內容 C 編譯器 GCC C++ 編譯器 G++組合語言 AS鏈結器 LD二進位轉換工具( QBJCOPY 、 OBJDUMP )除錯工具( GDB 、 FDBSERVER 、 KGDB )建立其餘不同硬體平台的開發程式庫

GNU 相關參考網站: www.gnu.org/home.html

Page 10: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.3 開發工具 GNU 的使用

13.1 建立開發環境13.2 建立交叉編譯環境13.3 開發工具 GNU 的使用

Page 11: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.3 開發工具 GNU 的使用

GCC 是 GNU 組織的免費 C 編譯器。在 Linux 發佈的預設安裝及目前的自由軟體源代碼基本都能在 GCC 編譯器下編譯執行。

GCC 編譯器的使用,針對編譯系統內核或應用程式都是可以用到的。

Page 12: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.3 開發工具 GNU 的使用

在 Linux 作業系統中,對一個用標準 C 語言寫的來源程式進行編譯,採用 GNU 的 gcc 編譯器。

例如,下列簡單的 Hello 來源程式 (hello.c) : void main()

{ printf(“Hello the world\n”) ; }

Page 13: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.3 開發工具 GNU 的使用

要編譯這個程式,只需在 Linux 的 bash 提示符號下輸入命令:

$ gcc -o hello hello.c gcc 編譯器就會產生一個 hello 的可執行檔案。

在 hello.c 的目前目錄下執行 ./hello 就可以看到程式的輸出結果,如下圖。

圖 13.8 應用程式執行畫面

Page 14: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.3 開發工具 GNU 的使用

目標檔中包含以下的區段: .text( 本文區段 ) 包含程式的指令代碼 .data( 資料區段 ) 包含固定的資料,如常數,字串等

.bss( 未初始化資料區段 ) 包含未初始化的變數和陣列等。

Page 15: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.3 開發工具 GNU 的使用

Make :負責從專案的來源代碼中產生最終可執行檔和其他非來源代碼檔案的工具。

其命令本身可具備四種參數旗標、巨集定義、描述檔案名稱和目標檔案名稱。其標準形式為:

make [flags] [macro definitions] [targets]

Page 16: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.3 開發工具 GNU 的使用

makefile 一般稱為“ makefile” 或“ Makefile” 。也可指定別的檔案作為 makefile 。沒指定檔案時, make 會尋找預設檔案。如要指定其他檔案,可利用下列命令選項指定 m

akefile 檔:   $ make -f makefilename

Page 17: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.3 開發工具 GNU 的使用

一個簡單的 makefile 範例executable : main.o io.o   gcc main.o io.o -o executablemain.o : main.c    gcc -Wall -O -g -c main.c -o main.oio.o : io.c

   gcc -Wall -O -g -c io.c -o io.o

Page 18: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.3 開發工具 GNU 的使用

系統中預設的常用檔副檔名及其含義為: .o  目標檔 .c   C 原始檔案 .f   FORTRAN 原始檔案 .s  組合語言原始檔案 .y   Yacc-C 源語法 .l   Lex 源語法

Page 19: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

13.3 開發工具 GNU 的使用

偽目標其功用可使任何一個目標檔的重建,不會影響其他目標檔。

其與真正目標檔案不同於,偽目標檔並不存在。

make 會假設偽目標需要被產生,當make把該偽目標檔案的所有依賴檔案都更新後,就會執行它的規則裏的命令行。

Page 20: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

結論

透過上述建立開發環境的流程,可讓同學了解如何利用交叉編譯工具以及 make 工具去產生系統所需求的應用程式,且可透過開發環境介面,下載至實驗板上驗證程式運作。

Page 21: 第 13 章 嵌入式 Linux 應用開發環境

嵌入式系統概論 - 以 S3C2440 核心為架構 copyright @ 許永和

習題

利用本課程的交叉編譯工具以及 make 工具撰寫一個九九乘法表的應用程式碼及 Makefile 檔,並且透過 NFS 及 minicom 方式上傳檔案至實驗板執行。