NanoPC-T4学习记录---(8)基于NanoPC-T4的字符驱动的开发1

在家上课真的是。。作业太多了,仿佛回到了高中生活,天天忙于提交作业,就连体育课都要上传运动照片。

对于实验8、9、10以后再搞把,,因为这周二远程开组会给我安排了个基于ARM的项目(主要是应用层开发),所以我再学学驱动开发就要去学应用层的开发了。实验8、9、10毕竟对项目帮助不大。
诶,,今天来记录记录前几天忙里偷闲学习的字符驱动开发。

回顾给自己安排的实验:
1.搭建PC端和开发板系统:PC端就用虚拟机装个ubuntu18.04,开发板上用rk3399-typec-friendlydesktop-bionic-4.4-arm64-20191227(带图形界面的)。
2.把网络搞通。连接wifi,与电脑端处于同一网段。方面后面搭建samba服务器、挂载NFS或者用tftp传输数据等操作。(暂时使用网线代替)
3.在虚拟机Linux下搭建Samba服务器。
4.在虚拟机Linux挂载NFS。
5.下载内核代码并且导入Sourceinsight。
6.在虚拟机Linux进行内核配置和编译。
7.在虚拟机Linux进行内核模块的开发。
8.板子的Uboot制作。
9.板子的内核制作。
10.板子的根文件系统制作。
11.字符驱动的开发(新加)

1.记录第十一个实验

前提要求:虚拟机Linux搭建好了交叉编译环境,虚拟机Linux和板子搭建好了NFS。
内容包括:对虚拟内存的读写操作和对设备的控制指令(我还未使用硬件,就先在NanoPC-T4上打印个信息把)。

(1)编写memdev.h 进行设备操作的宏定义
在这里插入图片描述
_IO为不带参数的控制、_IOW为带写入参数的控制、_IOR为带读入参数的控制

(2)编写字符驱动代码memdev.c(参考别人的)
缺什么头文件 就“man 函数”查找需要什么头文件

a.驱动初始化包括分配cdev设备描述符(静态分配)、初始化cdev、设备号的分配(动态分配)和cdev的注册。
b.驱动注销包括cdev的注销和设备号的注销。
在这里插入图片描述
在这里插入图片描述
c.设置操作函数集(file_operation):llseek、read、write、open、release和ioctl。

在这里插入图片描述
d.虚拟内存的初始化
在这里插入图片描述
e.分配实现各个操作函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)编写驱动程序的Makefile并make
在这里插入图片描述
注意:modules CROSS_COMPILE=aarch64-linux- 和ARCH=arm64

在这里插入图片描述
编译成功。
(4)编写写虚拟内存的应用程序write_mem.c并编译
在这里插入图片描述
/dev/memdev0 是待会在板子上用mknod创造的字符设备文件
在这里插入图片描述
(5)编写写虚拟内存的应用程序read_mem.c并编译
在这里插入图片描述
在这里插入图片描述

(6)编写执行设备控制的应用程序ctrl_mem.c并编译在这里插入图片描述
在这里插入图片描述
(7)把memdev.ko、write_mem、read_mem、ctrl_mem全部通过NFS拷到板子上。然后
a.挂载内核模块
insmod memdev.ko
b.通过读取/proc/devices里面的信息,查找memdev的主设备号
cat /proc/devices
在这里插入图片描述
是240

c.创建字符设备文件
mknod /dev/memdev0 c 240 0

d.执行write_mem、read_mem、ctrl_mem看到相应现象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NanoPC-T4上使用QT实现DHT11的步骤与在Arduino上实现类似,只需要将传感器连接到NanoPC-T4上,并使用GPIO库读取传感器数据。下面是一个简单的步骤: 1. 首先,你需要在NanoPC-T4上安装QT,并在QT中安装GPIO库,这可以通过以下命令来完成: ``` sudo apt-get update sudo apt-get install qtbase5-dev sudo apt-get install qtdeclarative5-dev sudo apt-get install qml-module-qtquick-controls sudo apt-get install qml-module-qtquick-dialogs sudo apt-get install qml-module-qtquick-layouts sudo apt-get install qml-module-qtquick-window2 sudo apt-get install qml-module-qt-labs-settings sudo apt-get install libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5widgets5 libqt5serialport5-dev ``` 2. 将DHT11模块连接到NanoPC-T4上。将DHT11的VCC引脚连接到NanoPC-T4的5V引脚,将GND引脚连接到NanoPC-T4的GND引脚,将DHT11的数据引脚连接到NanoPC-T4上的GPIO引脚上(例如:GPIOA0)。 3. 在QT中创建一个新的项目,并在项目中添加以下代码: ```c++ #include <QCoreApplication> #include <QDebug> #include <wiringPi.h> #include <dht.h> #define DHTPIN 0 // DHT11数据引脚的GPIO引脚 #define DHTTYPE DHT11 // DHT11传感器类型 dht DHT; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); if (wiringPiSetup () == -1) // 初始化wiringPi库 { qDebug() << "Failed to setup wiringPi!"; return -1; } while(1) { int chk = DHT.read11(DHTPIN); // 读取DHT11传感器 qDebug() << "湿度: " << DHT.humidity << "%, " << "温度: " << DHT.temperature << "°C"; delay(1000); // 稍作延迟 } return a.exec(); } ``` 4. 编译并运行代码。你将在QT控制台中看到DHT11传感器的湿度和温度数据。 这就是在NanoPC-T4上使用QT实现DHT11的基本步骤。你可以根据你的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值