第七章:嵌入式Linux接口与应用开发
嵌入式应用程序开发调试
将现有的程序移植到嵌入式开发板中,只需要注意使用
交叉编译工具。然后将交叉编译后的可执行程序放到文件系统中,重新制作根文件系统映像,并下载到开发板中;
make CROSS=arm-linux-
make CC=arm-linux-gcc
NFS网络文件系统是通过文件系统实现资源共享的一种重要方式,避免了重复制作根文件系统映像和重复下载烧写根文件系统映像文件,只要将编译好的、需要调试的程序放入PC机提供的NFS服务的共享目录,就能进行调试。
通过cross-gdb和Gdbserver两个程序实现跨平台调试,cross-gdb运行在PC机,Gdbserver运行在开发板上。
嵌入式Web服务器的移植
Boa Web服务器是一个开放源码源码的Web服务器,Web控制接口通常使用CGI(Common
Gateway Interface)实现。
原理
UART(UniversalAsynchronous Receiver/Transmitter):通用非同步收发传输器,简单的互联方式只需要三根线便可进行基本的数据传输(比如:RS-232标准串行接口)
GSM短信收发实例:嵌入式linux中,实现短信收发就是通过串口发送AT命令给手机模块,并读取返回数据的过程
USB(Universal SerialBus):通用串行总线接口。
IIC总线是一种两线制的串行总线,包含一根串行数据线SDA和一根串行时钟线SCL,C总线上的设备利用这两根线在连接到总线的设备间发送和接收数据。根据数据传输的功能不同,C总线上的设备可以分为主设备和从设备。
常见的嵌入式图形用户界面:
Qt/Embedded: 采用C++编写,需要总用较多系统资源和存储空间,面向嵌入式的图形库,是一个较为高级和完善的图形支持库,因为是Qt库开发商TrollTech公司发布的,所以需要双授权方式。
Tiny-X:可以在小内存或几乎无内存的情况下良好运行
MicroWindows:一个小巧的嵌入式图形用户界面支持系统,是一个开源的项目
OpenGUI:基于汇编实现其内核,并利用MMX指令进行优化,因而,运行速度非常快
MiniGUI:由中国人主持的开源项目发展而来,因而对中文的支持较好,但是由于是公司开发,因而也需要双授权模式。
帧缓冲(FrameBuffer)
将显示抽象成一个字符设备,帧缓冲只是一块显示缓冲区,向这个缓冲区中写入特定格式的数据就意味着更新屏幕的输出。缓冲区设备对应的设备文件为/dev/fb*,Linux可以支持多个帧缓冲设备,最多支持32个,分别为/dev/fb0到/dev/fb31