摘要: 所谓字节对齐就是C/C++编译器为了加速CPU寻址速度而采用的一种策略,通常的表现是将结构中某些不足CPU字长的成员填入若干字节的垃圾值使整个结构的大小成为CPU字长的整数倍。 一.什么是字节对齐,为什么要对齐? 现代计算机中内存空... 阅读全文
posted @ 2009-02-05 20:43 陈广强 阅读(222) 评论(0) 推荐(0) 编辑
摘要: DRAM:动态随机存取存储器,需要不断的刷新,才能保存数据。 而且是行列地址复用的,许多都有页模式。 SRAM:静态的随机存取存储器,加电情况下,不需要刷新,数据 不会丢失,而且,一般不是行列地址复用的。 SDRAM:同步的DRAM,即数据的读写需要时钟来同步。 DRAM和SDRAM由于实现工艺问题,容量较SRAM大。但是读写速度不如SRAM,但是现在,SDRAM的速度也已经很快了,时钟好... 阅读全文
posted @ 2009-02-05 18:55 陈广强 阅读(766) 评论(0) 推荐(0) 编辑
摘要: 一般在ARM架构的CPU上,物理地址都是统一编址的,寻址空间为4GB(32Bit CPU)。也就是说,针对一个ARM的处理器,它可以访问的物理空间是4GB。在WinCE中,ARM中的4GB物理地址空间将被映射为512MB的虚拟内存空间。 OEMAddressTable就是一个4GB物理地址空间到WinCE Kernel中的512MB虚拟地址空间的映射表。 在BSP中,会定义OEM... 阅读全文
posted @ 2009-02-05 16:12 陈广强 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 在WinCE下面,创建工程,然后编译是需要花很长时间的。当我们第一编译完工程以后,如果需要改我们的驱动或者BSP,我们是不需要重新编译整个工程的: 1. 如果更改了driver,以WinCE6.0为例,我们可以在菜单里面选择“build”->“Open Release Directory in Build Window” ,然后在弹出的命令行窗口中,通过dos命令切换到你要编译的... 阅读全文
posted @ 2009-02-05 16:08 陈广强 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 先来谈一下flash,flash是一种非易失存储器,一般flash存储设备分为Nandflash和Norflash。这两种flash各有优缺点。在读写速度上,norflash的读速度快一些,nandflash的写速度会快一些。Nandflash的容量一般都比Norflash大很多,而且相比价格比较便宜。但是Norflash支持XIP,而nandflash不支持,而且Nandflas... 阅读全文
posted @ 2009-02-05 15:58 陈广强 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 在WinCE系统中,当我们完成了相关的开发和系统定制工作以后,会编译WinCE系统,最后生成NK.bin和NK.nb0。我现在用WinCE6.0在自己的PC上面编译一次用时19分16秒(有一天无聊,就测了一下)。下面介绍一下WinCE系统的编译过程,大致分为4个阶段:编译阶段(Compile phase),系统产生阶段(Sysgen phase),文件拷贝阶段(Release copy ... 阅读全文
posted @ 2009-02-05 15:48 陈广强 阅读(210) 评论(0) 推荐(0) 编辑
摘要: DAT文件用于在WinCE启动的时候,定义文件系统的结构,也就是定义有哪些文件夹,哪些文件在什么位置等。每次冷启动的时候,Filesys模块会根据.dat文件中的内容来创建目录以及目录下的文件。 在BSP中我们可以找到platform.dat。在创建一个WinCE的工程以后,可以在工程目录下面找到project.dat。可以在这两个.dat文件中定义我们所需的根目录以及... 阅读全文
posted @ 2009-02-05 15:40 陈广强 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1. REG文件 注册表文件,这个和Windows操作系统中使用的注册表文件基本一样,在BSP中主要是Platform.reg,该注册表文件描述了和硬件平台相关的配置,大部分是用来描述驱动的相关信息。 注册标的格式如下: [KEY1] "ValueName1"={Value Type}:{data} "ValueName2"={Value Type}:{data} [K... 阅读全文
posted @ 2009-02-05 15:15 陈广强 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 在WINCE中,reg文件和bib文件是两种重要的文件,它影响了整个的CE系统。在解析的过程中,原始的Common.bib, Config.bib, Project.bib, Platform.bib等文件会合成为ce.bib,而原始的Common.reg, Project.reg, Platform.reg等文件会合成Reginit.ini文件,并进一步压缩成为default.ft... 阅读全文
posted @ 2009-02-05 15:02 陈广强 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 在WinCE中使用的一个重要的文件就是BIB文件,全称Binary Image Builder File。在WinCE的编译过程中会用到BIB文件,应该是在最后的Makeimg阶段。所有的BIB文件会被合并成CE.bib文件,然后Romimage.exe会根据BIB文件中的描述来决定哪些文件最终被包含到WinCE image中。当然,BIB文件还决定了WinCE设备内存的分配,其中定义... 阅读全文
posted @ 2009-02-05 14:42 陈广强 阅读(421) 评论(0) 推荐(0) 编辑
摘要: DM9000_REGS为一个结构体,存放DM9000的寄存器 DM9000_REGS *g_pDM9000; //定义一个该结构体类型的指针 BYTE *pAddress; g_pDM9000=(volatile DM9000_REGS*)pAddress; //pAddress和g_pDM9000的类型不一样,不能直接赋值,(volat... 阅读全文
posted @ 2009-02-05 14:01 陈广强 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 1. Dirs文件 关于Dirs文件,就是指定要编译的路径,这个地球人都知道。还是简单介绍一下。按照文档上面介绍有三种定义:DIRS,DIRS_CE和OPTIONAL_DIRS。 DIRS:就是指定要编译的目录。 DIRS_CE:只有目录下的源代码用于WinCE的映像文件时,才编译该目录。 OPTIONAL_DIRS:指定可以选择编译的目录。比如:OPTIONAL_DIRS=proj1,... 阅读全文
posted @ 2009-02-05 13:29 陈广强 阅读(271) 评论(0) 推荐(0) 编辑