自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

原创 Linux下运行OProfile进行系统性能分析

Introduce how to use oprofile for embedded linux.

2011-05-30 15:20:00 13690 5

原创 谈谈WinCE应用程序的升级

Show a way of application update in WinCE.

2011-02-01 10:38:00 8946 1

原创 WinCE Heartbeat Message的实现

Introduce the implement of hearteat message on WinCE.

2010-11-23 13:22:00 5272

原创 WinCE 与Linux之间的签名验证及加解密

Introduce data encryption/decryption and signature verification between WinCE and Linux

2010-09-13 06:37:00 6090 1

原创 WinCE Security --- 文件及证书签名与验证

Introduce howto sign a file or x509 certificate and verify the signature.

2010-08-23 08:03:00 5906 2

原创 WinCE Security --- X509证书及私钥的导入

Introduce howto import X509 certificate and private/public key pair.

2010-08-09 02:43:00 7373 1

原创 WinCE Security --- 系统X509证书库定制

Introduce howto customize the system X509 certificates

2010-07-31 08:00:00 5015 1

原创 WinCE Security---简介

Introduce WinCE security module.

2010-07-24 09:36:00 4807 1

原创 WinCE Subproject使用介绍

Introduce subproject in WinCE

2010-06-28 01:44:00 5800 5

原创 WinCE系统字体的设置

作者:ARM-WinCE 确实很久没有写Blog了,感觉有些对不住曾经看我blog的朋友。刚从美国回来,由于项目原因,春节都在美国工作,现在有点时间,先写一篇简单的,介绍一下WinCE字体的设置。 WinCE系统字体的设置是通过注册表实现的,目前提供以下几种系统字体的设置:系统字体:HKEY_LOCAL_MACHINE/SYSTEM/GDI/SysFnt 菜单字体:HKEY

2010-04-19 15:36:00 13600 8

原创 WinCE系统声音定制

作者:ARM-WinCE   2010的第一篇Blog,介绍一下WinCE系统声音的定制。说白了,就是设置注册表。WinCE系统启动的开机音乐,点击触摸屏以及键盘输入的按键音,还有系统运行过程中的各种声音其实都是在注册表里面预先设置好的。这里做个简单介绍: 整个WinCE系统声音注册表设置如下:[HKEY_CURRENT_USER/ControlPanel/Volume

2010-01-16 17:36:00 10253 11

原创 WinCE系统 USB Serial实现

作者:ARM-WinCE  回国2周了,时差已经倒回来了,可以继续我的博客了。这里介绍一下USB Serial。USB Serial就是指基于USB的虚拟串口,实际上是将USB作为一个串口设备来进行操作。对于应用程序来说,通讯起来比较简单,就是打开串口,然后接收发送数据就可以了。下面介绍一下具体步骤: 1. 选择USB Client Serial组件在定制WinCE的时

2009-12-11 14:49:00 12562 19

原创 WinCE系统 USB RNDIS实现

作者:ARM-WinCE 好久不写博客了,这段时间实在太忙,和美国人,印度人一起做项目,时差是个大问题,沟通也占用了很多时间,发邮件,开电话会议成了家常便饭。不管怎样,我在博客的道路上也走了快2年了,我会继续坚持写下去,在我有时间的时候。不多废话了,今天说说RNDIS。 RNDIS是指Remote NDIS,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在U

2009-09-15 17:22:00 17458 17

原创 WinCE系统USB Mass Storage实现

作者:ARM-WinCE Mass Storage的实际应用就是U盘,目标板和PC通过USB相连,PC可以把目标板识别为U盘,在很多产品上都很常用。这里介绍一下在WinCE系统中U盘功能的实现。 在谈WinCE的USB Mass Storage实现之前,首先要具备以下条件:1. 开发板支持USBClient设备。2. 开发板上至少有一种存储设备可以被用来映射为U盘。

2009-08-20 15:52:00 9689 6

原创 WinCE系统USB功能定制

作者:ARM-WinCE USB的广泛应用就不用多说了,相信目前的各个领域的嵌入式产品中,很少有不用USB的。USB是主从结构的,分为USB Host和USB Slave,从USB1.0,USB1.1到现在的USB2.0,基于USB2.0还有USB OTG,也就是同时支持Host和Slave设备。目前最新的好像是USB3.0,刚开始普及吧。 在WinCE6.0中,对USB是有很好的

2009-08-12 15:27:00 17377 8

原创 WinCE MUI的实现

作者:ARM-WinCE MUI是指多语言的支持,可以在WinCE系统中支持多种语言,并根据需要进行切换。下面介绍一下具体的实现: 1. 添加多种语言:创建一个WinCE工程,然后在”Solution Explorer”中右击工程,选择”Properties”,会弹出一个对话框。在左侧的列表中选择”Local”,在右侧选择所要支持的语言,这里我选择了French,Japan

2009-07-30 16:11:00 7518 6

原创 WinCE远程桌面的实现

作者:ARM-WinCE WinCE支持远程桌面功能,可以在PC端访问目标设备的WinCE桌面。这个功能在调试的时候很有用。有些时候,你的目标板不带显示设备,这时你想访问目标板的WinCE系统感觉很不爽,毕竟习惯了桌面操作。通过WinCE远程桌面,你可以在PC上面访问目标板的WinCE桌面并进行操作。 下面来介绍一下具体步骤:1. 选择支持WinCE远程桌面的组件:在Win

2009-07-17 09:52:00 13705 12

原创 WinCE控制面板添加应用程序

作者:ARM-WinCEWinCE系统中的控制面板和Windows系统中的控制面板原理是一样的,里面就是包含了一些应用程序。WinCE系统的控制面板由Ctlpnl.exe,Control.exe和一些.cpl文件组成,其中Ctlpnl.exe和Control.exe用于控制控制面板的文件夹显示和架构,而.cpl文件和控制面板中的实际应用程序相对应。 WinCE的控制面板中的每个应用

2009-07-10 10:22:00 7653 4

原创 WinCE开始菜单中添加应用程序

作者:ARM-WinCE 添加应用程序到WinCE的开始菜单中应该是一个比较常用的功能,在产品定制的时候,添加本产品的应用到StartMenu中,让用户可以方便启动程序,下面就来介绍一下: 先说一下原理,其实在WinCE启动以后,点击Start,然后点击Programs,里面所能看到的应用其实也都是以文件的形式存放的,它们存放在/Windows/Programs目录下面,都是一

2009-07-01 14:32:00 7377 7

原创 WinCE文件目录定制及内存调整

作者:ARM-WinCE 这个说起来比较简单,WinCE的文件目录结构以及文件的位置都是在DAT文件中定义的。所有的dat文件会在WinCE编译时合并成initobj.dat文件,WinCE会根据DAT中的描述生成相应目录。关于DAT的格式,可以参考我以前的一片文章:”WinCE BSP的DAT文件介绍”,看了就明白了。 我一般在project.dat中定制自己想要的目录结

2009-06-26 09:57:00 7994

原创 WinCE桌面墙纸及图标更换

作者:ARM-WinCE 网上关于WinCE更换墙纸的文章一大堆,我也来写一篇,和网上已有的文章没什么区别。以前写的WinCE Blog大部分都是BSP相关的,以后打算写点WinCE系统定制方面的,就从这里开始吧。 关于WinCE的墙纸,是在注册表中设置的,编译完WinCE工程以后,所有的reg文件中的内容都会被合并为reginit.ini文件。打开这个文件,可以找到如下内容:

2009-06-19 13:14:00 5402 3

原创 S3C6410的DRAM控制器

作者:ARM-WinCE 我们在项目中更换了DRAM,所以需要重新配置S3C6410的DRAM控制器,结果发现S3C6410中的DRAM控制器还是挺复杂的。 S3C6410支持两个DRAM片选,可以分别接最大256MB的内存,该处理器用的DRAM控制器是来自ARM的PrimeCell Dynamic Memory Controller(PL340)。只看S3C6410的Da

2009-06-12 16:36:00 8052 7

原创 S3C6410启动模式介绍

作者:ARM-WinCE 目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动。我认为S3C6410的User Manual并没有说的很清楚,所以我在最开始使用的时候,也对其启动模式有一些误解,下面就我个人的理解,介绍一下S3C6410的启动。 先读一下S3C6410 User

2009-06-01 08:07:00 17194 35

原创 浅谈ARM裸板调试

 作者:ARM-WinCE 我所说的ARM裸板调试是指ARM的PCB板制作完后,贴片回来的板子,不但没有任何程序,上电都是第一次。之所以写一篇blog,是因为最近调试了一块ARM板,基于S3C6410的,但是我们把原来的M-DDR DRAM和Nandflash全部都换掉了,硬件做了不小的改动。以前也做过类似的裸板调试,从ARM7到ARM9,再到现在的ARM11。今天就来写一篇ARM裸板调试

2009-05-15 15:46:00 13539 24

原创 S3C6410处理器介绍

 作者:ARM-WinCE S3C64xx系列的应用处理器芯片是三星主推的,三星目前推出了S3C6400和S3C6410,都是基于ARM11架构的,而且硬件管脚兼容,应该说大致的功能基本相同,比较明显的区别就是S3C6410带有2D/3D硬件加速。 大致看了一下,S3C6410是一个强大的应用处理器,我不是在这里做广告,呵呵,因为我正在使用它,有了它,可以做很多东西。 下面,我

2009-05-09 18:12:00 47120 12

原创 WinCE OAL中的OEMIoControl函数

作者:ARM-WinCE关于OEMIoControl函数,我在2008年1月份写过一篇blog叫“WinCE BSP中OAL层中的OEMIoControl介绍”,已经比较详细的介绍了OEMIoControl,今天在这里只是对OEMIoControl中比较常用的case说一说。看看PB的文档就知道OEMIoControl可以包含很多case而且被分了类。下面就我个人接触到的和比较常用的做个说

2009-04-22 16:31:00 4292

原创 WinCE OAL中的Profiler的实现

作者:ARM-WinCE OAL中的Profiler的实现是指Monte Carlo Profiler,作为WinCE Kernel profiler的一种,它主要是通过高精度Timer的中断来进行周期性的计数,从而统计各函数的sample数,达到评测某一个模块或者函数的性能的目的。 关于OAL中Monte Carlo Profiler的实现,有一篇不错的文章如下:http://b

2009-04-15 17:33:00 2710 1

原创 WinCE OAL中的RAM定制函数

作者:ARM-WinCE 在WinCE系统中,Kernel是如何使用内存的,如何知道内存的大小?是通过config.bib文件的描述,我们会在config.bib文件中MEMORY段定义WinCE内核所占用RAM的起始地址和大小,比如:MEMORY     NK      80001000  01E00000  RAMIMAGEBIB文件的格式以前介绍过,这里不重复了,在confi

2009-04-12 18:21:00 2989

原创 WinCE OAL中的Memory函数介绍

作者:ARM-WinCE 在BSP开发中经常会用到物理地址与虚拟地址的转换,一般都是基于物理地址获得相应的虚拟地址来访问硬件。在WinCE6.0中,可以在WINCE600/Platform/Common/Src/Inc/Oal_memory.h文件中找到相关的操作函数,这些函数用来虚拟地址与物理地址之间的转换,它们都是基于OEMAddressTable表的。也就是说,首先要在OEMAddr

2009-03-31 15:03:00 3701

原创 WinCE OAL中的电源管理函数

作者:ARM-WinCE  在WinCE OAL中的电源管理主要由OEMIdle和OEMPowerOff两个函数实现。应该说OEMIdle实现的是处理器级的电源管理,而OEMPowerOff实现的是板级的电源管理。在WinCE系统运行的时候,如果没有任何线程可以执行,那么内核就会调用OEMIdle函数。一般在OEMIdle中,处理器都会进入sleep模式或者idle模式,这取决于处

2009-03-25 17:55:00 3618 2

原创 WinCE OAL的系统Timer分析

作者:ARM-WinCE 对于任何操作系统来说,系统Timer就像是OS的心脏,本质来说,操作系统就是中断驱动的。在WinCE中,系统Timer会在OAL中实现,一般在OEMInit函数中进行初始化,而且都是在Interrupt初始化之后进行。 一般WinCE的系统Timer有两种实现方法,一种是Fixed Tick,另一种是Variable Tick。一般比较常用的是Fixed

2009-03-20 12:35:00 4413 1

原创 WinCE OAL中的中断处理

作者:ARM-WinCE 关于WinCE的中断处理,OAL中主要是实现了ISR部分,一般IST会在设备驱动中实现。推荐一篇WinCE的中断架构的文章,如下:http://msdn.microsoft.com/zh-cn/library/ms836807.aspx 建议对WinCE中断不了解的朋友,可以先看看这片文章。架构如图:  这张图想必很多人都见过,主要

2009-03-03 16:46:00 5150 2

原创 WinCE OAL中的Cache操作函数介绍

作者:ARM-WinCE 在OAL中有两个和Cache相关的函数,一个是OEMARMCacheMode,另一个是OEMCacheRangeFlush函数,这两个函数在ARM处理器上是必须实现的。 OEMARMCacheMode函数用于设置基于ARM处理器页表的cache模式,主要是设置MMU页表中的C,B控制位,达到控制相应的存储空间的缓冲特性的目的。一般默认C和B控制位都被设置为

2009-02-25 20:21:00 3610 4

原创 WinCE OAL中的Global Variables介绍

作者:ARM-WinCE 在OAL中可以设置一些全局变量,这些变量在WinCE内核与OAL之间共享,无论是WinCE内核还是OAL都可以基于这些全局变量完成相应的功能。这些全局变量一部分是必要的,一些属于可选的。 由于有些变量和硬件平台相关,所以不同架构的处理器会支持不同的全局变量,这里仅以ARM架构处理器进行介绍,如下: OEMAddressTable:这是一个物理地址到

2009-02-21 16:07:00 2692

原创 WinCE OAL中的OEMInit函数

作者:ARM-WinCEOEMInit是OAL中的重要函数,用来初始化板级的硬件设备。实际上,WinCE的内核最开始只做了CPU级的初始化,随后会初始化调试串口,然后就会调用该函数了。应该说OAL中的OEMInit函数有点像EBOOT中的OEMPlatformInit函数,我说的是有点像,毕竟应用不同。OEMInit函数主要完成以下功能:1. 初始化相应的硬件外设 2. 根据需

2009-02-12 17:37:00 3883

原创 WinCE OAL中的Startup.s介绍

作者:ARM-WinCE 应该说Startup.s是OAL最开始的入口,就像EBOOT中的Startup.s一样,它也是WinCE内核最开始运行的代码。一般在BSP中,EBOOT的Startup.s和OAL的Startup.s的功能应该是一样的,但是还是会有些区别,很多情况取决于BSP的开发者,两个Startup.s之间可以共享很多代码,也可以部分共享或者彼此独立。 OAL中的St

2009-01-31 18:42:00 4278 5

原创 WinCE OAL架构分析

作者:ARM-WinCE我个人认为OAL应该是WinCE BSP中最为重要的一个模块了,简单回顾一下,WinCE BSP由Bootloader,Drivers,OAL和配置文件组成。Bootloader一般指EBOOT,Drivers指一些需要的设备驱动,而OAL被称为OEM Adaption Layer,是WinCE操作系统和底层交互的中间层,其中很多WinCE的功能的支持,都是在OAL

2009-01-18 18:47:00 7043 2

原创 基于WinCE模拟器的应用程序调试

作者:ARM-WinCE 我在以前的blog中介绍过WinCE模拟器的使用,应该说在WinCE模拟器上面调试应用程序还是比较方便的。今天就在这里介绍一下如何在WinCE模拟器上面调试应用程序。 在这里我假设你的PC上面什么工具都没有,也没钱买。那么你就去微软的网站上面注册,然后就可以下载WinCE6.0和VS2005的评估版了,下载后安装,然后将你的WinCE6.0升级到WinCE

2009-01-13 17:29:00 18356 13

原创 WinCE CEDDK之地址映射函数

作者:ARM-WinCE 在CEDDK中提供了用于地址映射的函数,在CEDDK/ddk_map/ddk_map.c中。该模块中主要提供了两个函数用于物理地址到虚拟地址的映射与取消映射: 1. PVOID MmMapIoSpace(PHYSICAL_ADDRESS PhysicalAddress, ULONG NumberOfBytes, BOOLEAN CacheEnable)

2009-01-08 18:35:00 3703 1

原创 WinCE CEDDK之Bus操作函数

作者:ARM-WinCE CEDDK提供了访问总线驱动(Bus Driver)的函数,在/CEDDK/DDK_BUS目录下面可以看到源代码。通过这些函数,可以获得操作总线设备的句柄,然后使用该句柄来对总线设备进行访问。简单说一下总线驱动(Bus Driver),就是指控制或配置某一特定总线的驱动设备,该驱动不但可以对指定总线进行操作,还可以加载和卸载更上层的硬件驱动,通常被称为客户端驱

2009-01-03 10:47:00 3432

空空如也

空空如也

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

TA关注的人

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