自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (3)
  • 收藏
  • 关注

转载 对Linux CAN驱动的理解(1)

在Ti的AM335X系列Cortext-A8芯片中,CAN模块采用D_CAN结构,实质即两路CAN接口。在此分享一下对基于AM335X的Linux CAN驱动源码的理解。下面来分析它的驱动源码及其工作方式。在Linux内核源码中,CAN设备驱动文件如下:drivers/net/can/d_can/d_can_platform.cdrivers/net

2016-07-28 19:21:49 3347

转载 对CAN驱动中的NAPI机制的理解

NAPI 是 Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收的服务程序,然后 通过poll的方法来轮询数据。采用NAPI技术可以大大改善短长度数据包接收的效率,减少中断触发的时间。可以这样理解,在NAPI机制没有出现时,由于网络设备接收数据是采用中断方式的,假设每次数据包很小,小到只有几个字节。而刚好在1秒内有

2016-07-28 19:19:01 419

转载 对Socket CAN的理解(5)——【Socket CAN控制器的初始化过程】

对于一般的CAN模块,进行初始化时,最关键的是以下两步:        1、  配置CAN的位时序;        2、  配置CAN的消息报文;                     下面,我们来详细分析上面提到的关键两步。        一、初始化步骤:        1、  第一步,进入初始化模式,在CAN控制寄存器中,将Init

2016-07-28 19:16:00 963

转载 对Socket CAN的理解(4)——【Socket CAN接收数据流程】

现在我们来分析一下CAN总线的接收数据流程,对于网络设备,数据接收大体上采用中断+NAPI机制进行数据的接收。同样,我们现在的CAN模块也是采用同样的方式进行数据的接收。由于我们只针对CAN总线接收数据这条主线进行分析。因些,会忽略一些针对CAN协议的设置及初始化等相关代码。         在初始化CAN设备时,我们需要给CAN设备分配NAPI功能。我们通过netif_napi_add(

2016-07-28 19:14:47 2329

转载 对Socket CAN的理解(3)——【Socket CAN发送数据流程】

转载请注明出处:http://blog.csdn.net/Righthek 谢谢!    对于本文,我们将从用户层使用Socket CAN进行数据发送时,数据从用户空间到底层驱动的整个通信流程,用户层使用Socket CAN可参考上一篇文章《对Socket CAN的理解(2)——【Socket的原理及使用】》。    当我们在用户层通过socket进行CAN数据的发送时,需要进

2016-07-28 19:14:00 1466

转载 对Socket CAN的理解(2)——【Socket的原理及使用】

转载请注明出处:http://blog.csdn.net/Righthek 谢谢!           为了能够对Socket CAN的深入理解,我们需要了解Socket的机制。         Socket的中文翻译为“插座”,在计算机世界里称为套接字。Socket最初是作为网络上不同主机之间进程的通信接口,后来应用越来越广,在同一主机上的不同进程之间通信也可以用Socket。简

2016-07-28 19:13:16 3521

转载 对Socket CAN的理解(1)——【CAN总线原理】

转载请注明出处:http://blog.csdn.net/Righthek 谢谢!由于Socket CAN涉及到CAN总线协议、套接字、Linux网络设备驱动等。因此,为了能够全面地了解Socket CAN的原理。我们需要了解以下几个方面的知识点:(1)CAN总线协议;(2)Socket原理;(3)Linux网络设备驱动;当熟悉以下三个方面的

2016-07-28 19:12:24 3403 1

转载 6410 spi 设备驱动

在arch/arm/mach-s3c64XX/mach-smdk6410.c中中增加如下代码:static void  cs_set_level(unsigned line_id, int lvl) {    gpio_direction_output(line_id, lvl);};static struct s3c64xx_spi_csinfo s3c64xx_spi0_c

2016-07-28 17:25:13 563

转载 QT 按钮类继承处理带定时器

01.class KeyButton : public QPushButton  02.{  03.    Q_OBJECT  04.public:  05.    explicit KeyButton(QWidget *parent = 0) : QPushButton(parent),  06.        pauseMsecs(400), intervalMsecs(3

2016-07-28 17:19:31 292

转载 QT实现软件重启

//重启软件 void MainWindow::on_pushButton_UI_reboot_clicked(){ //方式1 需要主函数中事件循环判断 //qApp->exit(773); //重启代码,773 = 'r'+'e'+'s'+'t'+'a'+'r'+'t' ==>restart//方式2 直接重启 #ifdef Q_OS_WIN qApp->closeAllWin

2016-07-28 16:56:55 1627

转载 QT 环境下开发socketCan接口程序

#include #include "QTimer"#include "QTime"#include "QMessageBox"#include #include #include #include #include "stdio.h"#include "stdlib.h"#include "unistd.h"#include "fcntl.h"#i

2016-07-28 16:50:26 3615 1

转载 ping: sendto: Network is unreachable

在我的板子上ping路由上的IP的时候可以ping通,但是ping外网的IP的时候提示“ping: sendto: Network is unreachable”后来使用route命令看了一下# routeKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref

2016-07-22 10:27:17 756

转载 QTableWidget的用法总结

在使用Qt不多的日子里,已经两次用到了QTableWidget这个控件,也慢慢的习惯和喜欢上了它。再使用QTableWidget的时候,已不像刚开始使用时的迷茫。嗯嗯。现在就来总结总结我与QTableWidget相识的历程......(*^__^*) 嘻嘻……使用时也查过不少资料,在此感谢前辈们的用心总结与分享!  1.QTableWidget不能在mainwindow中随

2016-07-22 09:24:27 306

转载 Linux下的eeprom读写操作

利用Linux内核自带的IIC总线驱动,按系统提供的框架,用ioctl方法对eeprom设备进行读写操作,并分别按单字节及多字节读写方式,对外提供函数接口,以供外部程序方便调用。  程序由3个文件组成,分别为头文件,函数实现文件,及测试程序。/* ********************************************************************

2016-07-12 16:55:35 8813 1

转载 Linux驱动子系统之I2C(2)

2  I2C子系统2.1 LinuxI2C子系统架构在内核中已经提供I2C子系统,所以在做I2C驱动之前,就必须要熟悉该子系统。2.2 三大组成部分1、I2C核心(i2c-core)I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(algorithm)上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。 2、I2C总

2016-07-12 16:21:27 311

转载 Linux驱动子系统之I2C(1)

1      硬件特性1.1 概述I2C总线是由Philips公司开发的两线式串行总线,这两根线为时钟线(SCL)和双向数据线(SDA)。由于I2C总线仅需要两根线,因此在电路板上占用的空间更少,带来的问题是带宽较窄。I2C在标准模式下传输速率最高100Kb/s,在快速模式下最高可达400kb/s。属于半双工。在嵌入式系统中,I2C应用非常广泛,大多数微控制器中集成了I2C总线,一

2016-07-12 16:20:46 293

转载 Linux驱动子系统之I2C(6)

6 总结下图根据之前的分析丰富的架构图Tips:I2C适配器驱动不一定是基于platform实现,这里是以s3c-i2c为例。 I2c_driver、i2c_client与i2c_adapterI2c_driver与i2c_client是一对多的关系,一个i2c_driver上可以支持多个同等类型的i2c_client。调用i2c_add_driver函数将I2c_dr

2016-07-12 16:19:49 334

转载 Linux驱动子系统之I2C(5)

5 客户驱动5.1 概述I2C客户驱动是对I2C从设备的实现,一个具体的I2C客户驱动包括两个部分:一部分是i2c_driver,用于将设备挂接于i2c总线;另一部分是设备本身的驱动。I2C客户驱动程序主要由i2c_driver和i2c_client来描述。 5.2 实例源码分析好了,我们来深入了解客户驱动代码的实现,drivers/misc/eeprom/at24.c文件

2016-07-12 16:19:08 302

转载 Linux驱动子系统之I2C(4)

4 总线驱动4.1 概述I2C总线驱动是I2C适配器的软件实现,提供I2C适配器与从设备间完成数据通信的能力,比如起始,停止,应答信号和master_xfer的实现函数。I2C总线驱动由i2c_adapter和i2c_algorithm来描述 4.2 S3c2440I2C控制器的硬件描述S3c2440处理器内部集成了一个I2C控制器,通过四个寄存器来进行控制:IIC

2016-07-12 16:17:58 250

转载 Linux驱动子系统之I2C(3)

3  i2c-dev3.1 概述之前在介绍I2C子系统时,提到过使用i2c-dev.c文件在应用程序中实现我们的I2C从设备驱动。不过,它实现的是一个虚拟,临时的i2c_client,随着设备文件的打开而产生,并随着设备文件的关闭而撤销。I2c-dev.c针对每个I2C适配器生成一个主设备号为89的设备文件,实现了i2c_driver的成员函数以及文件操作接口,所以i2c-dev.c的

2016-07-12 16:16:47 306

转载 LCD驱动(FrameBuffer)实例开发讲解

一、开发环境主  机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求:   要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/C

2016-07-08 10:01:59 2238

转载 嵌入式Linux内核I2C子系统详解

转自http://www.embeddedlinux.org.cn/html/yingjianqudong/201303/17-2502.html1.1 I2C总线知识1.1.1  I2C总线物理拓扑结构     I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来 产生I2

2016-07-08 09:59:08 358

转载 第十五章 Linux I2C核心、总线与设备驱动

第十五章  Linux I2C核心、总线与设备驱动本章导读I2C总线仅仅使用SCL、SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。Linux定义了系统的I2C驱动体系结构,在Linux系统中,I2C驱动由3部分组成,即I2C核心、I2C总线驱动和I2C设

2016-07-08 09:57:57 419

转载 Linux下I2C设备驱动开发和实现

I2C总线具有结构简单使用方便的特点。本文描述了linux下I2C驱动的结构,并在此基础上给出了I2C设备驱动和应用的实现。       1  引言       I2C (Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线最主要的优点是其简单性和有效性。由于 接口直接在组件之上,因此I2C总

2016-07-07 17:33:26 437

转载 Linux下使用I2C总线读写 EEPROM(读写i2c从设备通用程序)

1,本文给出了linux 下使用IIC总线读写i2c从设备的实现程序。2, 本文给出了在编程中遇到的几种非常隐蔽的错误的解决方法。3,本文的读写程序非常通用:i2c -d /dev/i2c-1 -s 0x51 0x05 18 -----Write 18 to the register: 0x05 of the i2c-slave address: 0x51i2c -d /dev

2016-07-07 17:27:17 2646

原创 S5PC210的UBOOT移植过程

总结uboot从源码移植的过程,是从飞凌6410的板子中修改而来。1、查看U-Boot目录结构(一般要修改的内容在cpu、board、 common、lib_xx、include等目录下)2、对照自己的开发板的CPU型号、生产厂商、具体型号以及开发板的原理图,修改相应的配置文件,如串口、网卡、 存储器等。第一阶段:1、打开u-boot主目录下的makef

2016-07-07 11:46:45 1277

转载 u-boot移植全过程

(本人也成功移植了linux2.6.27.9到mini2440开发板上,有需要源码的,可以和我联系。EMAIL:[email protected],映像文件在此下载http://blog.chinaunix.net/u2/75270/showart.php?id=1796658)    一直想自已移植一套u-boot,但因为工作忙,一直都没有做,最近时间比较多,买了一套友善之臂的mini

2016-07-06 17:24:07 1741

转载 U-Boot 的移植入门(2)——nand flash识别与操作

第三步、nand flash识别与操作 提供对于Nand的支持,仅仅是提供对于nand操作的支持。首先,要说明一下CFG_NAND_LEGACY的使用。在u-boot的/drivers/mtd/下有两个目录,分别是nand和nand_legacy。在nand目录下的是nand的初始化函数和nand的操作读写函数,是移植的linux的mtd构架。此目录下的文件,只有在定义了CFG_CMD

2016-07-06 16:51:18 491

转载 U-boot主循环main_loop分析

最近在写cortex-M3的一个裸机程序,写的过程中突然想到,虽然这个程序很简单但是我并没有关心cortex-M3的启动代码,很多时候,我只关心主循环在干什么甚至连初始化CPU部分也不需要很细致,这些代码在启动时只执行一遍,之后就再也没有执行了,更多时候,需要关心的是一遍又一遍执行的主循环于是,我觉得,u-boot程序如果不关心初始化,只关注主循环会怎么样呢?想到就做,于是就有

2016-07-06 16:15:29 1619

转载 MTD中的nand驱动初步分析---面向u-boot

之前提到nand驱动的初始化分析,有一个结构体 struct mtd_info始终贯穿这些代码再来分析一下这个结构体的基本功能,如何初始化,如何使用一、分析过程看看结构体的出现和使用方式第一次出现在文件\u-boot-sunxi-sunxi\drivers\mtd\nand\nand.c内:#ifndef CONFIG_SYS_NAND_SELF

2016-07-06 15:53:54 2026

转载 u-boot内nand初始化过程

分析一下u-boot内nand初始化过程,都是我所看所想的一些东西以前从未写过nand相关代码,也没了解过nand的工作方式,理解可能有所偏差,各位请不吝指正。针对soc片上nand控制器而言,硬件初始化应该包含一下几个方面:1、nand模块使用的时钟设置2、既然接了一颗芯片,那么相关几个引脚需要初始化成支持nand的功能3、nand控制寄存器的

2016-07-06 15:27:21 986

转载 u-boot的nand驱动写过程分析

从命令说起,在u-boot输入下列命令:nand write 40008000 0 20000 命令的意思是将内存0x40008000开始的部分写入nand,从nand地址0开始写,写入长度是0x200000回车之后,代码如何运行呢?命令的输入,执行之前都已经分析过了,初始化过程也分析了请参阅:http://blog.csdn.net/andy_wsj/ar

2016-07-06 14:47:33 1565

转载 linux中字符串转换函数 simple_strtoul

Linux内核中提供的一些字符串转换函数:lib/vsprintf.c[html] view plain copy print? 1. unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base)     2. unsign

2016-07-06 14:00:58 689

转载 S5PV210 u-boot LCD驱动 自动更新增加进度条

这里使用的是 ICOOL210开发板 之前我写过一篇2416的u-boot LCD驱动 具体请参照 http://blog.csdn.net/hclydao/article/details/17911747过程基本都是差不多这里实现的效果跟之前的2416的不一样主要是把之前的串口打印的信息显示在LCD上这样自动更新的时候会占用不少时间所以这里我去掉了这个功能在上面加了一个进度条

2016-07-05 15:35:16 834

转载 View类的XML属性、相关方法及说明

XML属性相关方法说明Android:alphasetAlpha(float)设置该组件的透明度android:backgroundsetBackgroundResource(int)设置该组件的背景颜色android:clicka

2016-07-05 13:10:14 251

转载 qt超强绘图控件qwt - 安装及配置

qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等,目前已经应用到许多工业领域,同时qwt也致力于3d的开发。但许多时候,qwt的

2016-07-04 14:58:55 1245

转载 qt超强精美绘图控件 - QCustomPlot一览 及 安装使用教程

1.概述QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用,远比qwt方便和漂亮,可以自己使用两个源文件也可以自己编译成库文件,非常方便。官方网站:http://www.qcustomplot.com/1.0下载地址:http://download.csdn.net/

2016-07-04 14:57:34 886

转载 Android进阶(二十八)上下文菜单ContextMenu使用案例

上下文菜单ContextMenu使用案例前言      回顾之前的应用程序,发现之前创建的选项菜单无法显示了。按照正常逻辑来说,左图中在“商品信息”一栏中应该存在选项菜单,用户可进行分享等操作,但是现在此操作莫名其妙的消失了。写了个测试Demo,如中图所示,一切按照逻辑显示正常。怪就怪在项目中无法显示,起初设想是因为Android系统版本太高问题,但是在别的手机上测试之后发现问题依

2016-07-04 14:44:22 406

转载 Android四大组件之Service精通

(一)概述 本节,我们继续来研究Service(服务)组件,本节将会学习下Android中的AIDL跨进程通信的一些 概念,并不深入到源码层次,暂时知道是什么,会用即可!(二)Service精通 1.Binder机制初涉 1)IBinder和Binder是什么鬼?我们来看看官方文档的中文翻译: IBinder是远程对象的基本接口,是饿了高性能而设计的轻量级远程调用机

2016-07-04 14:42:21 413

转载 linux之GPIO的使用------OK6410

S3C6410的GPIO引脚相对来说比较多,而且大部分引脚都具有多重复用功能,如何在linux上用最简单的方式来控制GPIO这需要我们好好研究一下底层的代码了,其实方法有很多种,鉴于在操作系统端控制GPIO并不像控制传统的单片机那样。这里我将提及一种方法来讲述,这种方法也是我至今看到最简单的方法首先我们打开linux-3.0.1\arch\arm\plat-samsung\incl

2016-07-04 14:28:44 528

16位CRC校验原理与算法分析

16位CRC校验原理与算法分析,供使用参考

2014-04-21

单片机外围电路设计PDF电子书

单片机外围电路设计包括基本的基础单片机外围电路设计,还有高级的电路设计

2009-06-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除