開發環境:
主機:Ubuntu12.04
開發板:RT5350
Openwrt:Openwrt15.05
1 編寫應用程序
在前面的章節中, 我們成功的寫出了我們自己的驅動程序, 并且向應用程序提供了 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 文件
前面我們寫出了應用程序,下來我們就要編譯應用程序。首先創建一個RT5350_drv_test 目錄,然后進入該目錄,再創建一個 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 目錄,再創建一個 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 的語法,在前面的章節中已經講解過,不再贅述。
3 編譯應用程序
將RT5350_drv_test 的整個文件傳到OpenWrt系統源碼的package 目錄下,然后進入 OpenWrt 系統源碼的頂層目錄,執行 make menuconfig。
$ cd openwrt/
$ make menuconfig
在彈出的菜單選項中。
Utilities --- >
< * > RT5350_drv_test
圖1
我們就能看到我們自己寫的應用程序的選項 RT5350_drv_test,將該選項配置進系統,即選為*。接下來,退出保存,并重新編譯系統。
$make V=99
編譯完成以后,新生成的固件里面,就已經包含了我們的應用程序了。
18.4 測試
然后將前面編譯出來的驅動模塊軟件包也傳入到開發板。接下來就開始測試。
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 函數中的調試信息。從而說明應用程序成功的調用了驅動的相應的函數。
審核編輯:湯梓紅
-
驅動程序
+關注
關注
19文章
837瀏覽量
48077 -
開發板
+關注
關注
25文章
5068瀏覽量
97621 -
Ubuntu
+關注
關注
5文章
563瀏覽量
29841 -
應用程序
+關注
關注
37文章
3277瀏覽量
57738 -
OpenWrt
+關注
關注
10文章
130瀏覽量
39322
發布評論請先 登錄
相關推薦
評論