国产毛片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 系統下解壓生成的 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 命令之后,系統能夠找到這個編譯器。
在編譯命令執(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-”如下圖所示。

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

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

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

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

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

現在系統找到這個宏定義“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
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲另类欧美日韩 | 天堂在线网站 | 国产欧美一区二区精品性色tv | h里番在线| 狠狠色婷婷丁香综合久久韩国 | 91麻豆视频网站 | 99热精品国产麻豆 | 亚洲图片在线 | 久久综合九色综合欧洲 | 91视频精品 | 欧美亚洲国产一区二区三区 | 亚洲一在线 | 另类专区另类专区亚洲 | 欧美日韩在线永久免费播放 | 日日夜夜网 | 日韩免费高清视频网站 | 国产精品国内免费一区二区三区 | 91久久亚洲国产成人精品性色 | 男女福利 | 亚洲天堂久久 | 午夜影院污 | 六月婷婷综合 | 黄h视频在线观看视频 | 四虎影院一区二区 | 国产伦精品一区二区三区免费 | 啦啦啦在线观看视频免费观看4 | 国产在线观看色 | 家庭教师免费观看 | 中文字幕午夜乱理片 | 色丁香婷婷 | 欧美婷婷| 1卡2卡三卡4卡免费视频 | 最终痴汉电车在线观看 | 最新国产精品视频 | xxxx日本在线播放免费不卡 | 男人天堂亚洲天堂 | 男人的天堂网在线 | 国产一级做a爰片在线 | 夜里适合男生用的app | 美女又爽又黄视频 | 黄色小视频在线免费看 |