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

迅為4418開發(fā)板-驅(qū)動(dòng)-以模塊的方式編譯內(nèi)核驅(qū)動(dòng)

發(fā)布時(shí)間:2020-11-19 10:36    發(fā)布者:就是塔塔
關(guān)鍵詞: 迅為 , 4418
內(nèi)核驅(qū)動(dòng)不僅可以將驅(qū)動(dòng)編譯到內(nèi)核中,還可以動(dòng)態(tài)的編譯內(nèi)核驅(qū)動(dòng)。本文檔介紹如何以模塊的方式編譯內(nèi)核驅(qū)動(dòng)。
要?jiǎng)討B(tài)的編譯內(nèi)核,首先需要將內(nèi)核源碼編譯通過(guò),內(nèi)核的編譯請(qǐng)參考使用手冊(cè)第五章。
1.4418 內(nèi)核編譯器的查詢和環(huán)境變量設(shè)置
在開發(fā)中,大家會(huì)遇到源碼和編譯器集成到一起的情況。迅為的 4418 源碼和 arm 編譯器就是集成到一起的,本節(jié)主要介紹如何找到編譯器路徑和配置環(huán)境變量。
進(jìn)入 android 源碼目錄(這個(gè)目錄是作者的,用戶如果解壓目錄不一樣,請(qǐng)注意后面的Makefile 文件以及環(huán)境變量參數(shù)也要修改)。

如下圖所示,使用命令“cd kernel”。

使用命令“cp -r config_for_iTOP4418_android_RTL8211 .config”配置內(nèi)核缺省文件,然后使用命令“export ARCH=arm”將平臺(tái)設(shè)置為 ARM。
最后使用命令“make menuconfig”。

如下圖所示,內(nèi)核配置界面。
進(jìn)入“ General setup ---> ”,如下圖所示。下圖紅色方框中的“arm-eabi-”就是我們需要的信息,內(nèi)核使用的編譯器是“arm-eabi-”。

退出 menuconfig 界面,使用命令“cd ../”返回到 android 目錄下,接著使用命令“find ./ -name *arm-eabi-*”查找源碼中自帶的編譯器在那個(gè)目錄下。

如上圖所示,我們找到內(nèi)核使用的編譯器在“prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin”目錄下。大家可能很奇怪,為什么 arm 編譯器要放到“prebuilts/gcc/linux-x86/”目錄下,可能是三星工作人員懶得再建文件夾了吧。另外有 4.6 和 4.7 兩個(gè)版本,我們
直接用高版本就成。
那么編譯器完整的路徑為“/home/4418/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin/”。
使用命令“cd”命令,接著使用命令“vim .bashrc”打開環(huán)境變量文件,如下圖所示。

在接著按鍵 Shift+g,進(jìn)入環(huán)境變量文本的最底行,如下圖所示。
如下所示,作者以前的編譯器使用的是 arm-2009,作者這里需要注釋掉。用戶如果前沒有設(shè)置過(guò),則這一步可以忽略。

接著添加 4418 的編譯器環(huán)境變量,export PATH=$PATH:/home/4418/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin/
如下圖所示。

保存退出,使用命令“source .bashrc”更新環(huán)境變量。控制臺(tái)輸入“arm”,然后按Tab 鍵,如下圖所示。如果不出現(xiàn)如下界面或者仍然出現(xiàn)原來(lái)的編譯器,可以關(guān)掉這個(gè)控制臺(tái),再開一下。

到這一步編譯器和環(huán)境變量就介紹完了。
2 Makefile 和測(cè)試驅(qū)動(dòng)源碼以及編譯
2.1Makefile
Makefile 腳本文件:
export ARCH=arm
obj-m += iTOP4418_driver_hello.o
KDIR := /home/4418/android/kernel
PWD = $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -rf *.o
腳本中,export ARCH=arm 表示設(shè)置目標(biāo) CPU 類別為 arm,也就是編譯的依賴內(nèi)核和驅(qū)動(dòng)模塊目標(biāo) CPU 為 ARM。
obj-m += iTOP4418_driver_hello.o 表示編譯的源文件為 iTOP4418_driver_hello.c,
如果源文件名有變化,則需要修改成對(duì)應(yīng)的。
KDIR 參數(shù)指向?qū)?yīng)的內(nèi)核源碼目錄。作者的內(nèi)核源碼是在
/home/4418/android/kernel 目錄下,用戶要根據(jù)自己的具體情況來(lái)修改。
2.2 簡(jiǎn)單驅(qū)動(dòng)源碼
驅(qū)動(dòng)文件名稱為:iTOP4418_driver_hello.c,源碼如下:
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("iTOPEET_dz");
static int hello_init(void)
{
printk(KERN_EMERG "Hello World enter!\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_EMERG "Hello world exit!\n");
}
module_init(hello_init);
module_exit(hello_exit);
驅(qū)動(dòng)源碼只有基本的入口和出口函數(shù)。加載和卸載的時(shí)候分別打印“Hello Worldenter!”和“Hello world exit!”。
2.3 編譯
如下圖所示,將源碼拷貝到 Ubuntu 系統(tǒng)下。

使用命令“make”,如下圖所示,可以看到有“iTOP4418_driver_hello.ko”文件生成。

3 常見問(wèn)題
在以模塊的方式編譯驅(qū)動(dòng)的過(guò)程中,新手可能會(huì)以下問(wèn)題。
1.內(nèi)核源碼沒有編譯或者內(nèi)核源碼路徑設(shè)置不正確。
如果內(nèi)核源碼沒有編譯,那么模塊將會(huì)提示缺少庫(kù)之類的錯(cuò)誤;如果路徑設(shè)置不正確,會(huì)提示找不到內(nèi)核。
2.編譯器未設(shè)置正確。
會(huì)提示找不到 arm-gcc 庫(kù)之類的錯(cuò)誤,請(qǐng)仔細(xì)檢查編譯器路徑,確定在控制臺(tái)輸入arm+Tab 之后可以出現(xiàn) arm-eabi 編譯器。
另外部分用戶可能嘗試使用其它的編譯器,例如 arm-2009q3,之類的,理論上很多編譯器也是可以編譯通過(guò),但是不建議這么做,驅(qū)動(dòng)最好和內(nèi)核使用同一個(gè)編譯器。
3.源碼和 Makefile 文件在 Windows 下編寫,然后拷貝到 Ubuntu 上,由于編輯器不同導(dǎo)致轉(zhuǎn)碼錯(cuò)誤。
這種錯(cuò)誤比較容易解決,Make 編譯之后,系統(tǒng)會(huì)提示 Makefile 或者驅(qū)動(dòng)文件具體某一行出現(xiàn)問(wèn)題。使用 vim 編輯器打開查看一下,就能找出一些亂碼,使用 vim 編輯器修正一下再編譯即可。


本文地址:http://m.qingdxww.cn/thread-748027-1-1.html     【打印本頁(yè)】

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

廠商推薦

  • Microchip視頻專區(qū)
  • 利用SAM E54 Xplained Pro評(píng)估工具包演示CAN轉(zhuǎn)USB橋接器以及基于CAN的主機(jī)和自舉程序應(yīng)用程序
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 高清视频 一区二区三区四区 | 日本欧美成人 | 性五月天| 极品美女高清视频在线观看 | 日本成人免费在线 | 日本黄色免费在线视频 | 亚洲免费视频一区 | 国产91极品福利手机观看 | 国内精品久久久久久久999下 | 久久婷婷大香萑太香蕉a | 国产成人精品免费青青草原app | 一区二区三区精品国产欧美 | 久久成人精品视频 | 国产精品极品美女自在线观看免费 | 四虎永久免费地址ww 41.6 | 国产成人系列 | 色播亚洲视频在线观看 | 国产性大片黄在线观看在线放 | 四虎在线免费视频 | 国产二级片 | 五月婷婷综合在线 | 青青青国产免费全部免费观看 | 激情六月婷婷 | 日本一区二区三区免费看 | 在线观看国产情趣免费视频 | 国产欧美成人一区二区三区 | 91av成人| 欧美香蕉网| 成年美女黄网站色大片免费看 | 亚州综合 | 午夜欧美成人香蕉剧场 | 国产精品久久久亚洲第一牛牛 | 国产卡一卡二卡3卡4卡无卡视频 | 失乐园日本| 国产在线更新 | 国产黄在线免费观看 | 亚洲国产天堂久久综合图区 | 香蕉精品高清在线观看视频 | 亚欧乱亚欧乱色视频免费 | 国产精品久久一区一区 | 国产又粗又爽又大又长免费视 |