- 博客(38)
- 收藏
- 关注
转载 宏定义中使用do{}while(0)的好处 【转】
#define MACRO_NAME(para) do{macro content}while(0)的格式,总结了以下几个原因:1,空的宏定义避免warning:#define foo() do{}while(0)2,存在一个独立的block,可以用来进行变量定义,进行比较复杂的实现。3,如果出现在判断语句过后的宏,这样可以保证作为一个整体来是实现:#define f...
2015-01-10 14:12:00
178
转载 SPI的工作模式口诀[转]
口诀:03升,12降,低取小,高取大 !解释:1. 03升,12降: 0、3模式为上升沿采样,1、2模式为下降沿采样。2. 低取小,高取大:SCK初始电平为低则模式取小值,SCK初始电平为高则模式取大值。要点:SCK初始电平高低由SS(即从机选择)信号有效边沿确定对于SPI接口的内部硬件实现,大体上有这么几个要点: (1)对SPI主机模式,第一位要发送...
2014-07-06 14:22:00
229
转载 Qt 嵌入式开发环境搭建
这里主要是记录了自己在搭建嵌入式开发环境时阅读的一些有价值的参考文档,文档主要来自于网络,由于是从文库中下载,所以也不知道 文档的出在哪?因为个人觉得总结的比较好,我暂且拿过来记录下,当然在此基础上也会加上我自己的理解!这篇文章主要是以问答的形式来组织。 QT嵌入式开发环境是本文所要介绍的内容,我们先看看Qt的各个版本简介: 1.什么是QT Qt是一个完整的C++应用...
2013-04-11 10:48:00
381
转载 S3C2440 LCD驱动(FrameBuffer)实例开发<二>
开发板自带的LCD驱动是基于platform总线写的,所以如果要使其它的LCD能够在自己的开发板上跑起来,那么就先了解platform驱动的架构,下面简单记录下自己看platform驱动时体会,简单的说platform是一种虚拟总线,那么它也是一条总线,所以它分为3个部分,platform_bus,platform_device,platform_driver。在platfor...
2013-04-05 22:28:00
213
转载 S3C2440 LCD驱动(FrameBuffer)实例开发<一>
1. 背景知识 在多媒体的推动下,彩色LCD越来越多地应用到嵌入式系统中,PDA和手机等大多都采用LCD作为显示器材,因此学习LCD的应用很有实际意义! LCD工作的硬件需求:要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路...
2013-04-04 22:00:00
383
转载 linux 设备模型(三)
前面两篇是记录linux设备模型的框架及底层实现,从整体上有了一个把握。在第二篇中记录了linux设备模型最底层实现的方法,说的简单点linux设备模型就是要把驱动和设备都串起来,对系统有一个一般性的描述,然后内核对这个统一的设备模型进行统一管理。而实现让内核获得系统整体配置信息的数据结构就是kobect和kset,所有的驱动和设备都包含kobject 和 kset,也就是kobj...
2013-03-30 22:37:00
153
转载 linux 设备模型(二)
如果将linux设备模型比喻一座大厦,那么kobject 和 kset就是构成这座大厦内部的钢筋,由若干他们构成了大厦的内在表现形式,设备驱动模型中bus,device和driver 已经是大厦想外界展示的那部分,属于外在表现形式了。在我们写驱动的时候与我们打交道的是bus,device和driver,基本上不用去管更底层的东西,那些内核都帮我们做好了。但是,如果要灵活的使用l...
2013-03-28 20:45:00
155
转载 linux 设备模型(一)
随着linux系统越来越成熟,与设备驱动相关的一些新的特性需要加入,而之前独立的设备及其驱动程序能有效地沟通起来,linux2.6内核最初为了应付电源管理的需要,提出了一个设备模型来管理所有的设备。在物理上,外设之间是有一种层次的关系,例如把一个U盘插在电脑的usb接口,实际上这个U盘是挂在usb hub上,usb hub又是连接在usb2.0 Host control上,usb...
2013-03-28 20:12:00
108
转载 输入子系统学习笔记之按键实例编程
输入子系统由3部分组成:input core, input handler ,input dev。其中我们要写代码去实现的是input dev,因为输入子系统实现了输入设备大部分相同的功能,因此input dev写少量与硬件相关的代码和调用input core提供的接口。 1 input dev的编写要点 1.1 分配、注册、注销input设备 /* 分配/释放一个输入设备*/st...
2013-03-22 17:33:00
168
转载 输入子系统学习笔记之源码分析3_流程分析
看一个驱动程序的时候一般是从入口函数开始看,输入子系统的核心实现函数是 input.c,入口函数是input_init(),因此要分析输入子系统那么就从input_init()函数开始,input_init()代码如下: static int __init input_init(void){ int err; //创建一个类input_class err = cla...
2013-03-22 16:38:00
144
转载 基于GSM的远程控制系统
等待添加。。。转载于:https://www.cnblogs.com/lishixian/articles/2972181.html
2013-03-20 22:17:00
680
转载 基于FPGA挡风玻璃抗风压测试系统
待添加。。。转载于:https://www.cnblogs.com/lishixian/articles/2972177.html
2013-03-20 22:15:00
125
转载 无线自组网指令调度系统
等待添加。。。转载于:https://www.cnblogs.com/lishixian/articles/2972174.html
2013-03-20 22:14:00
200
转载 scatter文件 分析笔记
Scatter File —ARM中的RO、RW和ZI 数据说明(1) 一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。 要了解RO,RW和ZI需要首先了解以下知识: ARM...
2013-03-20 22:02:00
474
转载 c语言中内存对齐分析总结
一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某...
2013-03-20 22:00:00
137
转载 正则表达式与文件格式处理学习总结
一.什么是正则表达式 a) 处理字符串的方法,是以行为单位来进行字符串的处理行为,可以让用户快速查找,删除,替换特定字符串 b) 是一种表示法,只用这个工具支持这个表示法,就可以用正则表达式处理字符串 二.正则表达式的在linux中的定位 a) 与bash一样,属于linux的任督二脉,数学中九九乘法表 三.基础正则表达式 a) ^word : 字符串在行首 b) Word$ : 待查找...
2013-03-20 21:59:00
291
转载 shell学习总结
一.什么是shell a) 只要能够操作应用程序的接口 二.为什么要学些shell a) 命令行的shell:大家都是一样的 (一法通,则万法通) b) 命令行的速度比较快 c) Linux的任督二脉,是学习linux的基础 三.为什么我们系统合法的shell要写入etc/shells这个文件 a) 这是因为系统某些服务在运行过程中,会去检查用户能够使用的shells,而这些shell的...
2013-03-20 21:58:00
125
转载 patch 打补丁——学习笔记
创建补丁文件: 代码: diff -Naur 旧的目录 新的目录 > patch文件或者diff -Naur 旧的文件 新的文件 > patch文件 对于目录层数的一些限制在创建patch的时候文件夹的层数应当是一样的,比如 代码: --- old/modules/pcitableMon Sep 27 11:03:56 1999+++ new/modules/pcitable...
2013-03-20 21:57:00
179
转载 数据流重定向_学习笔记
linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值。 linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standa...
2013-03-20 21:56:00
147
转载 makefile 学习笔记
学习的目标: 了解make的历史 了解make的作用以及工作过程 掌握makefile的基本规则和变量的使用 一.什么是makefile? a) Makefile是工程编译的规则。这些规则指定,哪些文件需要先编译,哪些文件后编译,哪些文件需要重新编译 b) 目的:编译源程序 c) 基础:都是以文件的依赖性为基础 二.为什么要用makefile? a) 可以高效的自动化编译 b) 简化编译...
2013-03-20 21:55:00
130
转载 软件移植出现的一个问题:configure: error: Your intltool is too old. You need intltool 0.4.0...
解决方法: wget http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gztar zxvf intltool-0.40.6.tar.gzcd intltool-0.40.6./configuremake && make install转载于:https://www.cnb...
2013-03-20 21:53:00
705
转载 quartus 软件下载地址,可以找到历史版本
fpga软件下载地址下载Quartus II 9.1的SP2补丁(Windows版本):ftp://ftp.altera.com/outgoing/release/91sp2_quartus_windows.exe 2.12GBftp://ftp.altera.com/outgoing/release/91sp2_nios2eds_windows.exe 13MBftp://ftp.al...
2013-03-20 21:52:00
1270
转载 fedora15 如何修改运行级别
fedora15取消了inittab的启动方式,改为从default.target读取启动参数 可以使用vim先查看initab文件,里面清楚的的写到inittab的设置改为到/etc/systemd/system/default.target这里了,这里就是缺省的设置。如果你要改变缺省值就把对应的runlevel移动过去覆盖了,而运行级别的runlevel的配置文件放在/lib...
2013-03-20 21:49:00
120
转载 如何在Eclipse中打开已经存在的工程
怎样从Eclipse当中打开一个存在的项目? 多么常见又难以解决的问题! 看原文: http://www.skidmore.edu/academics/mcs/java/pages/tutorials/quick_Tutorial.htm 看精华: 假设原来的工程在目录c:\test\prj下面,那么你需要做的是这么几步: 首先打开Eclipse; 第二、选择菜单...
2013-03-20 21:48:00
546
转载 CVI启动时报错“nicont.dll 解决办法
CVI启动时报错“nicont.dll is registered but XXXX”和大家分享的又是一个我们用CVI常碰到的一个报错信息:nicont.dll is registered but XXXX,此错误会在你启动CVI时报错。此错误信息与你写的程序无关。原因:CVI的activex控件注册信息被你的其它后来装上的软件改动了。导致CVI的activex控件注册信息不能够被系统识...
2013-03-20 21:44:00
673
转载 输入子系统学习笔记之源码分析2_数据结构分析
1. 输入子系统数据机构分析 分析输入子系统,我是从输入子系统中的数据结构关系以及连接设备驱动层和事件处理层分析的,如果了解了输入子系统的数据结构关系和输入子系统预留给我们的编程接口,那么基本上掌握了输入子系统了。下面是输入子系统的系统数据结构图: 由上图可知,input子系统分为3层,最上一层是event handler,中间层是Input core,底层是input driv...
2013-03-20 21:34:00
176
转载 输入子系统学习笔记之源码分析1_框架性分析
1. 引入输入子系统的目的 输入设备的驱动程序如果按照一般字符设备驱动的写法,那么这些驱动就没办法用在别人写的应用程序上。这是因为其它人不会去打开这个设备文件也有可能不知道这个设备文件的命名,其它人有可能打开线程或者是直接使用scanf获得输入。这样驱动程序可以自己使用或者是公司内部使用,别人是无法使用,除非你告诉它怎么使用你的驱动,但是这样,那个应用程序就不是通用的,这个应用程序就没法...
2013-03-18 21:46:00
130
转载 嵌入式Linux的低功耗策略研究[转]
摘 要:功耗是嵌入式设备的一个十分重要的性能指标。在硬件设计和选型之后,功耗水平在极大程度上取决于软件的设计。鉴于Lioux在嵌入式设备中的应用日益广泛,提出在嵌入式Linux下软件编写的几种策略。通过这些软件编写方式,能有效降低最终产品的功耗水平。关键词:嵌入式Linux功耗策略 引 言由于Linux系统具有嵌入式操作系统需要的很多特色,如适应于多种CPU和多种硬件平台、性能稳定、可...
2013-01-18 21:32:00
290
转载 基于开源软件构建先进的嵌入式电源管理[转]
电源管理(或者说能耗管理)是芯片设计、制造工艺、系统设计和软件都在为之努力的研究课题,大家力求在各个环节尽可能的减少静态和动态的电源消耗。传统的控制电压的调节方式和管理待机模式依然是多数电子设备正在采用的,还将继续延续下去,但是随着包括智能手机、导航和无线传感网络装置,这些对电量消耗极大且永远在线的设备的市场规模的迅速增加,电源管理已经成为整个电子设计正在面临的重要课题。市场研究机构i...
2013-01-18 21:31:00
491
转载 基于Linux的动态电源管理使嵌入式设备更节能[转]
基于Linux的动态电源管理:使嵌入式设备更节能 为了在产品众多、竞争激烈的市场上使产品与众不同,手持设备的制造商们往往把电池寿命和电源管理作为手机、PDA、多媒体播放器、游戏机、其它便携式消费类设备等产品的关键卖点来考虑。用户是从电池寿命这方面来看待电源管理的成效,其实它是多种因素共同作用的结果,这些因素包括 CPU 功能、系统软件、中间件,以及使用户可以在更长的充电或更换电池的间隔...
2013-01-18 21:29:00
222
转载 从手机电源管理看电源系统设计的主要趋势[转]
最近几年的电源供应设计和电源管理发展趋势已经反映出整个电子产业都能见到的许多动态,例如零件整合度日益增加、利用数字组件来加强或取代传统模拟电路的做法更加普遍、以及在前两个趋势影响下,越来越多智能型功能开始分布至整个电源系统;毫无疑问的,这些力量将在未来的几年内继续影响电源零件。此外,某些特殊应用的电源系统设计技巧也已出现,它们也将塑造电源零件的本质和功能。 在这些特殊应用的众...
2013-01-18 21:28:00
415
转载 Linux的cpufreq(动态变频)技术[转]
linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。 cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。 设备驱动级:主要实现对单个...
2013-01-18 21:26:00
251
转载 Cpufreq应用程序在arm开发板端的交叉编译及实现[转]
1.内核选项: Linux 动态变频管理 cpufreq 提供了操作系统级别的变频功能,同时需要用户层来制定和执行策略。cpufreq后台进程cpufreqd 就是用来监测系统的运行状况,并根据不同的状况设定 CPU 的工作频率的。 要想在用户层使用后台进程cpufreqd,首先需要在配置linux内核编译选项时选择CPU Frequency scaling功能选项, 其内有一些子...
2013-01-18 21:10:00
429
转载 linux 内核编译
编译新内核的原因:在做无线自组网实验时,发现pc机(作为asterisk服务器)先启动,其他终端后启动时(pc机与所有的终端的网卡都配置为adhoc模式)。所有的终端不能相互ping通,都是都可以与pc机ping通;如果是终端先启动,再启动pc机,终端之间以及终端与pc机之间都可以相互ping通。 分析原因: 尝试1 :有可能是pc机linux发行版商的网...
2012-12-27 20:03:00
103
转载 与一线Linux嵌入式开发工程师的对话 [转]
陈工程师一直做Linux的嵌入式开发,作为在开发一线的工程师,他对很多问题的看法可能更切合实际需求,于是,通过邮件,就嵌入式开发方面的问题,请他谈了一下自己的看法: 问:关于嵌入式开发,我们准备给同学们讲解一些入门知识,从你一线开发经验来说,给我们一些建议: 陈工回答: 对于嵌入式Linux入门,如果有一定基础,可以从驱动开始;如果没有基础,我个人建议还是从应用程序开始。因为从应用程序开...
2012-12-09 13:51:00
140
转载 右左法则--复杂指针解析 [转]
右左法则不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。 右左法则原文: The right-left rule:Start reading the declaration from the innermost parentheses,go right,and then ...
2012-12-05 20:03:00
100
转载 c 语言深度剖析之关键字的秘密
在c语言标准中定义了32个关键字,这32个关键字描述了有数据类型,或修饰数据类型,代码控制等。因此,深度学习c语言首先得把这32个关键字分析透彻,好现在就一个个来看这些关键字。首先看看数据类型。我们先要问为什么c语言中要加入int,float,char等数据类型,以及什么是数据类型?在汇编语言中是没有这个概念的。 1 基本数据类型 1.1 什么是数据类型?...
2012-12-03 11:49:00
185
转载 hello world --- just test windows live write too!
#include <stdio.h>int main(){ printf("hello world ,my name's legend\n"); return 0;} 转载于:https://www.cnblogs.com/lishixian/articles/2799253.html
2012-12-03 11:42:00
124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅