摘要: #define MACRO_NAME(para) do{macro content}while(0)的格式,总结了以下几个原因:1,空的宏定义避免warning:#define foo() do{}while(0)2,存在一个独立的block,可以用来进行变量定义,进行比较复杂的实现。3,如果出现在... 阅读全文
posted @ 2015-01-10 14:12 lsx_007 阅读(330) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2014-07-13 18:54 lsx_007 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 口诀:03升,12降,低取小,高取大 !解释:1. 03升,12降: 0、3模式为上升沿采样,1、2模式为下降沿采样。2. 低取小,高取大:SCK初始电平为低则模式取小值,SCK初始电平为高则模式取大值。要点:SCK初始电平高低由SS(即从机选择)信号有效边沿确定对于SPI接口的内部硬件实现,... 阅读全文
posted @ 2014-07-06 14:22 lsx_007 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 这里主要是记录了自己在搭建嵌入式开发环境时阅读的一些有价值的参考文档,文档主要来自于网络,由于是从文库中下载,所以也不知道 文档的出在哪?因为个人觉得总结的比较好,我暂且拿过来记录下,当然在此基础上也会加上我自己的理解!这篇文章主要是以问答的形式来组织。 QT嵌入式开发环境是本文所要介绍的内容,我们先看看Qt的各个版本简介: 1.什么是QT Qt是一个完整的C++应用程序开发框架。它包含一个... 阅读全文
posted @ 2013-04-11 10:48 lsx_007 阅读(5363) 评论(2) 推荐(1) 编辑
摘要: 开发板自带的LCD驱动是基于platform总线写的,所以如果要使其它的LCD能够在自己的开发板上跑起来,那么就先了解platform驱动的架构,下面简单记录下自己看platform驱动时体会,简单的说platform是一种虚拟总线,那么它也是一条总线,所以它分为3个部分,platform_bus,platform_device,platform_driver。在platform_device向platform_bus注册设备,platform_driver向platform_bus注册驱动,注册后在platform_bus中会有一条device链表和driver链表,platform_bu. 阅读全文
posted @ 2013-04-05 22:28 lsx_007 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 1. 背景知识 在多媒体的推动下,彩色LCD越来越多地应用到嵌入式系统中,PDA和手机等大多都采用LCD作为显示器材,因此学习LCD的应用很有实际意义! LCD工作的硬件需求:要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。TQ2440是采用了S3C2440,S3C2410通过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制STN/TFT屏了。 ... 阅读全文
posted @ 2013-04-04 22:00 lsx_007 阅读(2219) 评论(0) 推荐(1) 编辑
摘要: 前面两篇是记录linux设备模型的框架及底层实现,从整体上有了一个把握。在第二篇中记录了linux设备模型最底层实现的方法,说的简单点linux设备模型就是要把驱动和设备都串起来,对系统有一个一般性的描述,然后内核对这个统一的设备模型进行统一管理。而实现让内核获得系统整体配置信息的数据结构就是kobect和kset,所有的驱动和设备都包含kobject 和 kset,也就是kobject 和 kset 是父类。因此,内核就获得了系统所有设备和驱动的配置信息,内核在关机时就能够以正确的顺序遍历所有的设备。(在设备处于忙碌的状态时,如果突然关机会造成数据的丢失,当系统要关机时,首先遍历所有设备,. 阅读全文
posted @ 2013-03-30 22:37 lsx_007 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 如果将linux设备模型比喻一座大厦,那么kobject 和 kset就是构成这座大厦内部的钢筋,由若干他们构成了大厦的内在表现形式,设备驱动模型中bus,device和driver 已经是大厦想外界展示的那部分,属于外在表现形式了。在我们写驱动的时候与我们打交道的是bus,device和driver,基本上不用去管更底层的东西,那些内核都帮我们做好了。但是,如果要灵活的使用linux设备模型,应该了解内核实现设备模型的流程。在这个过程中,自己也没有细入分析各个步骤,因为在我看来linux设备模型是一个复杂的系统,设计的数据结构也不是一时能够弄懂,在学习的阶段,实在是没有必要花太多时间在这上. 阅读全文
posted @ 2013-03-28 20:45 lsx_007 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 随着linux系统越来越成熟,与设备驱动相关的一些新的特性需要加入,而之前独立的设备及其驱动程序能有效地沟通起来,linux2.6内核最初为了应付电源管理的需要,提出了一个设备模型来管理所有的设备。在物理上,外设之间是有一种层次的关系,例如把一个U盘插在电脑的usb接口,实际上这个U盘是挂在usb hub上,usb hub又是连接在usb2.0 Host control上,usb2.0 Host最终挂在PCI Bus总线上。这个设备的物理层次关系如下:PCI –>usb2.0 Host control –>usb hub –>usb disk 。假设,电脑一段时间没有任何操作 阅读全文
posted @ 2013-03-28 20:12 lsx_007 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 输入子系统由3部分组成:input core, input handler ,input dev。其中我们要写代码去实现的是input dev,因为输入子系统实现了输入设备大部分相同的功能,因此input dev写少量与硬件相关的代码和调用input core提供的接口。 1 input dev的编写要点 1.1 分配、注册、注销input设备 /* 分配/释放一个输入设备*/struct input_dev *input_allocate_device(void)struct input_dev *input_free_device(void)/* 注册/注销一个输入设备*/int inp. 阅读全文
posted @ 2013-03-22 17:33 lsx_007 阅读(415) 评论(0) 推荐(0) 编辑