<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[南国有儿女]]></title><description><![CDATA[ 格物致知]]></description><link>https://blog.youkuaiyun.com/wtbcx2012</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wtbcx2012]]></copyright><item><title><![CDATA[总线_设备_驱动注册流程详解]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/78640489</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/78640489</guid><author>wtbcx2012</author><pubDate>Sun, 26 Nov 2017 22:14:10 +0800</pubDate><description><![CDATA[总线_设备_驱动注册流程详解

• 注册流程图







• 设备一般都需要先注册，才能注册驱动

– 现在越来越多的热拔插设备，反过来了。先注册驱动，设备来了再注册

设备

• 本节使用的命令

– 查看总线的命令#ls /sys/bus/

– 查看设备号的命令#cat /proc/devices

• 设备都有主设备号和次设备号，否则255个]]></description><category></category></item><item><title><![CDATA[Linux中总线、设备、驱动是如何关联的？]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/78640357</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/78640357</guid><author>wtbcx2012</author><pubDate>Sun, 26 Nov 2017 21:58:18 +0800</pubDate><description><![CDATA[对于Linux驱动开发来说，设备模型的理解是根本，顾名思义设备模型是关于设备的模型，设备的概念就是总线和与其相连的各种设备了。

电脑城的IT 工作者都会知道设备是通过总线连到计算机上的，而且还需要对应的驱动才能用，可是总线是如何发现设备的，设备又是如何和驱动对应起来的？

总线、设备、驱动，也就是bus、device、driver，在内核里都会有它们自己专属的结构，在include/li]]></description><category></category></item><item><title><![CDATA[ARM中MMU原理剖析]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/78628292</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/78628292</guid><author>wtbcx2012</author><pubDate>Fri, 24 Nov 2017 21:03:17 +0800</pubDate><description><![CDATA[一、MMU的产生

      许多年以前，当人们还在使用DOS或是更古老的操作系统的时候，计算机的内存还非常小，一般都是以K为单位进行计算，相应的，当时的程序规模也不大，所以内存容量虽然小，但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大，应用程序的规模也随之膨胀起来，终于一个难题出现在程序员的面前，那就是应用程序太大以至于内存容纳不下该程序，通常解决的办法是把程序分割成]]></description><category></category></item><item><title><![CDATA[如何实现一个malloc]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/78628165</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/78628165</guid><author>wtbcx2012</author><pubDate>Fri, 24 Nov 2017 20:49:00 +0800</pubDate><description><![CDATA[原文出处： 张洋的博客   

任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间，并且在不再使用时可以通过free释放掉。但是，许多程序员对malloc背后的事情并不熟悉，许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上，malloc只是C的标准库中提供的一个普通函数，而且实现malloc的基本思想并不复杂，任何一个对C]]></description><category></category></item><item><title><![CDATA[linux下SD/MMC/SDIO驱动分析]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/78565376</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/78565376</guid><author>wtbcx2012</author><pubDate>Fri, 17 Nov 2017 21:25:03 +0800</pubDate><description><![CDATA[1，什么是SDIO，和SD有什么区别？
SDIO是在SD基础上扩展出的一种接口方式，多了CMD5和CMD52和CMD53命令，CMD5用于查询电压，CMD52和CMD53分别用于读写单个寄存器和读写多个数据。
和SD卡最大区别就是使用起来灵活性更大。
2，SDIO卡linux驱动怎么编写？]]></description><category></category></item><item><title><![CDATA[U-Boot启动过程完全分析]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/45558151</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/45558151</guid><author>wtbcx2012</author><pubDate>Thu, 07 May 2015 10:55:48 +0800</pubDate><description><![CDATA[1.1       U-Boot工作过程
 
U-Boot启动内核的过程可以分为两个阶段，两个阶段的功能如下：
       （1）第一阶段的功能
Ø  硬件设备初始化
Ø  加载U-Boot第二阶段代码到RAM空间
Ø  设置好栈
Ø  跳转到第二阶段代码入口
       （2）第二阶段的功能
Ø  初始化本阶段使用的硬件设备
Ø  检测系统内存映射
Ø  将内核从Fla]]></description><category></category></item><item><title><![CDATA[linux中链接脚本ld文件详解]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/45508113</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/45508113</guid><author>wtbcx2012</author><pubDate>Tue, 05 May 2015 20:59:32 +0800</pubDate><description><![CDATA[今天在看uboot引导Linux部分，发现要对链接脚本深入了解，才能知道各个目标文件的内存分布映像，下面是我看到的一些资料
0. Contents
1. 概论
2. 基本概念
3. 脚本格式
4. 简单例子
5. 简单脚本命令
6. 对符号的赋值
7. SECTIONS命令
8. MEMORY命令
9. PHDRS命令
10. VERSION命令
11. 脚本内的表达式
]]></description><category></category></item><item><title><![CDATA[USB启动过程分析]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/43120823</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/43120823</guid><author>wtbcx2012</author><pubDate>Sun, 25 Jan 2015 21:37:53 +0800</pubDate><description><![CDATA[现在很多的主控上都带有USB的功能，但是对于初学者来说，这方面应用还是比较棘手，因为usb的不但固件程序需要编写，PC端的驱动也要编写，而且驱动写好了还要写个上位机才能看出效果。这样调试起来十分困难，建议从USB的键盘，鼠标开始做，了解清楚了，再做自己的协议就比较简单了。
USB的概念历史啥的这里就不说了。我们先不管具体的数据包格式，这一节先从整个包的层面上简单的说，过程是这样的，
-----]]></description><category></category></item><item><title><![CDATA[ARM 启动过程分析]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/43120737</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/43120737</guid><author>wtbcx2012</author><pubDate>Sun, 25 Jan 2015 21:33:51 +0800</pubDate><description><![CDATA[开始学ARM 时就对芯片上电后的执行顺序很纳闷，但苦于网上的解释都不甚详细，而且常常有学弟学
妹来问，含糊其辞总怕误人子弟，想讲诉详细又总不能够。近些天闲来无事，决心好好整理一下启动流程，
一劳永逸。
我想每个学习51 单片机的同学都应该记得一句话：芯片上电从零地址开始执行程序。
说实话，不记得这句还好，记住就更乱了；不是说这句话错，而是说的太片面了。对于低级
单片机，的确是这样；但对于]]></description><category></category></item><item><title><![CDATA[USB主机是如何检测到设备的插入的呢？]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/42982629</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/42982629</guid><author>wtbcx2012</author><pubDate>Wed, 21 Jan 2015 22:20:24 +0800</pubDate><description><![CDATA[首先，在USB集线器的每个下游端口的D+和D-上，  
分别接了一个15K欧姆的下拉电阻到地。这样，在集线器的端口悬空时，就被这两个下拉电阻拉到了低电平。而在USB设备端，在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备，  
上拉电阻是接在D+上；而低速设备则是上拉电阻接在D-上。这样，当设备插入到集线器时，由1.5K的上拉电阻和15K的下拉电阻分压，结果就将差分数据线中的一条拉]]></description><category></category></item><item><title><![CDATA[Jlink更新新固件USB连接不上的问题]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/38063009</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/38063009</guid><author>wtbcx2012</author><pubDate>Wed, 23 Jul 2014 14:18:19 +0800</pubDate><description><![CDATA[采购新买了一个jlink，在调试过程中发现不能使用。拿到手后对jink上电]]></description><category></category></item><item><title><![CDATA[u-boot-1.3.4 移植到S3C2440 （带有某些解析）]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/37921885</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/37921885</guid><author>wtbcx2012</author><pubDate>Fri, 18 Jul 2014 09:21:54 +0800</pubDate><description><![CDATA[移植u-boot-1.3.4到S3C2440

一．预备知识：

1.       首先，U-Boot1.3.4还没有支持s3c2440，移植仍是用2410的文件稍作修改而成的。

2.       2440和2410的区别：

2440和2410的区别主要是2440的主频更高，增加了摄像头接口和AC‘97音频接口；寄存器方面，除了新增模 块的寄存器外，移植所要注意的是NAND
]]></description><category></category></item><item><title><![CDATA[ARP在同一网关和不同网关之间传输中的区别]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/24582831</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/24582831</guid><author>wtbcx2012</author><pubDate>Sun, 27 Apr 2014 12:48:38 +0800</pubDate><description><![CDATA[ARP解析过程：

如果A主机要对B主机进行数据传输的话

1）  A主机先会查看自己的ARP高速缓存中是否有B主机的MAC地址记录。

2）  如果A主机的高速缓存中有B主机的记录，则直接通过这个MAC地址进行数据的传输。

3）如果A主机的高速缓存中没有B主机的记录，则会向局域网的所有主机广播一个ARP请求，寻找B主机
的MAC地址。
 

4）  当B主机收到A主机广]]></description><category></category></item><item><title><![CDATA[路由转发时以太帧的封装机制]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/24555201</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/24555201</guid><author>wtbcx2012</author><pubDate>Sat, 26 Apr 2014 21:17:05 +0800</pubDate><description><![CDATA[交换功能是指路由器在一个接口接收数据包并将其从另一个接口转发出去的过程。交换功能的重要责任是将数据包封装成适用于传出数据链路的正确数据帧类型。

对于从一个网络传入，以另一个网络为目的地的数据包，路由器会进行哪些处理？路由器主要执行以下三个步骤：

1. 通过删除第 2 层帧头和帧尾来解封第 3 层数据包。

2. 检查 IP 数据包的目的 IP 地址以便从路由表中选择最佳路径。
]]></description><category></category></item><item><title><![CDATA[ARP运行机理]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/24554981</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/24554981</guid><author>wtbcx2012</author><pubDate>Sat, 26 Apr 2014 21:11:13 +0800</pubDate><description><![CDATA[ARP运行在局域网，所谓局域网相对于广域网而言的。本地PC和路由]]></description><category></category></item><item><title><![CDATA[路由器在转发以太帧时封装机制]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/24554437</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/24554437</guid><author>wtbcx2012</author><pubDate>Sat, 26 Apr 2014 21:06:20 +0800</pubDate><description><![CDATA[最近接手的一个项目用到了以太网通讯，关于以太网通讯之前没有接触过，所以]]></description><category></category></item><item><title><![CDATA[GDI绘图中的资源释放]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/8525645</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/8525645</guid><author>wtbcx2012</author><pubDate>Mon, 21 Jan 2013 17:13:18 +0800</pubDate><description><![CDATA[GDI绘图中经常会创建一些画刷、画笔和位图等资源，通常这些资源通过调用函数CreateSolidBrush、CreatePen、CreateCompatibleBitmap等方法创建。这些资源在使用完成以后必须通过调用DeleteObject()函数释放资源，否则会发生资源泄漏，最终导致系统资源被耗光，不能再次成功创建资源。
考虑下面一段代码：
HBITMAP hBmpLayer1,hBmpO]]></description><category></category></item><item><title><![CDATA[InitInstance函数]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/8520272</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/8520272</guid><author>wtbcx2012</author><pubDate>Sat, 19 Jan 2013 16:09:11 +0800</pubDate><description><![CDATA[BOOL InitInstance()为什么说它是程序的进入点？还有，那个WinMain函数又有什么作用，这两个函数之间有什么关系吗？
BOOL InitInstance()是MFC的CWinApp类的成员函数，而WinMain才是真正的入口点，但是MFC不允许程序中有WinMain这个函数，因为MFC自己编写了WinMain函数，如果程序中再定义就重复定义了，而MFC编写的的WinMain函数]]></description><category></category></item><item><title><![CDATA[讲讲简单的电源隔离和信号地，电源地的处理]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/8238665</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/8238665</guid><author>wtbcx2012</author><pubDate>Thu, 29 Nov 2012 14:12:50 +0800</pubDate><description><![CDATA[一般在我们的AD系统里面,都有非常明确的模拟电源/模拟地;数字电源数字地,这些的处理相对比较重要.通常的系统中==

1,我们常用10~20欧姆电阻来做个模拟电源和数字电源的隔离,可以从下图中看出,当然,使用分组的隔离电源是最好的选择,但是成本相对较高

2,处理模拟地数字地时,最终使用1点接连的办法,这个连接点要选在PCB上的电荷平衡点,以防止出现电压差,这个需要PCB和模拟设计良好的基]]></description><category></category></item><item><title><![CDATA[code，date,pdate,xdate，idate]]></title><link>https://blog.youkuaiyun.com/wtbcx2012/article/details/8199726</link><guid>https://blog.youkuaiyun.com/wtbcx2012/article/details/8199726</guid><author>wtbcx2012</author><pubDate>Mon, 19 Nov 2012 15:20:53 +0800</pubDate><description><![CDATA[code 指定数据是存储在代码区，数据是在编程的时候跟代码一起写入代码存储器，运行过程中不能改变
xdata 指定数据是存储在外部数据存储器了
data 指定数据存储在内部低128字节数据存储器里，如果变量不指定存储位置，默认就是data型，这部分存储器寻址速度最快
idata 指定数据存储在内部低256字节数据存储器里，但51只有128字节内部RAM，52才有256字节
pdata 指定]]></description><category></category></item></channel></rss>