基于ARM9和Linux的嵌入式打印终端系统
同时查看打印机的电路手册和管脚定义,选用其STB选通线、ACK回答脉冲线、BUSY线、DATA0-DATA7数据线来与开发板的GPIO口相连,并初始化高低电平值。为了避免接线过紧互相干扰,制作一个接口板定义各引脚连接如图3所示。
至此,硬件的电路设计及连接基本完成。
软件平台采用的是基于2.4内核的嵌入式Linux系统。采用的交叉编译器工具包为CROSS2.95.3.tgz(包含arm-linux-gcc等)。
3.1 打印机驱动的编写
Linux的设备分为块设备,字符设备和网络设备,该系统使用到的微型打印机属于字符设备,下面将具体说明如何设计打印机驱动。
3.1.1 定义设备名
#define DEVICE_NAME weida_printer
3.1.2 模块函数设计
在该系统中,采用模块化加载驱动程序的方法,因此必须实现模块的初始化函数和卸载函数。采用devfs方式注册打印机。
初始化函数weida_init通过devfs_register函数向系统注册设备。
函数原型devfs_register(NULL, DEVICE_NAME, DEVFS_FL_DEFAULT, 0, 0, S_IFCHR | S_IRUSR | S_IWUSR, weida_printer_fops, NULL);
其中,DEVICE_NAME为主设备名,weida_printer_fops为定义的一个数据结构,用来实现的文件操作,包括open、close、write等。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)linux相关文章:linux教程
三维扫描仪相关文章:三维扫描仪原理
评论