国产在线精品一区二区三区不卡-国产亚洲精品久久久久久久软件-亚洲人成日韩中文字幕不卡-亚洲国产成人一区二区三区-亚洲国产专区校园欧美

瑞薩
CPMG2UL 單核Cortex?-A55,1.0GHz,2路千兆,2路CAN FD
CPMG2L 雙核Cortex?-A55,1.2GHz,2路千兆,2路CAN FD
TI
M62xx 1.4GHz,3路CAN FD,2路千兆,9路串口
M6442 1.0GHz,5路TSN千兆網口,支持EtherCAT,GPMC
M65xx 1.1GHz,擴展18串口或6路千兆網口
M335x-T 800MHz,6串口,雙網口,雙CAN
A3352系列無線IoT核心板 800MHz,WiFi,藍牙,RFID
NXP
M6Y2C 800MHz,8串口,雙網口,大容量
A6G2C系列無線IoT核心板 528MHz,ZigBee,
Mifare,WiFi,藍牙
A6Y2C系列無線IoT核心板 800MHZ,8串口,WiFi,藍牙
M6G2C 528MHz,雙網口,8串口,雙CAN
M6708-T 雙核/四核,800MHz/1GHz,專注多媒體
瑞芯微
M3568 四核A55,2GHz,NPU,GPU,VPU
M3562 四核A53,1.8GHz,1.0 TOPs NPU
M1808 雙核A35,1.6GHz,AI核心板,3 TOPs NPU
M1126 四核A7,1.5GHz,2.0 TOPs NPU
先楫
MR6450/MR6750 15路串口,4路CAN FD,2路千兆
芯馳
MD9340/MD9350 真多核異構A55+R5,1.6GHz,
2路千兆,4路CAN FD
MD9360 六核 Cortex?-A55,1.6GHz,2路千兆,4路CAN FD
君正
MX2000 1.2GHz,快速啟動,實時系統
Xilinx
M7015 雙核Cortex?-A9+FPGA,766MHz

五分鐘帶你掌握Linux編譯驅動、內核及應用程序

小王是一名剛接觸Linux的新手,看了一些關于Linux驅動的書籍之后,買了一塊Cortex?-A9的Arm?開發板,準備大干一場。編寫了第一個屬于自己的驅動程序并命名為hellodrv.c,程序源碼如下所示。

這個驅動程序怎么編譯成可以在板子上跑的程序呢,小王經過一番網上查詢,原來需要交叉編譯工具鏈,小王找到了光盤資料里的交叉編譯工具并按說明正確安裝了交叉編譯工具。

編寫Makefile

小王編寫好的驅動程序為hellodrv.c,要把該驅動程序編譯為模塊,在同一目錄下新建了一個Makefile文件。編寫的Makefile如下。

驅動編譯

小王經過查詢,編譯驅動主要有兩種方式,一種是修改內核源碼頂層目錄下的Makefile文件,另外也可以在編譯命令指定架構及交叉編譯工具。

1. 修改Makefile

例如Linux內核源碼的目錄為/home/vmuser/kernel-imx,打開該目錄下的Makefile文件,找到ARCH及CROSS_COMPILE相關語句,修改為如下所示語句。

如果交叉編譯工具鏈未設置環境變量則CROSS_COMPILE設置為交叉編譯工具鏈的絕對路徑,設置如下。

ARCH ?=arm

CROSS_COMPILE ?=/opt/toolchain/bin/arm-none-linux-gnueabi-

修改完之后,直接執行make命令,生成了hellodrv.ko文件。

2. 在編譯命令指定

執行如下命令進行編譯。

$make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

這種方式也可以生成hellodrv.ko,可是驅動要依賴于內核才能跑起來,小王于是開始了Linux內核的配置及編譯。

Linux內核配置及編譯

編譯內核時指定架構和交叉編譯工具的方式同編譯模塊一樣,經過上面的操作,小王已經輕車熟路了。小王還學會了首先導環境變量然后進行編譯的方法。

$export ARCH=arm

$export CROSS_COMPILE=arm-none-linux-gnueabi-

在首次進行配置編譯之前,需要清除之前編譯生成的文件,可用如下命令進行清除。

$make distclean

接下來進行內核的配置,內核的配置可以使用如下命令中的一個。

$make config #基于文本的最為傳統的配置界面,不推薦使用

$make menuconfig #基于文本菜單的配置界面

$make xconfig #要求QT被安裝

$make gconfig #要求GTK+被安裝

這四種方式中,值得推薦的是make menuconfig,它不依賴于QT或GTK+,且非常直觀。使用make menuconfig命令后,會進入如圖1所示的界面,在該界面根據需求對需要編譯進內核的選項進行裁剪。對于bool型選項,按Y或者N決定是否選擇編譯進內核。[*]表示選中,[]表示未選中。對于tristate型選項,根據需求可以有Y、M、N三種選擇,<*>表示靜態編譯,表示編譯為模塊,<>表示不編譯進內核。表示編譯為模塊,

圖1內核配置界面

配置完成后,選擇保存,然后退出。配置后會生成.config文件,該文件保存了配置信息,供Makefile在編譯內核時使用。

在配置界面我們根據需求把需要的功能以及相應設備驅動的支持等配置好,然后進行內核及設備樹的編譯。內核及設備樹編譯用以下命令。

$make zImage /* 編譯為zImage鏡像 */

$make imx6dl-sabresd.dtb /* 單獨編譯某個設備數 */

$make dtbs /* 編譯所有的設備樹 */

為了加快編譯速度可以在編譯命令后加“-j”選項,例如PC的CPU為4核,則編譯命令如下。

$make zImage -j4

如果要把某些驅動編譯為模塊,則使用如下命令。

$make modules

針對相應的開發板,廠家一般都會有默認的配置,這些配置文件位于內核源碼arch/arm/configs目錄下。例如使用如下的默認配置。

$make imx_v7_defconfig

如果已有.config文件,可以使用如下命令載入既有的.config配置文件。

$make oldconfig

內核及設備樹編譯完成后將會生成zImage和相應的dtb文件,按照廠家提供的燒寫方式將鏡像燒寫到目標板。

應用程序編譯及文件傳輸

應用程序編譯

例如需要編譯的應用程序文件為test.c,需要把該程序編譯放到Arm?開發板上運行。編譯命令如下。

$arm-none-linux-gnueabi-gcc test.c -o test

這是一個非常簡單的程序,并且只有一個文件,所以可以采用直接輸入命令進行交叉編譯。如果工程較大,這種方式就不可取了,通常需要編寫Makefile文件,通過make程序來進行工程管理。應用程序的Makefile范例如下。

編寫完Makefile后執行make命令即可生成目標文件test。

文件傳輸

編譯生成的可執行文件可以通過TFTP,NFS等方式下載到開發板,關于TFTP,NFS服務器在PC上的搭建可參考網絡上相關文章,這里不贅述。

1.NFS文件傳輸

將目標板接入局域網或通過交叉網線與PC主機相連,設定目標板的IP,使之與主機在同一網段,然后進行遠程mount操作。將需要傳輸的文件放在PC機搭建的NFS服務器目錄下。在開發板上執行如下操作。

root@M6708-T:~#ifconfig eth0 192.168.1.136 #設定開發板IP

root@M6708-T:~#ping 192.168.1.168 #ping主機IP

root@M6708-T:~#mount -t nfs 192.168.1.168:/home/vmuser/nfs/mnt/-o nolock

在進行遠程掛載之前,最好先用ping命令檢查網絡通信是否正常,只有在能ping通的情況下,才能進行正常掛載,否則請檢查網絡。如果在已經ping通的情況下,遠程掛載出現錯誤,請檢查主機和目標機的其它設置。

2.TFTP文件傳輸

把需要傳輸的文件放在PC機的tftp服務器目錄下。TFTP下載命令格式如下。

root@M6708-T: ~#tftp -g -r server-file server-ip

例如:下載IP為192.168.1.168的tftp服務器的hellodrv.ko文件,在開發板的當前目錄下執行如下命令。

root@M6708-T: ~#tftp -g -r hellodrv.ko 192.168.1.168

通過以上任一方式將在PC機上編譯完成的驅動模塊hellodrv.ko和test應用程序拷貝到目標板上。

驅動模塊的加載及移除

執行如下命令把驅動模塊動態加載進內核。

$insmod hellodrv.ko

查看加載的模塊使用如下命令。

$lsmod #查看內核中的模塊信息

$modinfo hellodrv.ko #查看模塊的描述信息

如需要移除模塊使用如下命令。

$rmmod hellodrv

IoT9000A-LI是廣州致遠電子有限公司開發的基于M6708-T系列核心板的Arm?工控主板,核心板標配處理器為i.MX 6U,Cortex?-A9簡單雙核。板上集成了大量的外設接口,包括千兆以太網、音頻、USB、HDMI、LVDS、LCD、miniPCIE、攝像頭、CAN信號、UART信號等接口,同時整合的多功能HD視頻引擎可提供1080P 60fps視頻解碼、1080P 30fps視頻編碼,并帶有2D、3D圖形引擎,可滿足消費電子、工業和汽車車載娛樂系統等新一代應用,以及醫療應用的豐富圖形和高響應需求。

IoT9000A-LI工控主板產品如下圖所示。

主站蜘蛛池模板: 色琪琪av中文字幕一区二区 | 高潮又爽又无遮挡又免费| 国产精品无码av一区二区三区| 亚洲中文字幕无码一久久区| 国产成人精品免费视频大全| 乱码精品一区二区三区| 亚洲精品少妇高清30p| 国产 亚洲 中文在线 字幕| 午夜高清国产拍精品福利| 亚洲日韩亚洲另类| 欧美人成视频在线视频| 亚洲暴爽av天天爽日日碰| 久久国产精品二国产精品| 免费精品99久久国产综合精品| 最新精品露脸国产在线| 日韩精品无码一区二区忘忧草| 在厨房被c到高潮a毛片奶水| 欧美乱人伦视频在线观看| 亚洲欧美日韩国产手机在线| 天天噜噜揉揉狠狠夜夜| 无码国产69精品久久久久孕妇| 亲胸揉屁股膜下刺激视频免费网站| 日韩精品无码去免费专区| 野狼av午夜福利在线| 亚洲日本欧美日韩高观看| 久久偷看各类wc女厕嘘嘘偷窃| 免费精品99久久国产综合精品| 国产精品看高国产精品不卡| 久久97超碰色中文字幕总站| 久久受www免费人成| 精品少妇爆乳无码aⅴ区| 伊人久久大香线蕉avapp下载| 亚洲中文字幕乱码电影| 中文字幕精品视频在线看免费 | 免费无码无遮挡裸体视频在线观看| 午夜精品久久久内射近拍高清| 好屌草这里只有精品| 99精品全国免费观看视频| 内射无码专区久久亚洲| 三级日本高清完整版热播| 玩弄人妻少妇老师美妇厨房|