AM437x平台下Linux驱动的开发流程 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd
01 Linux新旧驱动框架对比 02 设备树的简介 03 手把手教你写驱动
01 Linux新旧驱动框架对比 第 1 部分 Universal Asynchronous Receiver/Transmitter (UART) 串行控制器是计算机串行通信子系统中关键的组件。UART 把数据字节以连续的串行方式传输。 串行传输广泛应用于 Modem 和非网络为基础的通信在计算机终端和其它设备之间。 根据硬件支持的模式 有两种方式的串行传输同步和异步 UART Universal Asynchronous Receiver/Transmitter USART Universal Synchronous-Asynchronous Receiver/Transmitter
驱动旧框架简介 主要特点:kernel/arch/arm/plat-xxx目录和kernel/arch/arm/mach-xxx目录下用代码描述硬件,如注册platform设备,声明设备的resource以及各种硬件的platform_data等 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 共享一个时钟 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。不需要发送时钟 必须提前约定一致的时序参数和特殊位 04 广州创龙电子科技有限公司
驱动旧框架的缺点 1. 板级硬件细节过多地被硬编码在arch/arm/plat-xxx和 arch/arm/mach-xxx,造成代码冗余 2. 硬件细节描述难度大 3. 硬件细节编译进内核中 起始位后接收器将检测信号是 1 还是 0 比如每一位以2s时间发送 接收器在1s后检测信号 然后等待2s再检测下一个信号 校验位用于检测简单的错误 但是不能纠正 停止位没有出现 UART 应该丢弃数据 可能原因是收发双方时钟不一致 05 广州创龙电子科技有限公司
主要特点: 1. 设备树描述硬件细节 2. 硬件描述难度小 3. 硬件描述和内核分离 驱动新框架简介 06 广州创龙电子科技有限公司 并行通信:通常是将数据字节的各位用多条数据线同时进行传送 。 串行通信:将数据字节分成一位一位的形式在一条传输线上逐个地传送。 06 广州创龙电子科技有限公司
02 设备树的简介 第 2 部分
1. 将硬件的细节直接传递给内核 2. 可描述以下信息 CPU的数量和类别 内存基地址和大小 总线和桥 外设连接 中断控制器和中断使用情况 设备树的功能 1. 将硬件的细节直接传递给内核 2. 可描述以下信息 CPU的数量和类别 内存基地址和大小 总线和桥 外设连接 中断控制器和中断使用情况 GPIO控制器和GPIO使用情况 Clock控制器和Clock使用情况 08 广州创龙电子科技有限公司
3. 设备树由一系列被命名的结点(node)和属性(property)组成 设备树的结构 1. 文件类型: 源文件:.dts或.dtsi 目标文件:.dtb 2. 编译工具:DTC 3. 设备树由一系列被命名的结点(node)和属性(property)组成 如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:10位×240个/秒 = 2400 bps 波特率和比特率不总是相同的,对于将数字信号1或0直接用两种不同电压表示的所谓基带传输,比特率和波特率是相同的。所以,我们也经常用波特率表示数据的传输速率。 过采样~~~~~ 数字信号有多进制和二进制之分,但码元速率与进制数无关,只与传输的码元长度T有关 波特率最初标准实际通过媒介 从 DTE 到 DCE 的数据位 起始位数据位停止位等 error-correcting modem Modem 移除 起始位 检验位停止位 同步传输 Modem 压缩技术 09 广州创龙电子科技有限公司
节点 10 广州创龙电子科技有限公司
属性简介 11 广州创龙电子科技有限公司
03 手把手教你写驱动 第 3 部分
LED驱动 13 广州创龙电子科技有限公司
按键驱动 配置重点:按键对应的gpio 14 广州创龙电子科技有限公司
I2C设备驱动 配置重点:设备的I2C地址 串口有多种实现标准 15 广州创龙电子科技有限公司
LCD驱动配置 配置重点:工作频率、分辨率、时序 16 广州创龙电子科技有限公司
广州创龙电子科技有限公司 谢谢 官网:www.tronlong.com 论坛:51dsp.net