一、IIC应用开使用发的
1、iic和SMbus的协议基础知识
这部分基础知识比较复杂,做笔记比较麻烦,可以百度或者参考韦东山嵌入式linux开发手册。
2、I2C-Tools的编译安装
下载的链接:https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/
I2C-Tools只是提供了驱动的操作函数给用户层使用,也就是iic和SMbus的协议(例如数据发送的协议,数据接收的协议等等),iic的底层ic和引脚的驱动还是要自己提供的。
下面是I2C-Tools编译安装的步骤:
(1)首先是下载I2C-Tools的软件包
下载的链接:Index of /pub/software/utils/i2c-tools/ (kernel.org)
(2)对I2C-Tools的软件包进行编译
下载好压缩文件之后,进行解压,并进入解压后的目录。
对其进行编译的方式有两种:静态编译和动态编译
动态编译直接执行下面的命令就可以:
make
make install
注意:上面的编译方式为为动态编译,编译好之后,在板子上运行的时候,需要将对应需要的动态链接库也添加到里面(/lib)。
静态编译执行下面的命令:
make USE_STATIC_LIB=1
make install
上面的编译就是静态的编译,放到开发板上的时候,就不需要将动态链接库也放进开发板上了。可以根据下载的固件包俩面的README里面的文件进行编译。
(3)需要交叉编译的话,修改Makefile中的CC、AR变量,改成自己的交叉编译工具链
CC ?= gcc
AR ?= ar
上面的步骤完成之后,编译出来的程序就直接可以运行了,这里需要注意的是虚拟机里面的系统编译环境和板子上的编译环境要一样。这里就是个代码库。
二、串口应用开发编程
1、串口应用开发编程的基础知识
串口应用开发编程的技术知识主要就是关于串口的知识(比较简单这里不在添加),其次是tty体系的知识,可以百度,这里也不在添加。
2、串口的tty体系控制
主要的就是TTY driver和Line discipline是与用户程序直接对接的程序包。就是用户直接调用TTY driver体系里面函数,tty体系和Line displine的两个部分实现驱动的控制。
imx6ull是不需要修改设备树的,其他的板子可能还是需要修改设备树的。