日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

對于初學者,只需要一臺安裝有linux操作系統(比如Ubuntu)的PC即可,或者在windows下安裝一個虛擬機軟件(Vmware),虛擬一個Linux系統的主機,但是我建議還是安裝真機,這樣會迫使你必須在Linux環境下做任何事情,能讓你更快的熟悉Linux操作系統。

那么當我們進入進階階段的學習時,需要在硬件設備上跑程序的時候,那我們就需要繼續搭建交叉開發環境了。交叉開發模式即編譯和運行不在同一臺主機上,在PC機上編輯、編譯,在目標機(開發板或者產品)上運行程序。

如何搭建嵌入式linux開發環境?

 

在主機上開發完程序,通常使用nfs網絡掛載或者tftp將目標代碼通過網線下載到目標板進行驗證,但是,像我們當前項目的驅動開發,驅動都是集成在內核中的,所以每次都是在Ubuntu上將整個內核代碼進行編譯,然后通過usb將整個內核鏡像產物進行燒寫。

gcc(GNU C Compiler),大名鼎鼎的GNU的C/C++/Obj-C編譯器

gcc一般Linux系統自帶,不用自己安裝,下面簡單說下gcc編譯的過程,GCC的編譯流程分為四個步驟:

  1. 預處理(Pre-Processing):gcc -E hello.c -o hello.i
  2. 編譯(Compiling):gcc -E hello.c -o hello.i
  3. 匯編(Assembling):gcc -c hello.s -o hello.o
  4. 鏈接(Linking):gcc hello.o -o hello

鏈接時有時候會加如下參數:

  • -I: 指定頭文件的路徑
  • -L: 指定庫的路徑

安裝交叉編譯工具鏈

當我們初學的時候僅僅在Linux主機下編譯運行我們的程序,gcc就夠了,但是如果交叉運行時,就必須安裝交叉編譯工具鏈,交叉編譯工具鏈可以自己制作,但是我還是建議大家通過以下方式安裝:

  • 在~目錄下創建一個文件夾
如何搭建嵌入式linux開發環境?

 

  • 下載交叉編譯工具鏈gcc-4.6.4.tar.xz(根據你需要的版本下載)cp到toolchain目錄下進行解壓
如何搭建嵌入式linux開發環境?

 

  • 添加環境變量

修改配置文件/etc/bash.bashrc,在最后一行添加:

export PATH=$PATH:/home/linux/toolchain/gcc-4.6.4/bin/
  • 重啟配置文件
source /etc/bash.bashrc
  • 工具鏈測試
arm-none-linux-gnueabi-gcc -v、

如果可以看到版本號,說明安裝配置成功。

tftp服務器的安裝及配置

tftp是用來下載遠程文件的最簡單網絡協議,基于UDP來實現的,嵌入式linux的tftp開發環境包括兩個方面:

一是linux服務器端的tftp-server支持,二是嵌入式目標系統的tftp-client支持。因為u-boot(bootloader的一種)本身內置支持tftp-client,所以嵌入式目標系統端就不用配置了。

  • 修改文件(/etc/default/tftpd-hapa),開啟tftp服務
sudo vi /etc/default/tftpd-hpa

改為:

如何搭建嵌入式linux開發環境?

 

-l:以standalone/listen 模式啟動TFTP服務,而不是從inetd啟動 ,standalone/listen模式是一次啟動,運行期間一直駐留在內存中,優點是反應快,缺點是損耗了一定的系統資源,通常用于對實時性要求較高的地方,inetd啟動方式相反,只在外部發出連接請求時才調用tftp進程,不占用系統資源。

-c:可創建新文件,默認情況下,TFTP只允許覆蓋原有文件,不能創建新文件。

-s:改變TFTP啟動的根目錄,加了-s之后,客戶端端在使用TFTP時,不再需要輸入指定的目錄。

  • 重啟tftp服務器
sudo service tftpd-hpa restart
  • 創建/tftpboot目錄(在根目錄下創建),并修改權限
sudo mkdir tftpbootsudo chmod 777 tftpboot
  • 登錄本機進行測試
tftp localhost //登錄tftp > get xxx //xxx為你想要從服務器(/tftpboot目錄)下載的文件tftp > put xxx //xxx為你想要往服務器(/tftpboot目錄)發送的文件tftp > q //q表示退出

如果采用燒寫整個Linux kernel鏡像的方法,通常使用usb將主機和目標板連接,然后根據不同的芯片廠商提供的燒寫工具進行燒寫,比如高通芯片使用Qfile工具進行燒寫。
 

分享到:
標簽:開發
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定