日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kdir测试软件,[OK210开发板体验]入门篇(4)编程入门(NFS登录、驱动入门)

發布時間:2025/4/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kdir测试软件,[OK210开发板体验]入门篇(4)编程入门(NFS登录、驱动入门) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面分別介紹了

【OK210開發板體驗】的第一篇:開箱驗板

【OK210開發板驗】的第二篇:板載資源

【OK210開發板體驗】的第三篇:開發環境(軟件安裝,開發環境,燒寫系統)

今天是【OK210開發板體驗】的第四篇:編程入門的介紹,主要包括以下內容:

一 NFS環境配置及登錄

二 驅動環境搭建三 下階段安排一 NFS環境配置及登錄

還記得在第三篇中介紹NFS的搭建嗎?NFS主要用來通過網線來實現代碼的上傳,無需通過手動的方式將程序燒寫到SD卡中,方便程序的開發及調試,這節簡單回顧一下NFS的搭建過程,然后通過實際操作來演示NFS的登錄。

(一)NFS搭建:

1 在Ubuntu下的設置

1)NFS服務安裝

Ubuntu上默認是沒有安裝NFS服務器的,首先要安裝NFS服務程序,執行如下命令:

sudo apt-get install nfs-kernel-server

ps: (安裝nfs-kernel-server時,apt會自動安裝nfs-common和portmap)

2)NFS服務配置

在終端執行如下命令,打開配置文件

sudo vim /etc/exports

在文件的最下面輸入如下

/home/ok210/nfs *(rw,sync,no_root_squash)

然后保存退出。

ps:

/home/ok210/nfs表示共享目錄,即我們在上節創建的nfs目錄,用來存放調試的程序代碼

*:表示主機(NFS客戶端)的ip地址(本機終端ifconfig命令就可以獲得本機的ip地址),在此表示任意的IP的地址

rw:讀/寫權限,只讀權限的參數為ro;

sync:數據同步寫入內存和硬盤,也可以使用async,此時數據會先暫存于內存中,而不立即寫入硬盤。

no_root_squash:NFS 服務器共享目錄用戶的屬性,如果用戶是 root,那么對于這個共享目錄來說就具有root的權限。3)重新編譯內核

ok210默認的Linux內核是不支持NFS服務器的,所以需要重新編譯內核,選擇其支持NFS服務,具體見上節的內核燒寫部分。

2 在OK210下的設置

1)設置IP地址

使用NFS服務器,首先是使Ubuntu和OK210內核支持NFS服務;其次是使兩設備相互可以ping通。默認一般兩設備的IP是ping不通的。現假設Ubuntu的IP(使用ifconfig查看)地址為192.168.1.102,那么需要將OK210的IP地址設置為同一網段,即可設置為192.168.1.x(x表示除102,1以外的其他數值,但要小于255)。

打開串口終端,輸入如下命令進行設置ifconfig down

ifconfig eth0 192.168.1.113 netmask 255.255.0.0

route add default gw 192.168.1.1

ifconfig upps:也可將上述代碼寫到板子/etc/init.d/rcS文件的最下面,這樣就不用每次掛載時執行上述代碼,而是OK210在啟動時,自動掛載。

2)掛載NFS

首先使用網線連接OK210和電腦,使Ubuntu和OK210能夠實現網絡互聯,首先檢查是否可以ping通,比如出現如下信息,說明可以ping通.

接著執行命令:

mount -n -o nolock 192.168.1.102:/home/ok210/nfs /mnt

3)NFS測試

在串口終端進入/mnt目錄,即可以看到在Ubuntu的/home/ok210/nfs下的文件,如下所示,即表示NFS服務成功設置.

驅動環境搭建

驅動的編寫,大致分為兩個過程,第一個過程為測試階段,即為某一具體的設備,添加必要的驅動模塊,為了節省編譯時間,需要將代碼單獨放在一處,在編譯時,只需要要調用內核的頭文件即可;第二個過程為布置階段,即為某一具體設備,添加完整、可靠的驅動模塊,即該過程將驅動模塊編譯到內核鏡像文件中,它需要將驅動模塊的代碼,添加到內核源碼樹中,下面將逐一介紹。

(一)階段一

1

新建一目錄,并編寫測試代碼

1.cd /home/ok210/nfs/drivers/demo

2.sudo vim demo.c

復制代碼

1.// /home/ok210/nfs/drivers/demo/demo.c

2.#include "linux/init.h"

3.#include "linux/module.h"

4.

5.static int hello_init(void)

6.{

7.printk(KERN_ALERT"Hello World linux-driver-module\n");//注意,必須是KERN_ALEAT及以上級別,不然不會打印

8.return 0;

9.}

10.

11.static int hello_exit(void)

12.{

13.printk(KERN_ALERT"Goodbye linux-driver-module\n");

14.return 0;

15.}

16.

17.module_init(hello_init);

18.module_exit(hello_init);

19.

20.MODULE_LICENSE("GPL");

21.MODULE_AUTHOR("gjianw217@163.com");

復制代碼

ps:

(1)mkdir的-p選項允許你一次性創建多層次的目錄,而不是一次只創建單獨的目錄。

(2)init.h定義了驅動的初始化和退出相關的函數,幾乎每個linux驅動都有個module_init(與module_exit的定義在Init.h (\include\linux) 中)。

(3)module.h定義了內核模塊相關的函數、變量及宏。如上面的MODULE_LICENSE("GPL")和 MODULE_AUTHOR("gjianw217@163.com")。其MODULE_LICENSE指定許可,必須指定;MODULE_AUTHOR,聲明作者;還有MODULE_DESCRIPTION,對這個模塊作一個簡單的描述,這個描述是"human-readable"的;MODULE_VERSION,模塊的版本;MODULE_ALIAS,模塊的別名;MODULE_DEVICE_TABLE,告訴用戶空間這個模塊支持什么樣的設備等。2

添加編譯文件

Makefile

sudo??vim Makefile

1.#demo Makefile

2.ARCH=arm

3.CROSS_COMPILE=/home/ok210/arm-2009q3/bin/arm-none-linux-gnueabi-

4.APP_COMPILE=/home/ok210/arm-2009q3/bin/arm-none-linux-gnueabi-

5.#obj-m := app-drv.o

6.obj-m := demo.o

7.#KDIR := /path/to/kernel/linux/

8.KDIR := /home/ok210/android-kernel-samsung-dev/

9.PWD := $(shell pwd)

10.default:

11.make -C $(KDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules

12.app:app.c

13.$(APP_COMPILE)gcc -o app app.c

14.clean:

15.$(MAKE) -C $(KDIR) M=$(PWD) clean

復制代碼

ps:

(1)這個Makefile算是一個通用的模板,其中CROSS_COMPILE和APP_COMPILE=arm-linux-指定交叉編譯器的位置,obj-m指定驅動模塊的目標文件(如將驅動模塊命令為app-drv.c,則此處應該為app-drv.o);KDIR指定內核的位置。

(2)當執行make時,進行內核模塊的編譯;當執行make app時,進行應用測試程序的編譯;當執行make clean時,刪除編譯的過程文件。

3

編譯并加載到板上

sudo make

4

驅動模塊的測試

以上

3

步都是在

下執行的,接下來在

OK210

完成

。打開串口終端

SecureCRT

,進入

NFS

掛載目錄,執行如下程序,

1.cd /mnt/drivers/demo/

2.insmod demo.ko

3.lsmod? ?demo.ko

4.rmmod demo.ko

復制代碼

最后的結果如下所示,表明成功。三

下階段安排

這樣驅動模塊的基本環境及驅動開發的基本流程介紹完畢,階段二的介紹,參考附錄部分。自此【OK210試用體驗】入門篇的4篇博文已完成:

OK210

試用體驗入門篇(

1

):開箱驗板【

OK210

試用體驗入門篇(

2

):板載資源

OK210

試用體驗入門篇(

3

):開發環境(軟件安裝,開發環境,燒寫系統)

【OK210

試用體驗】入門篇(

4

):編程入門(

NFS接下來進行第二階段的檢驗,即【

OK210

試用體驗】功能篇,功能篇現打算從驅動入手,應用提現的原則進行。結合項目要求,主要從以下幾個方面進行介紹:

(

1

)

LED

顯示

(

2

)

Key

響應

(

3

)

ADC

采集

(

4

)

DS18B20

溫度檢測

(

5

)

IRAD

紅外探測

(

6

)

PWM

驅動

(

7

)串口

通信

附錄:

1將驅動代碼按類型放到內核源碼樹相應目錄下(drivers/demo/demo.c)

1.//driver/demo/demo.c

2.#include "linux/init.h"

3.#include "linux/module.h"

4.

5.static int hello_init(void)

6.{

7.printk(KERN_ALERT"Hello World linux-driver-module\n");

8.return 0;

9.}

10.

11.static int hello_exit(void)

12.{

13.printk(KERN_ALERT"Goodbye linux-driver-module\n");

14.return 0;

15.}

16.

17.module_init(hello_init);

18.module_exit(hello_init);

19.

20.MODULE_LICENSE("GPL");

21.MODULE_AUTHOR("lpj");

復制代碼

2在當前目錄下,分別添加編譯文件在

driver/demo/Makefile

文件里,

1.#driver module demo

2.obj-$(CONFIG_HELLODRV) += hello.o

復制代碼

在driver/demo/Kconfig文件里

1.menu USER_DEVICE_DRIVERS//4中可以看到它

2.config HELLODRV

3.tristate "Hello"

4.help

5.This is a demo driver programming.

6.endmenu

復制代碼

3修改上層目錄文件,將其添加到內核中在driver/Makefile文件里obj-$(CONFIG_HELLODRV)+=demo在文件里driver/Kconfig 里source drivers/demo/Kconfig在arch/arm/Kconfig文件里source "drivers/demo/Kconfig"4進行系統配置并編譯make menuconfigmake5加載內核鏡像文件到板上,使用命令檢查lsmod dmesg

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的kdir测试软件,[OK210开发板体验]入门篇(4)编程入门(NFS登录、驱动入门)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 视频在线91 | 精品成人一区二区三区 | 中文字幕无码精品亚洲35 | 日本一区免费电影 | 日韩黄色影视 | 国产乱人伦app精品久久 | 成人一级黄色片 | 开心激情久久 | 91午夜剧场| 亚洲中文字幕无码不卡电影 | 韩国三级做爰视频 | 国产精品免费一区二区三区四区 | 伊人视频| 国产精品久久久久久亚洲 | 一级肉体全黄裸片中国 | 日韩欧美在线免费 | 成人av专区 | 成人免费视频国产 | 欧美大片大全 | www超碰| 三点尽露的大尺度国产 | 男女激情啪啪 | 初高中福利视频网站 | 三级性生活视频 | 亚洲熟妇av一区二区三区漫画 | www.呦呦| 超碰免费91 | 日本色呦呦| 九九资源网 | 亚洲欧美自拍视频 | 欧美一级视频免费观看 | 日韩精品一区二区三区不卡 | 午夜国产一区二区三区 | 波多野久久 | 少妇不卡视频 | 精品国产免费观看 | 在线观看av片 | 亚洲国产欧美日韩 | 成人免费视频观看 | 无码久久精品国产亚洲av影片 | 色中色在线视频 | 国产l精品国产亚洲区久久 午夜青青草 | 中日韩精品视频在线观看 | 亚洲高清天堂 | 精品丰满少妇一区二区三区 | 日本午夜影视 | 制服丝袜天堂网 | 91成人精品国产刺激国语对白 | 91爱啪 | 久久免费一区 | 香港三级日本三级 | 91精品国产麻豆国产自产在线 | 中文字幕不卡一区 | 51精品国产人成在线观看 | 国产亚洲一区二区不卡 | 国产无遮挡免费 | 欧美日韩亚洲在线观看 | 亚洲无码国产精品 | 中文免费在线观看 | 国产精品国产三级国产 | 久久久久人妻一区二区三区 | 免费看国产曰批40分钟 | 粗了大了 整进去好爽视频 日本女优中文字幕 | 污视频免费在线 | 国产又粗又长又黄的视频 | 久久久久亚洲av无码专区桃色 | 国产精品久久久久久中文字 | 又黄又爽又色视频 | 日韩夜夜 | 激情麻豆 | 久久社区视频 | 日韩美女性生活 | 欧美丰满一区二区免费视频 | 韩国毛片一区二区三区 | 91超薄丝袜肉丝一区二区 | jvid乐乐| 福利色导航 | 人妻体体内射精一区二区 | 精品国产乱码久久久久久图片 | jlzzzjlzzz国产免费观看 | 日韩一区免费 | 麻豆网站在线播放 | 日韩av中文在线观看 | 欧美人禽杂交狂配 | 无限国产资源 | 欧美精品123| 三级性生活视频 | 欧美亚洲一区二区三区 | 国产精品永久久久久久久久久 | 人妻少妇精品无码专区二区 | 久久婷婷五月综合色吧 | 日韩精品aaa | av美女网站| 国产麻豆91 | 日韩一区在线播放 | 成年人在线观看 | 天堂中文在线网 | 天堂资源在线 | 中国极品少妇videossexhd 就要干就要操 |