91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

Openwrt開發(fā)指南 第18章 驅動開發(fā)之字符設備應用程序

嵌入式大雜燴 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2023-07-02 09:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

開發(fā)環(huán)境:

主機:Ubuntu12.04

開發(fā)板:RT5350

Openwrt:Openwrt15.05

1 編寫應用程序

在前面的章節(jié)中, 我們成功的寫出了我們自己的驅動程序, 并且向應用程序提供了 open、read、write 三個接口,那么接下來我們就來編寫應用程序,調用這些接口。

#include < sys/types.h >
#include < sys/stat.h >
#include < fcntl.h >
#include < stdio.h >
int main(int argc, char **argv)
{
int fd;
char val;
fd = open("/dev/RT5350", O_RDWR);
if (fd < 0)
{
printf("Can't open /dev/RT5350\\n");
}
read(fd, &val, 1);
write(fd, &val, 1);
return 0;
}

該應用程序很簡單,就是在 main 函數里面依次調用了 open、read、write 三個函數接口。

2 寫Makefile 文件

前面我們寫出了應用程序,下來我們就要編譯應用程序。首先創(chuàng)建一個RT5350_drv_test 目錄,然后進入該目錄,再創(chuàng)建一個 src 目錄,在 src 目錄下新建一個Makefile 文件,內容如下。

CC = gcc
CFLAGS = -Wall
OBJS = RT5350_drv_test.o
all: RT5350_drv_test
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $  $(LDFLAGS)
fbtest: $(OBJS)
$(CC) -o $@ $(OBJS) $(LDFLAGS)
clean:
rm -f rbcfg *.o

CC = gcc

CFLAGS = -Wall

OBJS = RT5350_drv_test.o

all: RT5350_drv_test

%.o: %.c

**(CC) **(CFLAGS) -c -o **@ **< $(LDFLAGS)

fbtest: $(OBJS)

**(CC) -o **@ **(OBJS) **(LDFLAGS)

clean:

rm -f rbcfg *.o

然后將前面寫的應用程序RT5350_drv_test.c 復制到該目錄下, 接著回到上一級目錄,即 RT5350_drv_test 目錄,再創(chuàng)建一個 Makefile 文件,內容如下。

#
#Copyright (C) 2019 OpenWrt.org
# 
#This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=RT5350_drv_test
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/RT5350_drv_test
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Frame buffer device testing tool
DEPENDS:=+libncurses
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Configure
endef
TARGET_LDFLAGS :=
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \\
CC="$(TARGET_CC)" \\
CFLAGS="$(TARGET_CFLAGS) -Wall" \\
LDFLAGS="$(TARGET_LDFLAGS)"
endef
define Package/RT5350_drv_test/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/RT5350_drv_test $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,RT5350_drv_test))

關于該 Makefile 的語法,在前面的章節(jié)中已經講解過,不再贅述。

3 編譯應用程序

將RT5350_drv_test 的整個文件傳到OpenWrt系統(tǒng)源碼的package 目錄下,然后進入 OpenWrt 系統(tǒng)源碼的頂層目錄,執(zhí)行 make menuconfig。

$ cd openwrt/

$ make menuconfig

在彈出的菜單選項中。

Utilities  --- >
< * > RT5350_drv_test

1688223355239eoiwlcb66l

圖1

我們就能看到我們自己寫的應用程序的選項 RT5350_drv_test,將該選項配置進系統(tǒng),即選為*。接下來,退出保存,并重新編譯系統(tǒng)。

$make V=99

編譯完成以后,新生成的固件里面,就已經包含了我們的應用程序了。

18.4 測試

然后將前面編譯出來的驅動模塊軟件包也傳入到開發(fā)板。接下來就開始測試。

1). 安裝驅動程序

opkg install kmod-RT5350_drv_3.18.109-1_ramips_24kec.ipk

cd lib/modules/3.18.109/

insmod RT5350_drv.ko

2). 運行測試程序

cd /

RT5350_drv_test

3). 卸載驅動

rmmod RT5350_drv

當運行測試程序的時候,我們就能看到驅動中 open、read、write 函數中的調試信息。從而說明應用程序成功的調用了驅動的相應的函數。

審核編輯:湯梓紅

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

    關注

    19

    文章

    869

    瀏覽量

    50457
  • 開發(fā)板
    +關注

    關注

    26

    文章

    6290

    瀏覽量

    118067
  • Ubuntu
    +關注

    關注

    5

    文章

    613

    瀏覽量

    33366
  • 應用程序
    +關注

    關注

    38

    文章

    3344

    瀏覽量

    60253
  • OpenWrt
    +關注

    關注

    10

    文章

    136

    瀏覽量

    41192
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Openwrt開發(fā)指南 16 驅動開發(fā)字符設備驅動程序框架

    我們在學習 C 語言的時候,知道每個應用程序的入口函數,即第一個被執(zhí)行的函數是 main函數,那么,我們自己的驅動程序,哪個函數是入口函數呢?
    的頭像 發(fā)表于 06-30 09:01 ?4628次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>16<b class='flag-5'>章</b> <b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>之</b><b class='flag-5'>字符</b><b class='flag-5'>設備</b><b class='flag-5'>驅動程序</b>框架

    Openwrt開發(fā)指南 25 配置OpenWrt支持網絡攝像頭

    Openwrt開發(fā)指南 25 配置OpenWrt支持網絡攝像頭
    的頭像 發(fā)表于 07-13 08:56 ?4366次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>25<b class='flag-5'>章</b> 配置<b class='flag-5'>OpenWrt</b>支持網絡攝像頭

    Openwrt開發(fā)指南 2 OpenWrt開發(fā)環(huán)境搭建

    燒寫到設備中;另外,嵌入式設備的資源并不足以用來開發(fā)軟件。所以需要用到交叉開發(fā)模式:在主機上編輯、編譯軟件,然后在目標板上運行、驗證程序。對
    的頭像 發(fā)表于 06-27 09:09 ?9422次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>2<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b><b class='flag-5'>開發(fā)</b>環(huán)境搭建

    Openwrt開發(fā)指南 3 OpenWrt下載及配置

    編譯OpenWrt首先需要下載源碼,OpenWrt的源碼是通過git下載,OpenWrt目前已經很好的支持了MT7620、MT7821等芯片,因此OpenWrt系統(tǒng)完全可以用于MT76
    的頭像 發(fā)表于 06-27 09:10 ?9603次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>3<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>下載及配置

    Openwrt開發(fā)指南 13 OpenWrt啟動流程

    任何系統(tǒng)的啟動都是開發(fā)人員首要關注的問題,因為只有了解了系統(tǒng)的啟動流程和啟動機制,才能真正掌握一個系統(tǒng),如果對啟動的啟動不熟悉的話,是不可能真正用好一個系統(tǒng),openwrt系統(tǒng)也不例外,他的啟動和一般的嵌入式系統(tǒng)啟動還有所區(qū)別,現(xiàn)在咱們就分析一下
    的頭像 發(fā)表于 06-29 09:09 ?5251次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>13<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>啟動流程

    Openwrt開發(fā)指南 15 驅動開發(fā)字符設備驅動程序概念介紹

    從上到下,一個軟件系統(tǒng)可以分為:應用程序、庫、操作系統(tǒng)(內核)、驅動程序開發(fā)人員可以專注于自己熟悉的部分,對于相鄰層,只需要了解它的接口,無需關注它的實現(xiàn)細節(jié)。
    的頭像 發(fā)表于 06-30 09:00 ?4253次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>15<b class='flag-5'>章</b> <b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>之</b><b class='flag-5'>字符</b><b class='flag-5'>設備</b><b class='flag-5'>驅動程序</b><b class='flag-5'>之</b>概念介紹

    Openwrt開發(fā)指南 17 驅動開發(fā)字符設備驅動程序

    首先將 RT5350_drv 文件夾傳到 OpenWrt 源碼的chaos_calmer/package/kernel 目錄下。然后進入 OpenWrt 源碼的頂層目錄,執(zhí)行 make menuconfig。
    的頭像 發(fā)表于 07-02 09:20 ?4981次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>17<b class='flag-5'>章</b> <b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>之</b><b class='flag-5'>字符</b><b class='flag-5'>設備</b><b class='flag-5'>驅動程序</b>

    Openwrt開發(fā)指南 20 驅動開發(fā)LED應用程序

    在前面的章節(jié)中, 我們成功的寫出了我們自己的驅動程序, 并且向應用程序提供了 open、ioctl 兩個接口,那么接下來我們就來編寫應用程序,調用這些接口。
    的頭像 發(fā)表于 07-03 09:02 ?4159次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>20<b class='flag-5'>章</b> <b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>之</b>LED<b class='flag-5'>應用程序</b>

    Openwrt開發(fā)指南 22 Openwrt串口的使用2

    在上一中,我們成功的讓驅動程序支持了串口 2,并且做了簡單的測試。接下來,我們就為串口 2 添加一個應用程序,從而實現(xiàn) Wi-Fi 串口。實現(xiàn)過程非常簡單,首先進入 OpenWrt
    的頭像 發(fā)表于 07-05 09:09 ?6580次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>22<b class='flag-5'>章</b> <b class='flag-5'>Openwrt</b>串口的使用2

    Openwrt開發(fā)指南 24 配置開發(fā)板支持U盤

    Openwrt開發(fā)指南 24 配置開發(fā)板支持U盤
    的頭像 發(fā)表于 07-13 08:55 ?7064次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>24<b class='flag-5'>章</b> 配置<b class='flag-5'>開發(fā)</b>板支持U盤

    Mali GPU OpenGL ES應用程序開發(fā)指南

    這是適用于馬里GPU的OpenGL ES應用程序開發(fā)指南。 它提供了使用OpenGL ES 1.1和OpenGL ES 2.0 API為馬里GPU開發(fā)應用程序
    發(fā)表于 08-30 07:57

    Linux設備驅動開發(fā)字符設備驅動編程分析

    1.字符設備驅動編寫流程 設備驅動程序可以使用模塊的方式動態(tài)加載到內核中去。加載模塊的方式與以往的應用程
    發(fā)表于 10-18 17:33 ?1次下載
    Linux<b class='flag-5'>設備</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>之</b><b class='flag-5'>字符</b><b class='flag-5'>設備</b><b class='flag-5'>驅動</b>編程分析

    《Linux設備驅動開發(fā)詳解》18、LCD設備驅動

    《Linux設備驅動開發(fā)詳解》18、LCD設備
    發(fā)表于 10-27 11:11 ?13次下載
    《Linux<b class='flag-5'>設備</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>詳解》<b class='flag-5'>第</b><b class='flag-5'>18</b><b class='flag-5'>章</b>、LCD<b class='flag-5'>設備</b><b class='flag-5'>驅動</b>

    《Linux設備驅動開發(fā)詳解》6字符設備驅動

    《Linux設備驅動開發(fā)詳解》6、字符設備
    發(fā)表于 10-27 11:46 ?23次下載
    《Linux<b class='flag-5'>設備</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>詳解》<b class='flag-5'>第</b>6<b class='flag-5'>章</b>、<b class='flag-5'>字符</b><b class='flag-5'>設備</b><b class='flag-5'>驅動</b>

    【北京迅為】itop-3568開發(fā)驅動開發(fā)指南(重制版)

    iTOP-RK3568開發(fā)驅動開發(fā)指南目錄:前言學習方法Linux驅動基礎 1 你好!內
    發(fā)表于 10-30 15:48 ?37次下載