上一页 1 2 3 4 5 6 7 ··· 11 下一页
摘要: U-Boot启动过程(转)U-Boot Practically Porting GuideAuthor: Aaron WongU-Boot的移植之(二)进阶篇:从源代码看系统启动过程利用ZIX开发环境,能够通过比较直观的方式观察u-boot内部,而且可以将代码调试和分析同时进行,是一种了解、移植u-boot的强大工具。 使用arm工具链编译u-boot源代码,得到可以烧录的u-boot.bin文件... 阅读全文
posted @ 2010-04-17 14:12 辛勤耕耘 阅读(4888) 评论(1) 推荐(2) 编辑
摘要: Linux驱动开发必看:详解神秘内核 (转) 本章要先浏览一下内核发出的启动信息,然后再逐个讲解一些有意思的点。 2.1 启动过程 图2-1显示了基于x86计算机Linux系统的启动顺序。第一步是BIOS从启动设备中导入主引导记录(MBR),接下来MBR中的代码查看分区表并从活动分区读取GRUB、LILO或SYSLINUX等引导装入程序,之后引导装入程序会加载压缩后的内核映像并将控制权传递给它。内... 阅读全文
posted @ 2010-04-17 12:33 辛勤耕耘 阅读(1580) 评论(0) 推荐(0) 编辑
摘要: 如何读懂电路图1--元器件(转) 2009-11-25 16:42 电子设备中有各种各样的图。能够说明它们工作原理的是电原理图,简称电路图。 电路图有两种, 一种是说明模拟电子电路工作原理的。它用各种图形符号表示电阻器、电容器、开关、晶体管等实物,用线条把元器件和单元电路按工作原理的关系连接起来。这种图长期以来就一直被叫做电路图。 另一种是说明数字电子电路工作原理的。它用各种图形符号表示门、触发器... 阅读全文
posted @ 2010-04-13 23:33 辛勤耕耘 阅读(3472) 评论(1) 推荐(2) 编辑
摘要: 般而言,一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit)。对于嵌入式系统而言,程序映象都是存储在Flash存储器等一些非易失性器件中的,而在运行时,程序中的RW段必须重新装载到可读写的RAM中。这就涉及到程... 阅读全文
posted @ 2010-04-11 21:12 辛勤耕耘 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 之所以要介绍S3C2410 DMA,因为它对性能太重要了!只有活用了DMA,CPU的性能才能上去!S3C2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同,具体见Datasheet。     这里具体DMA CONTROL寄存器(DCON)的配置说明,进而引出DMA的各种工作方式。 Atomic transfer:指的是D... 阅读全文
posted @ 2010-04-11 13:11 辛勤耕耘 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 我们知道MMU存在的原因是为了支持虚拟存储技术,但不知道你发现了没有,虚拟存储技术的使用会降低整个系统的效率,因为与传统的存储技术相比,虚拟存储技术对内存的访问操作多了一步,就是对地址进行查表(查找映射关系),必须先从虚拟地址中分解出页号和页内偏移,根据页号对描述符进行索引(这就是一个查表过程)得到物理空间的首地址,这样做的代价是巨大的(其实这也正是时间效率与空间效率之间矛盾的一个体现),对某些嵌... 阅读全文
posted @ 2010-04-11 13:01 辛勤耕耘 阅读(241) 评论(0) 推荐(0) 编辑
摘要:  MMU,全称Memory Manage Unit, 中文名——存储器管理单元。     许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难... 阅读全文
posted @ 2010-04-11 11:54 辛勤耕耘 阅读(557) 评论(0) 推荐(0) 编辑
摘要:         作者:蔡于清     ARM920T的异常向量表(Exception Vectors)简介: 有两种存放方式,一种是低端存放(从0x00000000处开始存放),另一种是高端存放(从0xfff000000处开始存放)。关于为什么要分两种方式进行存放参考MMU的文章,本文采用低端模式... 阅读全文
posted @ 2010-04-11 10:06 辛勤耕耘 阅读(570) 评论(0) 推荐(0) 编辑
摘要: // i386 is little_endian.#ifndef LITTLE_ENDIAN#define LITTLE_ENDIAN (1) //BYTE ORDER#else#error Redefine LITTLE_ORDER#endif//Mac头部,总长度14字节typedef struct _eth_hdr{unsigned char dstmac[6]; //目标mac地址unsi... 阅读全文
posted @ 2010-01-21 21:19 辛勤耕耘 阅读(1520) 评论(0) 推荐(0) 编辑
摘要: UDT是建立在UDP协议基础之上的应用层协议,其最终是通过UDP协议来接发数据。udt包结构解释最近在看udt协议的一些知识,先把包结构放上来UDT包结构总体结构:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Packet Header(包头)Data/Control Information Fie... 阅读全文
posted @ 2009-12-03 13:46 辛勤耕耘 阅读(723) 评论(0) 推荐(0) 编辑
摘要: NDIS 中间层驱动(IM Driver)的安装与卸载过程一.绑定过程1. DriverEntry中间层驱动对上层来说,扮演一个Miniport Driver的角色,它在上边沿向NDIS注册一组Miniportxxx函数;对于下层Miniport Driver来说,中间层驱动扮演一个Protocol Driver的角色,因此它在下边沿向NDIS注册一组Protocolxxx函数。Miniport ... 阅读全文
posted @ 2009-12-03 10:18 辛勤耕耘 阅读(1091) 评论(0) 推荐(0) 编辑
摘要: http://www.cppblog.com/sandy/archive/2007/03/08/19425.html1.启动 1)直接调试: gdb program [core] cdb program or cdb -z DumpFile 2)attach方式 gdb attach pid cdb -pn ExeName or cdb -p pid2.显示堆栈 GDB: bt CDB: k3. ... 阅读全文
posted @ 2009-12-03 10:17 辛勤耕耘 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 想要实现类似设备管理器的功能,其实也不是很难,无非就是调用一些API函数,就像本文描述的,采用的API函数就是SetupDi系列的函数。不过这类函数有很多,具体的请参见MSDN,而实现设备启用、停用仅需要用到的就只有5个函数:SetupDiGetClassDevs // 获取设备信息集SetupDiEnumDeviceInfo //从设备信息集中枚举每个设备的具体信息SetupDiGetDevic... 阅读全文
posted @ 2009-11-25 10:58 辛勤耕耘 阅读(2717) 评论(0) 推荐(0) 编辑
摘要: 链 接: http://bbs.pediy.com/showthread.php?t=65053从NdisIntermediateMiniportdriver说吧,参考passthruNTSTATUSDriverEntry(INPDRIVER_OBJECTDriverObject,INPUNICODE_STRINGRegistryPath)程序入口没什么好说的而NDIS不符合WDM往下到了Ndis... 阅读全文
posted @ 2009-11-21 16:01 辛勤耕耘 阅读(1624) 评论(0) 推荐(0) 编辑
摘要: setsockopt小结  1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用  closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:  BOOL bReuseaddr=TRUE;  setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReus... 阅读全文
posted @ 2009-11-21 15:59 辛勤耕耘 阅读(407) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 11 下一页