日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux的驱动开发——交叉编译器

發布時間:2024/7/19 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux的驱动开发——交叉编译器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.交叉編譯器

\qquadARM裸機、Uboot移植、linux移植這些都需要在linux系統上進行編譯,編譯就需要編譯器。在linux系統中,可以使用gcc命令對c語言程序進行編譯,但gcc編譯器是針對X86架構的,現在需要對ARM架構的代碼進行編譯。所以我們現在需要一個可以對ARM架構的代碼進行編譯的gcc編譯器,這個編譯器被稱為交叉編譯器。
\qquad交叉編譯器具有如下的特點:
\qquad(1)是一個gcc編譯器
\qquad(2)運行在X86架構上
\qquad(3)可以編譯ARM架構的代碼,也就是說編譯出來的可執行文件是在ARM芯片上運行的

2.ARM-linux交叉編譯器的下載安裝

\qquad我下載的是gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz,下載地址:arm-linux交叉編譯器4.9.4
\qquad下載完成后,在/usr/local目錄下,創建一個arm目錄,然后再把gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz拷貝到/usr/loacl/arm目錄下,再解壓。

sudo mkdir arm #創建arm目錄 sudo cp /home/xiaoming/downloads/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm #復制 sudo tar xvf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

\qquad解壓完成之后,還需要把/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin的路徑添加到/etc/profile

sudo vim /etc/profile #打開profile

\qquad在文件最后,添加export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
\qquad查看是否安裝成功,若安裝成功會顯示版本號gcc version 4.9.4 (Linaro GCC 4.9-2017.01)

arm-linux-gnueabihf-gcc -v

3.交叉編譯器的編譯過程

\qquad首先使用arm-linux-gnueabihf-gcc,將.c .s文件編譯為.o文件,.s文件是匯編文件,.c文件是c語言文件。
\qquad-g:產生調試信息;-c:編譯源文件,但是不鏈接;-o:制定編譯產生的.o文件的名字。

arm-linux-gnueabihf-gcc -g -c .c文件(或者.o文件) -o .o文件

\qquad然后把上一步的所有的.o文件鏈接到一起,并要指定一個鏈接起始地址,也就是代碼運行的起始地址。鏈接起始地址一般指向RAM地址,RAM 分為內部RAM和外部RAM,外部RAM即DDR。比如:

arm-linux-gnueabihf-ld -Ttext 0X87800000 xxx.o -o xxx.elf

\qquad最后xxx.elf不是最終燒寫到單片機sd卡上的可執行文件,我們要燒寫的文件是.bin文件,這需要使用arm-linux-gnueabihf-objcopy -O binary -S -g xxx.elf xxx.bin
\qquad其中-O:選擇以什么格式輸出;binary:以二進制輸出;-S:不要復制源文件中的重定位和符號信息;-g:不要復制源文件中的調試信息;

arm-linux-gnueabihf-objcopy -O binary -S -g xxx.elf xxx.bin 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的linux的驱动开发——交叉编译器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。