国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

迅為4412開發(fā)板實驗_Makefile編譯(上)

發(fā)布時間:2020-12-10 11:20    發(fā)布者:就是塔塔
本章導讀
在前面入門視頻第十期“搭建編譯環(huán)境 uboot_linux_Android”中,只介紹了輸入 Make命令就可以編譯出內核,并沒有介紹它是如何運行的。
在向內核中添加驅動的時候要完成 3 項工作,包括:
1)在 Kconfig 中添加新代碼對應項目的編譯條件,這一部分在實驗 3 已經介紹過;
2)將驅動源碼添加到對應的目錄中,這一步比較好理解,在本章實驗中將給大家演示一下;
3)在目錄 Makefile 中文件中增加針對新代碼的編譯條目,這一部分將在本章節(jié)介紹到。
4.1.1 工具
4.1.1.1 硬件工具
1)PC 機
4.1.1.2 軟件工具
1)虛擬機 Vmware
2)Ubuntu12.04.2
3)Ubuntu 系統(tǒng)下解壓生成的 Linux 源碼
4.1.2 預備課程
入門視頻“01-燒寫、編譯以及基礎知識視頻”
→“實驗 10-搭建編譯環(huán)境 uboot_linux_Android”或者使用手冊“五 Android 開
發(fā)環(huán)境搭建以及編譯”;
實驗三 Menuconfig_Kconfig
4.1.3 視頻資源
本節(jié)配套視頻為“視頻 04_Makefile 編譯”
4.2 學習目標
本章需要學習以下內容:
掌握 Linux 內核編譯命令
掌握編譯器路徑設置的方法
理解環(huán)境變量路徑、編譯器、源碼 Makefile 文件中編譯器路徑三者之間的關系
理解 Makefile 文件結構
掌握向 Makefile 文件中添加腳本命令的方法,能夠看懂 Makefile 腳本
4.3 編譯器路徑的設置
在前面入門知識中,只介紹了在什么目錄解壓編譯器,在環(huán)境變量文件中添加路徑,就可以編譯出內核,并沒有介紹他們之間是如何對應的。
如下圖所示,按照前面提供的基礎教程,配置好 Ubuntu 中的編譯器和庫文件,輸入命令“#make”,就可以編譯生成內核的二進制鏡像。

如下圖所示,使用命令“#cd”,使用命令“#vim .bashrc”打開環(huán)境變量文件“.bashrc”。

如下圖所示,進入最底行,可以看到,在環(huán)境變量文件中編譯器路徑設置為“exportPATH=$PATH:/usr/local/arm/arm-2009q3/bin”。

然后使用命令“#cd /usr/local/arm/”,進入解壓編譯器“arm-2009q3.tar.bz2”的文件目錄。

可以明顯的看到,環(huán)境變量中設置的路徑和解壓的路徑是對應的。
這里回到內核源碼的目錄,如下圖所示。

如下圖所示,使用命令“#vim Makefile”打開內核目錄下的 Makefile 文件。

這里通過 vim 編輯器查找參數“CROSS_COMPILE”,如下圖所示。

可以查到參數“CROSS_COMPILE”,如下圖所示。

如上圖所示,可以看到這個參數是“/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-”。
再看一下參數“CROSS_COMPILE”的下一行,可以看出這里有修改過的痕跡。很容易推斷出,原來三星是用的“4.5.1”版本的編譯器,不過這個沒關系,只要能編譯通過就可以了。
一般說來,拿到源碼之后的第一步,是要先要先將源碼編譯通過。
設置上圖中的變量“CROSS_COMPILE”以及環(huán)境變量還有編譯器實際解壓路徑三者對應。這三者對應之后,就能確保執(zhí)行 Make 命令之后,系統(tǒng)能夠找到這個編譯器。
在編譯命令執(zhí)行的過程中,會提示一些錯誤,然后根據提示的錯誤,挨個去排查修改,去添加庫文件或者修改庫文件。這個過程有長有短,考驗的只是耐心,并沒有太多技巧。由于已經將缺少的庫文件寫成腳本,這樣大家在編譯器執(zhí)行以下腳本就能夠編譯通過。
針對內核目錄下的 Makefile 文件,提醒大家一下,這個文件中內容很多,除了上面編譯器路徑變量以外的其它部分幾乎不用關注。
另外還有一個地方需要了解一下,如下圖所示,在該文件的第一行,可以看到內核的版本。

4.4 Make 內核編譯命令執(zhí)行過程簡介
如下圖所示,編譯內核需要執(zhí)行 make 命令,在執(zhí)行 make 命令之后,并沒有介紹它是如何執(zhí)行的。

在 make 命令執(zhí)行之后,它會首先找到當前目錄下的“Makefile”文件,如下圖所示。

運行 Makefile 文件之后,它會在 Makefile 文件中找到編譯器的路徑“/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-”如下圖所示。

然后系統(tǒng)根據環(huán)境變量找到“export PATH=$PATH:/usr/local/arm/arm-2009q3/bin”編譯器的路徑,如下圖所示。

如下圖所示,使用命令“l(fā)s /usr/local/arm/arm-2009q3/bin/”可以查看到 arm2009q3解壓之后有哪些具體編譯器。

如上圖,系統(tǒng)找到編譯器之后,同時基礎的庫文件也是和編譯器在一起的,有時候編譯一個新的內核,還有可能需要修改庫文件。
編譯執(zhí)行前還需要找到“.config”文件,默認是放在源碼目錄下的。使用命令“l(fā)s -a”就可以看到,如下圖所示。

從本章‘實驗 03’的 3.5 小節(jié),學習到這個“.config”是通過 menuconfig 工具生成的,里面只是一些宏定義,如下圖所示,打開這個文件。

查找宏定義”LEDS,”是編譯 led 驅動的宏定義“LEDS_CTL”,如下圖所示。

現在系統(tǒng)找到這個宏定義“LEDS_CTL”,在編譯具體中間文件的時候會用到。
具體是怎么實現的,繼續(xù)看下一小節(jié)的內容就可以搞清楚這個宏定義有什么用處。


本文地址:http://m.qingdxww.cn/thread-750441-1-1.html     【打印本頁】

本站部分文章為轉載或網友發(fā)布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發(fā)培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區(qū)
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 热久久99精品这里有精品 | 不卡免费在线视频 | 女老师韩剧 | 亚洲视频免费在线播放 | 亚洲欧美在线视频免费 | 欧美一区二区手机在线观看视频 | 日日爱网 | 亚洲欧美另类国产 | 国产日| 日日日夜夜夜夜 | 欧美国产亚洲精品高清不卡 | 免费日韩在线 | 国产内地激情精品毛片在线一 | 久久综合第一页 | 久久这里是精品 | 久久亚洲国产成人影院 | 国产精品免费精品自在线观看 | 黄色亚洲视频 | 久久免费动漫品精老司机 | 在线观看黄页 | 免费大片国产在线观看下载 | 成人午夜国产福到在线 | 日本国产一区 | 免费 高清 日本1在线观看 | 国产一级a毛片高清 | 一级毛片aaa片免费观看 | 久久免费视频99 | 国产精品1024永久免费视频 | 中文字幕日本在线视频二区 | 久久夜色精品国产噜噜小说 | 色中色综合| 国产香蕉在线精彩视频 | 四虎精品成人a在线观看 | 全部免费的毛片在线看美国 | 成人精品一区二区不卡视频 | 国产高清久久99 | 爱视频福利 | 国产观看精品一区二区三区 | 91精品国产肉丝高跟在线 | 国产精品18久久久久久久久久 | 亚洲成人第一 |