本文记录git使用过程中用到的一些功能

Platform平台驱动模型

Linux内核在2.6版本引入设备驱动模型,简化了驱动程序的编写,Linux设备驱动模型包含设备(device)、总线(bus)、类(class)和驱动(driver),其中设备驱动通过总线绑定在一起,由于某些外设是没有总线这个概念的,但是又要使用总线、驱动和设备模型的话,就需要使用platform这个虚拟总线,相应的就有platform_deviceplatform_driver

字符设备是Linux驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的,这些设备的驱动就叫做字符设备驱动

Linux内核中,对于数据管理,提供了2种类型的双向链表,一种是使用list_head结构体构成的双向环形链表。

宏定义中#的功能

C/C++宏定义#中的功能是将其后面的宏参数进行字符串化操作,简单说就是在对它所引用的宏变量通过替换后在其左右各添加一个双引号。

下载QFtp源码

QFtp源码
gti clone https://github.com/qt/qtftp.git

编译QFtp模块

在QtCreator上编译出了点问题,只能在终端进行编译

  • 进入源码目录cd src/qftp,修改pro文件qftp.pro,修改如下

解压PMON源码pmon-loongson3.tar.gz

1
tar -xvf pmon-loongson3-nd-33j.tar.gz

配置交叉编译环境

  • 解压交叉编译工具gcc-4.4.0-pmon.tgz,配置环境

在嵌入式项目或者工控项目中经常会用到串口通讯,用到串口通讯可能就涉及到串口私有协议(类似 包头 + 帧类型 + 帧长度 + 帧数据 + 校验和 的形式)的解析。在Qt中经常用到QSerialPort类来进行串口数据收发,QSerialPort在串口数据可读时会释放readyRead()信号,接到这个信号再调用readAll()将缓冲区的数据全部读出来(串口数据量比较大,这个过程一般都是在一个独立的接收线程中进行处理)。

Linux Input子系统介绍

按键、鼠标、键盘、触摸屏等都属于输入(input)设备, Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了 input 框架,用户只需要负责上报输入事件,比如按键值、坐标等信息, input 核心层负责处理这些事件。

0%