自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

南国有儿女

格物致知

  • 博客(28)
  • 资源 (3)
  • 收藏
  • 关注

转载 总线_设备_驱动注册流程详解

总线_设备_驱动注册流程详解• 注册流程图• 设备一般都需要先注册,才能注册驱动– 现在越来越多的热拔插设备,反过来了。先注册驱动,设备来了再注册设备• 本节使用的命令– 查看总线的命令#ls /sys/bus/– 查看设备号的命令#cat /proc/devices• 设备都有主设备号和次设备号,否则255个

2017-11-26 22:14:10 444

转载 Linux中总线、设备、驱动是如何关联的?

对于Linux驱动开发来说,设备模型的理解是根本,顾名思义设备模型是关于设备的模型,设备的概念就是总线和与其相连的各种设备了。电脑城的IT 工作者都会知道设备是通过总线连到计算机上的,而且还需要对应的驱动才能用,可是总线是如何发现设备的,设备又是如何和驱动对应起来的?总线、设备、驱动,也就是bus、device、driver,在内核里都会有它们自己专属的结构,在include/li

2017-11-26 21:58:18 1036

转载 ARM中MMU原理剖析

一、MMU的产生      许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成

2017-11-24 21:03:17 343

转载 如何实现一个malloc

原文出处: 张洋的博客   任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是C的标准库中提供的一个普通函数,而且实现malloc的基本思想并不复杂,任何一个对C

2017-11-24 20:49:00 220

原创 linux下SD/MMC/SDIO驱动分析

1,什么是SDIO,和SD有什么区别?SDIO是在SD基础上扩展出的一种接口方式,多了CMD5和CMD52和CMD53命令,CMD5用于查询电压,CMD52和CMD53分别用于读写单个寄存器和读写多个数据。和SD卡最大区别就是使用起来灵活性更大。2,SDIO卡linux驱动怎么编写?

2017-11-17 21:25:03 454

转载 U-Boot启动过程完全分析

1.1       U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:       (1)第一阶段的功能Ø  硬件设备初始化Ø  加载U-Boot第二阶段代码到RAM空间Ø  设置好栈Ø  跳转到第二阶段代码入口       (2)第二阶段的功能Ø  初始化本阶段使用的硬件设备Ø  检测系统内存映射Ø  将内核从Fla

2015-05-07 10:55:48 423

转载 linux中链接脚本ld文件详解

今天在看uboot引导Linux部分,发现要对链接脚本深入了解,才能知道各个目标文件的内存分布映像,下面是我看到的一些资料0. Contents1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表达式

2015-05-05 20:59:32 17265 1

原创 USB启动过程分析

现在很多的主控上都带有USB的功能,但是对于初学者来说,这方面应用还是比较棘手,因为usb的不但固件程序需要编写,PC端的驱动也要编写,而且驱动写好了还要写个上位机才能看出效果。这样调试起来十分困难,建议从USB的键盘,鼠标开始做,了解清楚了,再做自己的协议就比较简单了。USB的概念历史啥的这里就不说了。我们先不管具体的数据包格式,这一节先从整个包的层面上简单的说,过程是这样的,-----

2015-01-25 21:37:53 617

转载 ARM 启动过程分析

开始学ARM 时就对芯片上电后的执行顺序很纳闷,但苦于网上的解释都不甚详细,而且常常有学弟学妹来问,含糊其辞总怕误人子弟,想讲诉详细又总不能够。近些天闲来无事,决心好好整理一下启动流程,一劳永逸。我想每个学习51 单片机的同学都应该记得一句话:芯片上电从零地址开始执行程序。说实话,不记得这句还好,记住就更乱了;不是说这句话错,而是说的太片面了。对于低级单片机,的确是这样;但对于

2015-01-25 21:33:51 699

原创 USB主机是如何检测到设备的插入的呢?

首先,在USB集线器的每个下游端口的D+和D-上,  分别接了一个15K欧姆的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平。而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备,  上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上。这样,当设备插入到集线器时,由1.5K的上拉电阻和15K的下拉电阻分压,结果就将差分数据线中的一条拉

2015-01-21 22:20:24 6030

原创 Jlink更新新固件USB连接不上的问题

采购新买了一个jlink,在调试过程中发现不能使用。拿到手后对jink上电

2014-07-23 14:18:19 7108 1

原创 u-boot-1.3.4 移植到S3C2440 (带有某些解析)

移植u-boot-1.3.4到S3C2440一.预备知识:1.       首先,U-Boot1.3.4还没有支持s3c2440,移植仍是用2410的文件稍作修改而成的。2.       2440和2410的区别:2440和2410的区别主要是2440的主频更高,增加了摄像头接口和AC‘97音频接口;寄存器方面,除了新增模 块的寄存器外,移植所要注意的是NAND

2014-07-18 09:21:54 726

原创 ARP在同一网关和不同网关之间传输中的区别

ARP解析过程:如果A主机要对B主机进行数据传输的话1)  A主机先会查看自己的ARP高速缓存中是否有B主机的MAC地址记录。2)  如果A主机的高速缓存中有B主机的记录,则直接通过这个MAC地址进行数据的传输。3)如果A主机的高速缓存中没有B主机的记录,则会向局域网的所有主机广播一个ARP请求,寻找B主机的MAC地址。 4)  当B主机收到A主机广

2014-04-27 12:48:38 2216

原创 路由转发时以太帧的封装机制

交换功能是指路由器在一个接口接收数据包并将其从另一个接口转发出去的过程。交换功能的重要责任是将数据包封装成适用于传出数据链路的正确数据帧类型。对于从一个网络传入,以另一个网络为目的地的数据包,路由器会进行哪些处理?路由器主要执行以下三个步骤:1. 通过删除第 2 层帧头和帧尾来解封第 3 层数据包。2. 检查 IP 数据包的目的 IP 地址以便从路由表中选择最佳路径。

2014-04-26 21:17:05 1929

原创 ARP运行机理

ARP运行在局域网,所谓局域网相对于广域网而言的。本地PC和路由

2014-04-26 21:11:13 614

原创 路由器在转发以太帧时封装机制

最近接手的一个项目用到了以太网通讯,关于以太网通讯之前没有接触过,所以

2014-04-26 21:06:20 3195

原创 GDI绘图中的资源释放

GDI绘图中经常会创建一些画刷、画笔和位图等资源,通常这些资源通过调用函数CreateSolidBrush、CreatePen、CreateCompatibleBitmap等方法创建。这些资源在使用完成以后必须通过调用DeleteObject()函数释放资源,否则会发生资源泄漏,最终导致系统资源被耗光,不能再次成功创建资源。考虑下面一段代码:HBITMAP hBmpLayer1,hBmpO

2013-01-21 17:13:18 631

转载 InitInstance函数

BOOL InitInstance()为什么说它是程序的进入点?还有,那个WinMain函数又有什么作用,这两个函数之间有什么关系吗?BOOL InitInstance()是MFC的CWinApp类的成员函数,而WinMain才是真正的入口点,但是MFC不允许程序中有WinMain这个函数,因为MFC自己编写了WinMain函数,如果程序中再定义就重复定义了,而MFC编写的的WinMain函数

2013-01-19 16:09:11 973

原创 讲讲简单的电源隔离和信号地,电源地的处理

一般在我们的AD系统里面,都有非常明确的模拟电源/模拟地;数字电源数字地,这些的处理相对比较重要.通常的系统中==1,我们常用10~20欧姆电阻来做个模拟电源和数字电源的隔离,可以从下图中看出,当然,使用分组的隔离电源是最好的选择,但是成本相对较高2,处理模拟地数字地时,最终使用1点接连的办法,这个连接点要选在PCB上的电荷平衡点,以防止出现电压差,这个需要PCB和模拟设计良好的基

2012-11-29 14:12:50 23083

原创 code,date,pdate,xdate,idate

code 指定数据是存储在代码区,数据是在编程的时候跟代码一起写入代码存储器,运行过程中不能改变xdata 指定数据是存储在外部数据存储器了data 指定数据存储在内部低128字节数据存储器里,如果变量不指定存储位置,默认就是data型,这部分存储器寻址速度最快idata 指定数据存储在内部低256字节数据存储器里,但51只有128字节内部RAM,52才有256字节pdata 指定

2012-11-19 15:20:53 3577

原创 信号量的理解

1. 信号量的理解 (1)uc/os-ii的信号量是由两个部分组成:一部分是16位的无符号整型信号量的计数值(0~65535);另一部分是等待该信号量的任务组成的等待任务表。(另外参考事件控制块ECB)(2)信号量可以是2值的变量(称为二值信号量),也可以是计数式的。根据信号量的值,内核跟踪那些等待信号量的任务。(3)建立信号量的工作必须在任务级代码中或者多任务启动之前完成。(4)

2012-11-16 08:36:17 652

原创 关于信号量的使用总结

在ucos-II中,为了实现任务之间的同步,用到的同步机制有:信号量,邮箱和消息队列。其中这里我主要说下对信号量的使用经验。信号量在创建时,调用OSSemCreate(INT16U cnt)函数。cnt为信号量的初始值。对cnt赋予不同的值,所起到的作用不同。如果Semp = OSSemCreate(0), 该信号量表示等待一个事件或者多个事件的发生。 例如:我们现在想实现这样一个功能:当有按键按

2012-11-13 11:02:40 591

原创 信号量与优先级翻转的分析

1965年,荷兰学者Dijkstra提出了利用信号量机制解决进程同步问题,信号量正式成为有效的进程同步工具,现在信号量机制被广泛的用于单处理机和多处理机系统以及计算机网络中。信号量S是一个整数,S大于等于零时代表可供并发进程使用的资源实体数,但S小于零时则表示正在等待使用临界区的进程数。Dijkstra同时提出了对信号量操作的PV原语。P原语操作的动作是:  (1)S减1;

2012-11-13 10:02:38 984

原创 mos管GS之间的电阻的作用?

在mos管的驱动电路里,某些场合下,会看到这个电阻,在某些场合中,又没有这个电阻.这个电阻的值比较常见的为5k,10k.但是这个电阻有什么用呢?在分析这个问题之间,可以做一个简单的实验:找一个mos管,让它的G悬空,然后在DS上加电压,结果是怎样?结果是在输入电压才几十V的时候,管子就烧掉了,因为管子导通了.为什么mos管在没有加驱动信号的前提下会导通,那是因为管子的DG,GS之间

2012-11-10 15:28:30 14675

原创 功率MOS管保护电路设计

功率MOS管自身拥有众多优点,但是MOS管具有较脆弱的承受短时过载能力,特别是在高频的应用场合,所以在应用功率MOS管对必须为其设计合理的保护电路来提高器件的可靠性。功率MOS管保护电路主要有以下几个方面:  1)防止栅极 di/dt过高:由于采用驱动芯片,其输出阻抗较低,直接驱动功率管会引起驱动的功率管快速的开通和关断,有可能造成功率管漏源极间的电压震荡,或者有可能造成功率管遭受过高的di/

2012-11-10 14:27:00 10747

原创 防止MOS管击穿的措施

存储和运输---- 在存储和运输中最好用金属容器或者防静电塑料袋包装工作环境---- 组装,调试电路时,工具,仪表,工作台等均应良好接地操作人员---- 要防止操作人员的静电干扰造成的损坏,如不能穿尼龙,化纤衣服上岗工作,必要时应穿防静电服装和带防静电手腕带等。操作注意点---- 把管子焊到电路上或取下来时,都应该先将各极短路,要避免栅极悬空; 没有防静电烙铁时 ,可断电后

2012-11-10 14:17:32 2246

原创 为什么c程序头文件中加#ifdef可以防止重复调用?

一些资料上说在头文件加上类似下面的语句就能防止头文件重复调用:    #ifndef   _TEST_H_    #define   _TEST_H_    ……                                //头文件内容    #endif不是很明白,按照我的理解,如果之前没有定义过“_TEST_H_”,如上的条件编译会让整个头文件失效。另外头文件什么情

2012-11-09 10:30:30 1228

原创 OSTimeTick()

void OSTimeTick (void)   //这个节拍服务函数是在OSTickISR函数中调用的,目的是在时钟节拍到来时,检查每个任务的任务控制块中的.OSTCBDly-1后是否为0,如果是,那么表明这个任务刚才是挂起的状态,此时应改变为就绪态{    OS_TCB *ptcb;     OSTimeTickHook();

2012-11-07 14:22:55 1726

宏电DTU工具盒

用于设置宏电DTU的内部参数

2014-03-20

CPU监视程序源码

用VC写的CPU监视程序,能即时显示CPU的使用百分比,适合初学MFC的人学习

2013-01-15

VC++下MFC串口调试助手源代码及分析

MFC下串口调试助手的源代码,适合学习MFC编程用,适合初学者学习

2013-01-11

空空如也

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

TA关注的人

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