做一个理直气壮的嵌入式驱动开发者

在凌乱地学习了嵌入式各种设备的驱动开发板后,在我还没想明白驱动应该是一个怎么样的开发流程前,我常会遇到这样的困扰:比如,我是学过LCD驱动开发的,但我好像是只会某一款某一平台下的驱动,如果让我换用其他设备,或在其他平台,或使用不同版本的内核。要我去做这么一个驱动开发时,我都是没底的,没信心能在限期内完成,不敢打包票一定能做出来。甚至,让我抛开我手上的资料,让我去做已经学过的在某平台下做已学过的某个设备的驱动,还使用已经用过的内核版本去做这个一个驱动开发。我也没有能很熟练地轻松地完成这个驱动的信心,要我做时,第一感觉就是眼前一遍漆黑,不知从哪开始下手。

首先了解设备的属性。

假设你已经有一个写好裸板LCD设备的驱动,如果想让它在另一个平台芯片中也能驱动LCD设备的话,

无论是什么平台的,只要你清楚:

让一个设备工作起来,需要设置哪一些参数时 。你就能有信心有把握的去面对任何平台。

举例:假设是LCD;

..........

一个平台裸机驱动不能使用到另一个平台的原因主要有五个:

A、平台是否支持该设备;

B、设备连接到平台管脚不同;

C、平台控制管理设备的寄存器地址不同;

D、寄存器中设置某内容位置不同;

E、平台的设备管理的集成度不同,如8051单片机与S3C2440,51中发送数据的脉冲时钟还需要通过程序去控制,设置一个高脉冲,然后发一个数据,然后把脉冲拉低,然后循环去把数据流发送完毕,而在S3C2440中发数据只要往设备数据寄存器中写数即可。

A原因:可通过平台芯片手册的产品概述中,了解到该平台所能支持的设备,如下,2440手册在第一页的产品概述中,关于LCD设备有这么一句介绍:

可了解到2440平台支持STN和TFT屏

然后,再看LCD设备的手册,同样第一页一般说明General Specificaton列表中


B原因:无论什么LCD_TFT设备;其必需都要有的:

用于发送数据到LCD设备管脚

用于发送像素脉冲VCLK、水平方向的脉冲VLINE(HSYNC)、垂直方向的脉冲VFRAME(VSYNC)到设备去控制脉冲填充位置

用于控制LCD显示开关、LCD被光开关的引脚

其他功能引脚

这部分的知识获得,就需要认识LCD工作原理,具体接线看电路原理图来确认管脚。

C、原因解决的方法就是,查看平台芯片手册。在平台芯片手册中,通常会把某一种设备相关的寄存器列出一个表。

虽然不是每个寄存器都会用到,最重要提就是控制寄存器和地址寄存器的设置,其他可以先不使用。

D、本处详细看平台芯片手册中的寄存器内容,

主要的设置内容就是LCD设备工作原理中的关于数据、关于时钟信号、和使能开关的设置。

E、了解设备工作原理,了解现在寄存器帮你实现了哪些功能,一般带了相关设备寄存器的芯片,基本的功能都很完善,你只需要操作这些寄存器就能达到目的。

写着写着发现好啰嗦,把简单的事给写复杂了,日后总结好后再补.......


本篇文章的总思想就是

明确范围

清楚要素

了解框架模型

在后面的具体开发中演示吧,

本篇文章失败的地方,或许是因为题太大了,想简单的通过一篇文章和说明各种情况不现实,所以日后总结好了再补。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值