色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

飛凌嵌入式i.MX8MP開發板移植驅動,其實可以很簡單

飛凌嵌入式 ? 2022-11-15 14:06 ? 次閱讀

各位工程師用戶在對飛凌嵌入式OKMX8MP-C開發板進行開發的過程中,可能會遇到需要移植驅動的情況。為避免用戶因不了解移植驅動的過程而影響開發進度,今天小編會以寫一個hello驅動為例,演示移植驅動的過程,有需求的小伙伴可參考此方法自行操作。

3f150496-5ec3-11ed-b116-dac502259ad0.png

01

進入源碼的drivers目錄下,并創建一個名為hello的目錄:


forlinx@ubuntu:~$  cd  /home/forlinx/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers
forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers$mkdir  hello

02

進入hello目錄,創建hello.c:


forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers$  cd hello
forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers/hello$  vi hello.c

在hello.c中寫入如下內容:


#include  
#include  
static  int hello_init(void)
{
printk(KERN_ALERT  "Hello world\n");
return  0;
}
static  void hello_exit(void)
{
printk(KERN_ALERT  "Goodbye world\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("Dual  BSD/GPL");


程序含義:insmod驅動掛載時打印Hello world,rmmod驅動卸載時打印Goodbye world

03

在該文件夾下創建Kconfig,Makefile兩個文件。


forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers/hello$  vi  Kconfig

在Kconfig文件中寫入如下內容:


config  HAVE_HELLO
tristate       "hello driver"
help
This  hello  driver  is  just  to  show  how  to  develop  driver  process.


This  driver  can  also  be  built  as  a  module.  If  so,  the  module will  be  called  .
default  y
#endmenu

表示如果使能了CONFIG_HAVE_HELLO,在內核裁剪配置文件中,將顯示hellodrivers菜單,默認編譯進內核:

y:編譯進內核

m:編譯為模塊.ko文件

n:表示不編譯,未使能。


forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers/hello$  vi  Kconfig

在Makefile文件中寫入如下內容:

obj-$(CONFIG_HAVE_HELLO)        +=      hello.o

注意:

宏定義的名字要和Kconfig中的一樣。后面添加需要編譯的文件名,因為內核會自動添加前綴CONFIG,所以我們這里也要在名字前面添加CONFIG_,表示CONFIG_HAVE_HELLO使能時,編譯規則指定的文件為hello.c。

給添加的這三個文件權限:


forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers/hello$  chmod  777 hello.c
forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers/hello$  chmod  777 Kconfig
forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers/hello$  chmod  777 Makefile

04

編輯drivers頂層的Kconfig,Makefile文件。


forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers/hello$  cd  ..
forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers$  vi Kconfig

在Kconfig文件中寫入如下內容:


source  "drivers/counter/Kconfig"
source  "drivers/mxc/Kconfig"
source  "drivers/hello/Kconfig"    //在endmenu前添加hello文件夾的配置文件解析
endmenu

如此一來,配置系統就會按照這個配置去解析hello文件夾下的Kconfig。

編輯Makefile:


forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers$  vi Makefile

在Makefile文件中寫入如下內容:


obj-$(CONFIG_COUNTER)           += counter/
obj-y                           += mxc/
obj-$(CONFIG_HAVE_HELLO)        +=      hello/     //在Makefile最后加入這一句

這句話的作用是當CONFIG_HAVE_HELLO使能后,在哪里去找源文件。再結合hello文件下模塊Makefile就形成了層次式Makefile。注意不要少了/,這里添加自定義文件夾的名字,表示把這個文件夾編譯進內核。

05

開始編譯:


forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers$  cd ../..
forlinx@ubuntu:~/work/OK8MP-linux-sdk$  .  /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux
forlinx@ubuntu:~/work/OK8MP-linux-sdk$  .  environment-setup-aarch64-poky-linux
forlinx@ubuntu:~/work/OK8MP-linux-sdk$  cd  OK8MP-linux-kernel
forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel$  make modules
scripts/kconfig/conf --syncconfig Kconfig
drivers/hello/Kconfig:7:warning:  ignoring unsupported character '?'
drivers/hello/Kconfig:7:warning:  ignoring unsupported character '?'
drivers/hello/Kconfig:7:warning:  ignoring unsupported character '?'
drivers/hello/Kconfig:7:warning:  ignoring unsupported character '?'
*
* Restart config...
*
*
* Device Drivers
*
Trust the bootloader  to initialize Linux's CRNG (RANDOM_TRUST_BOOTLOADER) [N/y/?] n
Platform support for  Chrome hardware (transitional) (MFD_CROS_EC) [Y/n/m/?] y
Trusted Execution  Environment support (TEE) [Y/n/m/?] y
hello driver  (HAVE_HELLO) [Y/n/m/?] (NEW) m    //將hello驅動編譯進內核就配置為m
CALL   scripts/checksyscalls.sh
CALL   scripts/atomic/check-atomics.sh
CHK      include/generated/compile.h
GZIP   kernel/config_data.gz
CC     kernel/configs.o
[…]
LD      vmlinux
SORTEX  vmlinux
SYSMAP  System.map
Building modules,  stage 2.
MODPOST 536 modules
CC [M] drivers/hello/hello.mod.o
LD [M] drivers/hello/hello.ko

編譯完成后,即可在OK8MP-linux-kernel/drivers/hello目錄下看到編譯生成的驅動了:


forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/$  ls drivers/hello
hello.c  hello.ko  hello.mod  hello.mod.c  hello.mod.o  hello.o  Kconfig  Makefile modules.order

06

將hello.ko使用U盤或TF卡拷貝到開發板里進行驗證:

root@OK8MP:~# cd  /run/media/sda1/              //進入U盤的路徑下
root@OK8MP:/run/media/sda1#  insmod  hello.ko   //掛載hello.ko
[  138.679964] Hello  world                     //掛載驅動打印信息
root@OK8MP:/run/media/sda1#  rmmod  hello.ko    //卸載hello.ko
[  142.022115]  Goodbye  world                  //卸載驅動打印信息
root@OK8MP:/run/media/sda1#

由上述測試可看,hello.ko驅動可正常運行。

以上就是小編為大家演示的自行書寫并添加一個驅動的過程,若您想要移植某一個模塊,可向模塊廠家索要現成的驅動.c文件,之后再按照上述步驟配置Makefile和Kconfig即可。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9104

    瀏覽量

    367876
  • 嵌入式
    +關注

    關注

    5086

    文章

    19140

    瀏覽量

    305875
  • NXP
    NXP
    +關注

    關注

    60

    文章

    1281

    瀏覽量

    184451
收藏 人收藏

    評論

    相關推薦

    嵌入式OK3588J-C開發板體驗】OK3588J-C開發板開箱評測

    很高興收到嵌入式提供的OK3588J-C開發板,這是瑞芯微最新的8K旗艦8核SOC,非常適合
    發表于 12-04 15:23

    嵌入式受邀亮相OpenHarmony人才生態大會

    出席,并展示了其在OpenHarmony 4.1系統適配方面的最新成果。 在大會的靜態展示區域,嵌入式攜兩款明星產品OK3568-C開發板和OK527N-C
    的頭像 發表于 11-29 16:47 ?173次閱讀
    <b class='flag-5'>飛</b><b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b>受邀亮相OpenHarmony人才生態大會

    基于AR1335和i.MX8MP的視覺方案

    在現代科技的推動下,視覺技術在各個領域的應用越來越廣泛。你是否曾想過,如何在低光環境下依然能捕捉到清晰、細膩的圖像?本文將為你揭示基于AR1335和i.MX8MP的視覺方案,如何在無人機、智能家居等
    的頭像 發表于 11-13 01:01 ?245次閱讀
    基于AR1335和<b class='flag-5'>i.MX8MP</b>的視覺方案

    強大視覺方案:i.MX8MP與AR0144的完美結合

    大聯大友尚集團推出基于NXPi.MX8MP處理器和onsemiAR0144圖像傳感器的全新視覺方案。該方案不僅具備強大的圖像處理能力,還能廣泛應用于監控、智能零售、機器人視覺等領域。一、應用場景描述及市場優勢該方案采用NXP的i.MX8MP作為主控平臺,搭配onsemi的
    的頭像 發表于 10-29 08:04 ?235次閱讀
    強大視覺方案:<b class='flag-5'>i.MX8MP</b>與AR0144的完美結合

    【北京迅為】i.mx8mm嵌入式linux開發指南第四篇 嵌入式Linux系統移植篇第六十九章uboot移植

    【北京迅為】i.mx8mm嵌入式linux開發指南第四篇 嵌入式Linux系統移植篇第六十九章uboot
    的頭像 發表于 10-22 14:46 ?653次閱讀
    【北京迅為】<b class='flag-5'>i.mx8</b>mm<b class='flag-5'>嵌入式</b>linux<b class='flag-5'>開發</b>指南第四篇 <b class='flag-5'>嵌入式</b>Linux系統<b class='flag-5'>移植</b>篇第六十九章uboot<b class='flag-5'>移植</b>

    嵌入式作為首個嵌入式板卡合作伙伴入駐「恩智浦云實驗室」

    嵌入式作為恩智浦云實驗室的首個嵌入式板卡合作伙伴,已經攜OK-MX95xx-C和OK-MX8
    的頭像 發表于 10-15 08:01 ?442次閱讀
    <b class='flag-5'>飛</b><b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b>作為首個<b class='flag-5'>嵌入式</b>板卡合作伙伴入駐「恩智浦云實驗室」

    嵌入式OK3576-C開發板體驗】開箱報告

    簡介 很榮幸參與到本次由嵌入式和電子發燒友提供的OK3576-C開發板的試用機會。
    發表于 08-22 02:13

    嵌入式i.MX 8M Plus開發板的OTA遠程升級方案

    的方式,可升級系統內核、文件系統和應用。接下來,將以嵌入式OKMX8MP-C開發板為例,基于Linux 5.4.70版本內核,展示升級前
    的頭像 發表于 06-03 17:59 ?755次閱讀
    <b class='flag-5'>飛</b><b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b><b class='flag-5'>i.MX</b> <b class='flag-5'>8</b>M Plus<b class='flag-5'>開發板</b>的OTA遠程升級方案

    嵌入式i.MX8M Plus開發板的OTA遠程升級方案

    的方式,可升級系統內核、文件系統和應用。接下來,將以嵌入式OKMX8MP-C開發板為例,基于Linux5.4.70版本內核,展示升級前后
    的頭像 發表于 04-29 08:01 ?743次閱讀
    <b class='flag-5'>飛</b><b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b><b class='flag-5'>i.MX8</b>M Plus<b class='flag-5'>開發板</b>的OTA遠程升級方案

    如何在嵌入式T113-i開發板的Buildroot中移植MQTT協議?

    新功能。本篇文章,小編就以在Buildroot移植MQTT協議為例為大家介紹。 配置文件介紹 首先了解一下在Buildroot中移植功能時涉及到的配置文件。 查看
    發表于 02-04 11:27

    嵌入式RK3568開發板藍牙收、發文件測試

    本文由電子發燒友論壇用戶fsdzdzy提供,感謝分享。嵌入式每月定期開展新的開發板體驗活動,歡迎更多工程師朋友的關注和參與。
    的頭像 發表于 02-02 16:31 ?1897次閱讀
    <b class='flag-5'>飛</b><b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b>RK3568<b class='flag-5'>開發板</b>藍牙收、發文件測試

    嵌入式T113-i開發板的調屏方法

    對于飛嵌入式T113-i開發板的調屏問題,需要按照以下步驟進行操作
    的頭像 發表于 01-29 16:25 ?1029次閱讀

    如何在嵌入式T113-i開發板的Buildroot中移植MQTT協議?

    嵌入式OK113i-S開發板上市一段時間以來收獲了很多關注,也成為了許多客戶項目選型的優質之選。在實際的項目
    的頭像 發表于 01-26 08:02 ?540次閱讀
    如何在<b class='flag-5'>飛</b><b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b>T113-<b class='flag-5'>i</b><b class='flag-5'>開發板</b>的Buildroot中<b class='flag-5'>移植</b>MQTT協議?

    嵌入式全志T113-i開發板的休眠及喚醒操作

    嵌入式OK113i-S開發板支持兩種休眠方式:freeze和mem。這兩種方式可以通過/sy
    發表于 01-17 09:29

    嵌入式T113-i開發板的調屏方法,就是這樣簡單

    的配備為客戶提供了更加多樣的選擇。今天小編就與大家分享一下為嵌入式OK113i-S開發板適配LVDS屏幕的過程。
    的頭像 發表于 01-12 11:50 ?2259次閱讀
    <b class='flag-5'>飛</b><b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b>T113-<b class='flag-5'>i</b><b class='flag-5'>開發板</b>的調屏方法,就是這樣<b class='flag-5'>簡單</b>
    主站蜘蛛池模板: 欧美在线看费视频在线| 亚洲精品91| 99国产精品久久久久久久日本竹| 美女pk精子4| 插我一区二区在线观看| 小骚妇BBBXXX| 快播h动漫网| 美女搜查官被高难度黑人在线播放| 69精品人人人人| 少爷被多个暗卫肉高h| 九九99热久久999精品| 偷拍亚洲制服另类无码专区| yy8090韩国理伦片在线| 小护士大pp| 毛片999| 国产高清精品自在久久| 熟女久久久久久久久久久| 红桃传媒少妇人妻网站无码抽插| 2019夜夜| 美女脱精光让男生桶下面| 国产51麻豆二区精品AV视频| 亚洲无遮挡无码A片在线| 青草影院天堂男人久久| 精品视频一区二区三三区四区| 亚洲蜜桃AV色情精品成人| 妺妺窝人体色777777野大粗 | 久久re这里视频只有精品首页| hdxxxx58丝袜连裤袜| 日本高清在线一区二区三区| 国产综合在线视频| 亚洲视频国产在线精品| 漂亮美女2018完整版| 精品国产在天天线在线麻豆| 超碰免费视频部落格| 中国字字幕在线播放2019| 午夜家庭影院| 欧美重口绿帽video| 久久全国免费久久青青小草| 99久久999久久久综合精品涩| 亚洲 天堂 国产在线播放| 九九九九九热|