自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LoongEmbedded的专栏

WINCE+ANDROID,专注于嵌入式软件开发

  • 博客(40)
  • 资源 (16)
  • 收藏
  • 关注

原创 LCD控制器时序参数的确定(基于TFT LCD: KD50G9-40NM-A3)

LCD控制器时序参数的确定(基于TFT LCD: KD50G9-40NM-A3)********************************LoongEmbedded********************************作者:LoongEmbedded(kandi)时间:2010.10.30类别:WINCE驱动开发********************************LoongEmbedded********************************一般TFT型LCD时序图如下

2010-10-30 08:59:00 14001 10

原创 安装RVDS2.2破解版

<br />安装RVDS2.2破解版<br /> <br />1.       我的RVDS2.2文件时iso文件,所以需要先安装虚拟光驱DAEMON Tools<br />2.       通过安装的DAEMON Tools来加载RVDS2.2的iso文件,加载之后打开我的电脑,你可以<br />看到下图<br /><br /><br /><br />                                                        图1<br />可以看到RVDS2.2被虚拟

2010-10-27 22:29:00 9176 12

原创 WINCE cvrtbin命令简介

********************************LoongEmbedded********************************作者:LoongEmbedded(kandi)时间:2010.10.25类别:WINCE嵌入式操作系统********************************LoongEmbedded********************************WINCE cvrtbin命令简介关于cvrtbin的用途,最常用的就是将NK.bin转换出NK.nb

2010-10-25 22:03:00 1908

原创 WINCE viewbin命令

<br />WINCE viewbin命令<br /> <br />Viewbin是微软提供的一个命令行工具,在WinCE6.0中,可以在"WINCE600PUBLICCOMMONOAKBINI386"找到他。Viewbin工具可以用来查看NK.bin文件。它可以从NK.bin中获得这个NK image的大小,运行的起始地址等。还能查看到里面所包含的模块,应用程序及相关的信息。<br /> <br />Viewbin的使用格式如下:<br /><br /> <br />下面就这些命令格式来举例:<br />

2010-10-24 09:28:00 1666

转载 WINCE内存机制

<br />一般在ARM架构的CPU上,物理地址都是统一编址的,寻址空间为4GB(32Bit CPU)。也就是说,针对一个ARM的处理器,它可以访问的物理空间是4GB。在WinCE中,ARM中的4GB物理地址空间将被映射为512MB的虚拟内存空间。 OEMAddressTable就是一个4GB物理地址空间到WinCE Kernel中的512MB虚拟地址空间的映射表。<br />在BSP中,会定义OEMAddressTable来描述系统中可访问的物理空间及对应的虚拟地址空间,还有大小。这个表会在WinCE系统

2010-10-24 09:14:00 1326

转载 WINCE下如何设置/删除/查询这些环境变量

<br />在WinCE中有很多的环境变量,那么如何设置/删除/查询这些环境变量呢:<br />1. 查询环境变量:无论是在WinCE5.0还是WinCE6.0,当我们在PB里打开或者创建一个工程以后,我们可以在菜单中点 “build”->“Open Release Directory in Build Window”,然后会弹出命令行对话框。在对话框中输入“set”命令,然后回车,就会看到当前工程下所有的环境变量以及相应的值。<br />2. 添加环境变量:有两种方法添加环境变量,一种是点“build”-

2010-10-24 09:12:00 1321

原创 WINCE6.0+S3C2443的启动过程---eboot5

2.3.5 SD卡控制器的相关初始化一个相关的帖子http://topic.csdn.net/u/20100812/16/d0d5108b-dce1-4535-9e15-6f87bad57e43.html?r=67649425GPG8---nCD_SD,这个引脚用于判断是否有SD卡存在。GPH8---WP_SD,这个引脚用于判断SD卡是否lock。GPE5---SD_CLKGPE6---SD_CMDGPE7---SD_DATA0GPE8---SD_DATA1GPE9---SD_DATA2GPE10---SD

2010-10-23 10:06:00 2197 2

原创 在WINCE5.0开始菜单中添加应用程序

首先这篇文章主要参考http://blog.csdn.net/nanjianhui/archive/2009/07/01/4313044.aspx来写的,主要是想深入理解和自己实践一下。在WinCE5.0启动以后,点击Start,然后点击Programs,里面所能看到的应用其实也都是以文件的形式存放的,它们存放在/Windows/Programs目录下面,都是一些快捷方式文件,这些快捷方式文件连接了真正的应用程序,至于是怎么实现呢?下面以在开始菜单找那个添加应用程序ARMV4I_SM.exe为例子来看下面是

2010-10-21 22:08:00 1773 1

转载 在WinCE 6.0系统下实现USB功能定制

<br />USB的广泛应用就不用多说了,相信目前的各个领域的嵌入式产品中,很少有不用USB的。USB是主从结构的,分为USB Host和USB Slave,从USB1.0,USB1.1到现在的USB2.0,基于USB2.0还有USB OTG,也就是同时支持Host和Slave设备。目前最新的好像是USB3.0,刚开始普及吧。<br />在WinCE6.0中,对USB是有很好的支持。一般来说,如果USB的设备驱动做好了,USB的协议层以及上层的应用都是现成的,而且还有源码。也就是说,我们只需要在BSP中完成

2010-10-21 16:24:00 1443

原创 nboot通过DNW下载并运行eboot.nb0

<br /> 1.       在stepldr/main.c下面的mian函数调用Uart_Init()对串口的初始化<br />我们使用UART1来作为debug口。<br /><br /> <br />2.       实现nboot通过串口下载并运行eboot.nb0的函数体<br /><br /> <br />我们接下来分析其实现<br />2.1   Uart_Getch()函数<br />这个函数主要是在nboot启动的时候,判断是否有来之我们对键盘的操作,假如我们在等待的时间之内按下空格键,

2010-10-20 13:55:00 2002

原创 WINCE6.0 + S3C2443的启动过程---nboot篇

<br />WINCE6.0 + S3C2443的启动过程---nboot篇<br /> <br />我们启动WINCE6.0的方式是:nboot+eboot+NK。那么是如何启动WINCE6.0系统映像的呢?首先是nboot把eboot拷贝到SDRAM中执行的地址处运行,接着eboot把NK.bin拷贝到SDRAM指定的地址处运行。<br /> <br />首先,我们需要通过JTAG把我们nboot文件编译生成的stpldr.nb0文件烧录到nandflash的第0个block中。那么系统复位或者上电启动

2010-10-20 13:52:00 1708 1

转载 WINCE6.0+S3C6410 watchdog重新启动

<br />// File: watchdog_sw_rst.c<br />//<br />// Samsung SMDK6410 SW_RST using watchdog timer support code.<br />//<br />#include <windows.h><br />#include <ceddk.h><br />#include <oal.h><br />#include <s3c6410.h><br /><br />// WTCON - control register, bi

2010-10-19 12:36:00 3342 5

原创 S3C2443时钟管理

<br />S3C2443时钟管理<br /> <br />S3C2443有两个PLL用来产生内部时钟,分别是MPLL和EPLL,其中MPLL为包括ARM,AHB和APB的总体功能模块产生内部时钟,而EPLL为比如是USB,I2S和camera等这些具体的模块产生时钟,我们可以通过软件编程来控制这个两个PLL的工作频率,可以关闭和开启内部时钟源来减少功耗。<br /> <br />1.MPLL和EPLL时钟源的选择<br /><br /> <br />从上图可知主要的时钟源来之外部晶振(XTI)或者外部时钟

2010-10-17 21:20:00 1902

原创 MMU和cache学习

<br />1.      MMU<br />MMU:memory management unit,称为内存管理单元,或者是存储器管理单元,MMU是硬件设备,它被保存在主存(main memory)的两级也表控制,并且是由协处理器CP15的寄存器1的M位来决定是enabled还是disabled。MMU的主要作用是负责从CPU内核发出的虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。MMU使得每个用户进程拥有自己的地址空间(对于WINCE5.0,每个进程是32MB;而对于WINCE6.0,每个进

2010-10-17 21:09:00 1739

原创 WINCE6.0+S3C2443的启动过程---eboot2

1.3系统时钟设置我的另一篇博客介绍了S3C2443的时钟管理http://blog.csdn.net/chinesedragon2010/archive/2010/09/24/5903553.aspx这些红色字体的值在S3C2443.inc文件中定义, Startup_Mdiv      EQU    81Startup_Pdiv      EQU    2 Startup_Sdiv      EQU    1这些值的实际意义是什么呢?我们先来看看上图的第188行到190行对MPLLCON寄存器的设置,结

2010-10-17 21:03:00 1958

原创 WINCE6.0+S3C2443的启动过程---eboot4

<br />http://blog.csdn.net/chinesedragon2010/archive/2010/10/05/5922489.aspx<br /> <br />2 main函数<br />void main(void)<br />{<br />    //MemoryTest_Function();<br />    BootloaderMain();<br />    // Should never get here.<br />    SpinForever();<br />}<br

2010-10-17 20:41:00 2015 1

原创 NK.bin和NK.nb0学习

1.       NK.binBin:Microsoft Windwos CE binary image data format(.bin)文件格式中包含若干个独立的记录(record),以记录(record)为单位来组织数据,每个record都包含了起始地址,长度,检验码和这个record中包含的数据内容,Platform Builder调用工具RomImage.exe将WINCE内核所有文件以bin格式合并成一个文件(至于RomImage.exe是怎么合成NK.bin的,后面需要好好深入了解),默认文件

2010-10-17 17:22:00 1852

转载 CE5.0 - romimage.exe如何填充eboot.bin中的pTOC特殊指针生成.nb0

<br />eboot.bin和eboot.nb0的差别就是<br />eboot.bin中没有填充pTOC结构体,必须使用parser解释器[类似于romimage.exe luther.gliethttp]将全局变量数据段解压释放到运行时使用的地址才行,<br />eboot.nb0中经过romimage.exe填充了pTOC结构体,所以eboot.nb0可以自己将自己用到的全局量通过KernelRelocate()函数进行解压释放,这就是为什么<br />eboot.nb0比eboot.bin的siz

2010-10-16 08:51:00 1235

原创 WINCE6.0+S3C2443的启动过程---eboot3

<br /> <br />1.6 <br />OEMAddresstable只是用来初始化一级页表,就是所谓的段(section)描述,每个段是1MB,分为4096个段,总共4G——虚拟内存空间4G就是由此而来。 <br />并且这个OEMAddresstable可以用在查表法中用来转换虚拟地址、物理地址(相互转换都可以)。<br /> <br /><br />PTs(pointer to section)的相关定义如下:<br />;   Define RAM space for the Page Tab

2010-10-16 08:47:00 1695

原创 WINCE config.bib文件中的FSRAMPERCENT的意义

在BSP/files文件夹下面关于FSRAMPERCENT的内容如下:CONFIG    …………………FSRAMPERCENT=0x80808080下面我们来看看上面表达式的意义FSRAMPERCENT: 格式:FSRAMPERCENT = number   默认值为0x80808080。指定为存储内存和程序内存在整个可用内存(除去nk.nb0占用的RAM之外的可用内

2010-10-16 08:45:00 2653

原创 WINCE5.0+2443 camera中断不能进来的原因

<br />因为项目需要,我需要调试和完成WINCE5.0+2443系统和驱动的功能,在调试camera驱动的时候,发现一个很郁闷的问题,就是camera的中断一直进不来,因为我之前在WINCE6.0+2443系统中已实现了camera中断了,而WINCE5.0和WINCE6.0下的camra驱动架构基本一样,可是为什么camera中断一直会进不来呢?分析如下:<br />1.       中断ISR对camera中断设置不正确。<br />在OEMInterruptHandler()函数中加入调试信息,只

2010-10-16 08:43:00 1331

原创 基于xp系统搭建android开发环境

<br />1.JDK下载链接<br />http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html<br />2.eclipse<br />http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/heliossr1<br />3.sdk<br />http://androidappdocs.appspot.com/sdk/inde

2010-10-16 08:43:00 1487

原创 WINCE5.0+S3C2443系统每隔几分钟会自动关闭LCD显示

<br />这几天在调试WINCE5.0+S3C2443系统的时候,发现大概每隔6分钟的时候,系统就会自动关闭LCD屏的显示,这时候如果去点击触摸屏就会恢复显示。刚开始我还以为是系统进入了sleep状态了,发现在关闭LCD显示的时候各个驱动的PowerUp和PowerDown函数的串口输出信息并没有输出,说明并不是进入sleep状态。<br /> <br />后来我找到了不让系统关闭LCD显示的地方,是comon.reg下面的注册表项<br />; @CESYSGEN IF CE_MODULES_GWES<

2010-10-16 08:42:00 1544

原创 WINCE6.0+S3C2443的启动过程---eboot1

<br /><br />WINCE6.0+S3C2443的启动过程---eboot<br /> <br />我们知道从nboot把eboot从nandflash中拷贝到内存指定的地址后,就接着在这个地址处开始运行eboot了,之后,nboot的工作就完成了,那么那么eboot开始执行的地址在哪里呢?我们看看/Src/Bootloader/Eboot/boot.bib下面的配置<br /> <br />MEMORY<br />;   Name     Start     Size      Type<br /

2010-10-16 08:41:00 2352

原创 播放视频一会,出错并自动关闭

<br />系统:WINCE6.0+2443<br /> <br />上周遇到一个很奇怪的问题,之前上网播放视频的时候,没有出现播放一会就会出错并且自动关闭IE的情况,但后来测试到在播放视频大概50s的时候,总是会弹出下面的对话框并且自动关闭IE,这个对话框的内容如下:<br />application IEsample.exe encountered a serial error and must shut down<br /><br />串口输出的信息如下<br />Exception 'Data Ab

2010-10-15 07:43:00 1920

原创 WINCE下实现基于USB的camera

<br />我们是做基于WINCE的GPS产品,客户需要camera功能,我们产品集成了两种方案的camera功能:USB摄像头和基于TVP5150视频编解码(camera sensor)的camera,在这里只介绍USB摄像头<br />要实现这个功能能,我们需要做下面的工作。<br /> <br />1.       支持WICNE的USB摄像头应该有很多种,而且驱动应该是不能共用的,所以我们需要根据项目需要(比如像素的要求)来选择USB摄像头,选定之后,就要找到卖USB摄像头转换器的公司提供的WINC

2010-10-15 07:42:00 1853

原创 WINCE下实现USB转RS232

<br />WINCE下可以通过一个USB TO RS232转换器来实现USB转RS232,也即WINCE设备的USB host接USB TO RS232转换器的USB端,而USB TO RS232转换器的RS232端可以接PC机的RS232接口,或者可以接其他设备的RS232接口,这样WINCE设备和PC端就可以通过以串口的形式来相互通讯了,因为我们的系统采用的是USB TO RS232转换器,要实现这个功能能,我们需要做下面的工作。<br /> <br />1.       支持WICNE的USB TO

2010-10-15 07:41:00 2331

原创 WINCE下如何虚拟多个串口

<br />应用背景<br />我们的产品是GPS产品,GPS模块是通过TX与RX来和CPU串口控制器的UART2连接的,对应于COM3(这个可以根据自己的项目的需要来定),platform.reg中注册表信息如下:<br />;==========GPS===== UART2===COM3===============<br />[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial2]<br />   "DeviceArrayIndex"=dword:2<br />   "

2010-10-15 07:40:00 2367 1

原创 WINCE6.0+S3C2443自动重启的实现

<br />    为了实现WINCE标准UI和我们产品的SHELL的切换,系统需要实现自动重启的功能,这里的自动重启并不是按下reset键之后的从nboot开始执行的复位重启,而只是跳转到NK的开始地址处执行,和bootloader没有关系。<br />在src/inc/oal_ioctl_tab.h中,我们看到自动重启的函数OALIoCtlHalReboot(),我们来看看这个函数体<br /><br />这个函数是利用看门狗来实现的复位重启方式,是从nboot开始执行的,我们来实现直接从NK的起始地址

2010-10-15 07:39:00 5257 10

原创 WINCE5.0和WINCE6.0的内存与系统架构

<br />WINCE5.0和WINCE6.0的内存与系统架构<br />http://topic.csdn.net/u/20090410/14/75bba2cb-cefc-4ca5-b4f5-4165bbf16006.html<br />http://wenku.baidu.com/view/b7adad4bcf84b9d528ea7ab0.html<br />http://msdn.microsoft.com/en-us/library/bb331824.aspx<br />http://www.msd

2010-10-14 08:13:00 4331

原创 Eboot.bib中0x30000000到0x300020000内存的作用

<br />Src/Bootloader/Eboot/boot.bib的memeory部分如下:<br />MEMORY<br />;   Name     Start     Size      Type<br />;   -------  --------  --------  ----<br />    ARGS     80020800  00000800  RESERVED<br />    RAM      80021000  0000B000  RAM    <br />    STACK  

2010-10-14 08:08:00 2001 1

原创 Nboot中nand flash控制器参数TACLS、TWRPH0和TWRPH1的确定(基于K9F1208U0B)

注:K9F1208U0B的供电电压时3.3V,本系统的FCLK=533Mhz,HCLK=533/4=133Mhz1.       nand flash控制器的初始化在stepldr的mian函数中调用NF_Init()来初始化nand flash控制器,下面介绍这个函数其中// HCLK=100Mhz#define TACLS             7     #define TWRPH0          7     #define TWRPH1          7     ⑴nand flash配置

2010-10-14 08:07:00 4093

原创 WINCE屏蔽NK的串口输出信息

在WINCE的NK中,如果要屏蔽串口的输出,需要在“property page -> build options”下面对“enble build ship”打钩,如下图所示打钩之后,选择“clean sysgen”编译出来的NK就不会有串口信息输出了,当然了,bootloader的串口信息还会有输出。

2010-10-14 08:06:00 1735

原创 WINCE6.0+2443系统大概过10分钟进入sleep状态

<br />最近在开发基于WINCE6.0+2443的GPS产品的时候,发现我的机器在电池供电的时候,开机之后,如果没有其他动作,那么大概10分钟左右,我的系统会进入sleep的状态,后来发现我在实现电池驱动的时候把函数BatteryPDDGetStatus()下面部分注释掉了<br /> memcpy(pstatus, &gpStatus->sps, sizeof(*pstatus));<br />    *pfBatteriesChangedSinceLastCall = gpStatus->fChan

2010-10-14 08:04:00 1609

原创 WINCE6.0+S3C2443的RTC初始化及存在的问题

1.系统启动过程中RTC初始化在WINCE6.0中,我们知道是通过OALIoCtlHalInitRTC()函数来设置RTC的时间的,但是如何调用到这个函数的呢?我们就从NKStartup()函数开始,但系统从nboot开始是如何执行到NKStartup()函数的呢?我后面会抽空写关于eboot和nk的启动过程中有涉及。在SystemStartupFunc函数中,通过下面语句来创建一个内核线程RunApps:hTh = CreateKernelThread (RunApps

2010-10-13 13:28:00 2185

原创 Nandflash K9F1208U0B学习

注:Row也就是page1.       引脚描述I/O0 ~ I/O7-----data inputs/outputs通过这8个I/O引脚,可以输入命令,地址和数据,也可以在读操作时输出数据。CLE-----command latch enableCLE输入控制了发送到命令寄存器的命令。CLE为高电平时激活,在nWE的上升沿,命令通过I/O端口被锁存到命令寄存器中,结合datasheet的相关时序图来理解更为深刻。ALE-----address latch enableALE输入控制了地址发送到内部地址寄

2010-10-13 13:23:00 2777 2

原创 基于S3C2440A+SDRAM(K4M51163)

<br /><br />本系统是采用两片K4M51163-BG75的SDRAM,大小为2*64M。<br />1. SDRAM的工作原理<br />1.1 SDRAM概述<br />SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器。同步是指其时钟频率(CLK)与CPU的AHB总线时钟频率(HCLK)相同,并且内部的命令的发送于数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进

2010-10-13 13:21:00 1911

转载 如何导出wince6.0的SDK

<br />最近在做WINCE6.0系统的编译和SDK的导出。但是我导出的SDK大小只有5M多,这个与以往WINCE5.0中导出的SDK要小了很多,之前我在WINCE5.0中导出的SDK大约有25M左右。查找了一通最后发现原来6的系统较5的系统有了一些改变,至少在MFC支持上有了变化。在6的系统中,导出对应OS design的SDK时,不会包含对MFC DLL的,要手工将MFC的DLL加入OS iamge中,在导出SDK时要手工将支持MFC的头文件和lib库包含到SDK中。<br />那么如何做了?<br

2010-10-13 13:19:00 1517 1

原创 WINCE6.0+S3C2443睡眠和唤醒(sleep and wake up)的实现

<br />1. 系统进入睡眠状态的过程<br />1.1 硬件相关电路<br />我们的产品使用GPF0/EINT0作为系统进入睡眠和从睡眠中唤醒的唤醒源,如下图所示:<br /> <br />EINT0作为唤醒源,而EINT0在S3C2443的datasheet中相关描述如下:<br /> <br />那么我们就需要知道触发这个中断(EINT0)的电平变化情况,是低电平触发?或是高电平触发?或是下降沿触发?或是上升沿触发?或是上升沿和下降沿触发?上面的设计是:在未按下按键(S5)时,EINT0是低电平,

2010-10-13 13:18:00 2572 5

原创 activesync对应的COM口

<br />因工作需要,在调整COM口的分配时,发现COM5已被占用,却不知道是被哪个驱动占用了,前两天才发现时被activesync占用了, activesync在platform.reg下的部分信息如下:<br /> <br />[HKEY_LOCAL_MACHINE/Drivers/USB/FunctionDrivers/Serial_Class]<br />          "FriendlyName"=LOC_USBFN_SERIAL_NAME<br />          "idVendor"

2010-10-13 13:16:00 1491

MTK6577+Android编译之android

MTK6577+Android编译之android

2015-08-27

MTK6577+Android编译之kernel

MTK6577+Android编译之kernel

2015-08-27

MTK6577+Android编译之uboot

MTK6577+Android编译之uboot

2015-08-26

MTK6577+Android编译之preloader

MTK6577+Android编译之preloader

2015-08-25

MT6577+Android烧录了preloader之后无法启动和重新烧录系统问题与解决

MT6577+Android烧录了preloader之后无法启动和重新烧录系统问题与解决

2015-08-25

MTK6577 Android源代码目录

MTK6577 Android源代码目录概述

2015-08-25

Android之so文件、JNI和NDK

Android之so文件、JNI和NDK

2015-08-25

MTK6577+Android之关机电流高问题的解决

MTK6577+Android之关机电流高问题的解决

2015-08-25

MTK6577+Android之增加重启功能

MTK6577+Android之增加重启功能

2015-08-25

S3C2443时钟管理

三星处理器S3C2443时钟管理部分的深入学习和代码设置

2015-08-22

Nandflash K9F1208U0B学习

基于Nandflash K9F1208U0B学习基本原理

2015-08-22

LCD控制器时序参数的确定(基于TFT LCD KD50G9-40NM-A3)

LCD控制器时序参数的确定(基于TFT LCD KD50G9-40NM-A3)

2015-08-22

ARM MMU和cache学习

ARM的MMU和cache部分学习、记录和分享

2015-08-22

d_readvol.zip

可用来读取WINCE boot.hv等文件

2015-02-05

WINCE基于CH7024实现TV OUT (VGA)功能

WINCE基于CH7024实现TV OUT (VGA)功能,描述调试过程及注意事项

2011-01-23

WINCE5.0中断机制

描述WINCE5.0中断机制,调用的函数及过程

2011-01-23

空空如也

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

TA关注的人

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