怎么把windowsce6程序转换成windowsce7

怎么把windowsce6程序转换成windowsce7,第1张

 WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式 *** 作系统,是基于掌上型电脑类的电子设备 *** 作系统,它是精简的Win95。WinCE的图形用户界面相当出色。与Win95/98、WinNT不同的是,WinCE是所有源代码全部由微软自行开发的嵌入式新型 *** 作系统,其 *** 作界面虽来源于Win95/98,但WinCE是基于WIN32 API重新开发、新型的信息设备的平台。

WinCE升级其实也很简单,下载其新版本升级包直接执行安装就可以了。就跟安装普通程序一样安装系统。下面就介绍升级车载wince系统的方法与步骤:

1、在windows系统电脑下载好wince升级程序包,然后通过u盘接到车载移动平台执行升级wince。下图是在电脑磁盘找wince升级包复制到u盘的过程:

2、下图是正在执行复制wince升级包。

3、把复制好wince升级包的u盘插到车载移动平台的usb接口。如下图所示:

4、按一下车载平台的升级按钮启动升级菜单。如下图所示:

5、点击升级。如下图:

6、点ok按钮。如下图:

7、等待wince自动执行安装,直到升级完成。

Note:LCD时序的参数和时钟相位因不同LCD而异,请参考相应LCD的datasheet

在WIN CE 42中修改LCD驱动程序有五个相关文件,分别是:

1

…\WINCE420\PLATFORM\SMDK2410\INC\s2410h

2

…\WINCE420\PLATFORM\SMDK2410\KERNEL\HAL\cfwc

3

…\WINCE420\PLATFORM\SMDK2410\DRIVERS\DISPLAY\S3C2410LCD\s3c2410dispcpp

4

…\WINCE420\PLATFORM\SMDK2410\FILES\configbib

5

…\ WINCE420\PLATFORM\SMDK2410\FILES\platformreg

1 s2410h

…\WINCE420\PLATFORM\SMDK2410\INC\s2410h

主要有LCD控制器的寄存器定义、LCD控制器的工作时序定义、分辨率的定义等等。红色部分为修改后的内容:

#define LCDTYPE

TFT16BPP

#define LCD_TYPE

TFT_

#define SCR_XSIZE_TFT

(1280)

#define SCR_YSIZE_TFT

(960)

#define LCD_XSIZE_TFT

(1024)

#define LCD_YSIZE_TFT

(768)

#define VBPD

((2-1)&0xff)

#define VFPD

((2-1)&0xff)

#define VSPW

((2-1) &0x3f)

#define HBPD

((16-1)&0x7f)

#define HFPD

((200-1)&0xff)

#define HSPW

((16-1)&0xff)

#define CLKVAL_TFT

(1)

//这个值的定义在LCD初始化函数中并不用到,而是直接用数值表示。

2

cfwc

…\WINCE420\PLATFORM\SMDK2410\KERNEL\HAL\cfwc

红色部分为修改后的内容:

static void InitDisplay()

{

s2410LCD->rLCDCON1=(1<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;

// CLKVAL_TFT = 1 , HCLK = 100MHz -> VCLK = 25MHz

//TFT LCD panel

//16 bpp for TFT

s2410LCD->rLCDCON2=(VBPD<<24)|(LINEVAL_TFT<<14)|(VFPD<<6)|(VSPW);

s2410LCD->rLCDCON3=(HBPD<<19)|(HOZVAL_TFT<<8)|(HFPD);

s2410LCD->rLCDCON4=(MVAL<<8)|(HSPW);

s2410LCD->rLCDCON5=

(1<<11)|(0<<10)|(0<<9)|(0<<8)|(0<<7)|(0<<6)|(0<<3)|(0<<1)|(1<<0);

//5:6:5 Format

//The video data is fetched at VCLK falling edge

//VLINE/HSYNC pulse polarity-Normal

//VFRAME/VSYNC pulse polarity-Normal

//VD (video data) pulse polarity-Normal

//VDEN signal polarity-Normal

//Disable PWREN signal

//Byte swap Disable

//Half-Word swap Enable

}

3

s3c2410dispcpp

…\WINCE420\PLATFORM\SMDK2410\DRIVERS\DISPLAY\S3C2410LCD\s3c2410dispcpp

红色部分为修改后的内容:

WORD

TempBuffer[1025][768];

S3C2410DISP::S3C2410DISP (void)

{

m_nScreenWidth = 1024;

m_nScreenHeight = 768;

}

到此修改工作基本完成,但还要一个问题:1024768分辨率占用的显示缓冲区大小是:10247682 = 1536 K Bytes,因此要确认所分配的内存空间够不够,是在configbib文件中定义的。如果以前定义的足够大,后面的步骤可以省略了。

4

configbib

…\WINCE420\PLATFORM\SMDK2410\FILES\configbib

#define NKNAME NK

#define NKSTART

8C200000

#define NKLEN

01D00000

#define RAMSTART

8E000000

#define RAMLEN

01F00000

$(NKNAME)

$(NKSTART)

$(NKLEN)

RAMIMAGE

RAM

$(RAMSTART)

$(RAMLEN)

RAM

AUD_DMA

8c002000

00002000

RESERVED

DRV_GLB

8c010000

00010000

RESERVED

DBGSER_DMA

8c022000

00002000

RESERVED

SER_DMA

8c024000

00002000

RESERVED

IR_DMA

8c026000

00002000

RESERVED

SD_DMA

8c028000

00008000

RESERVED

EDBG

8c030000

00020000

RESERVED

CPXIPCHAIN

8c050000

00008000

RESERVED

SLEEP_BUFF

8c058000

00004000

RESERVED

DISPLAY

8c100000

00100000

RESERVED

DISPLAY项就是显示缓冲区的内存空间定义, 8c100000是开始地址, 00100000是大小。可以看出原先只定义了1M Bytes的内存空间给LCD显示缓冲区;而1024768需要1536 K Bytes的内存空间,因此需要修改这里的定义。但是一旦修改到configbib文件的内容,将会涉及到很多地方的修改工作,过程比较繁琐。所幸的是我的目标板DISPLAY前面还有0x8C100000-(0x8C058000+0x00004000) = 656K Bytes未分配的内存空间,因此做如下修改:

AUD_DMA

8c002000

00002000

RESERVED

DRV_GLB

8c010000

00010000

RESERVED

DBGSER_DMA

8c022000

00002000

RESERVED

SER_DMA

8c024000

00002000

RESERVED

IR_DMA

8c026000

00002000

RESERVED

SD_DMA

8c028000

00008000

RESERVED

EDBG

8c030000

00020000

RESERVED

CPXIPCHAIN

8c050000

00008000

RESERVED

SLEEP_BUFF

8c058000

00004000

RESERVED

;DISPLAY

8c100000

00100000

RESERVED

DISPLAY

8c060000

001a0000

RESERVED

5

在(4)中修改了DISPLAY显示缓冲区的开始地址,因此要在“s2410h”中做相应的修改:

…\WINCE420\PLATFORM\SMDK2410\INC\s2410h

#define DMA_BUFFER_BASE

0xAC000000

#define DMA_PHYSICAL_BASE

0x30000000

//#define FRAMEBUF_BASE

(DMA_BUFFER_BASE + 0x00100000)

//#define FRAMEBUF_DMA_BASE

(DMA_PHYSICAL_BASE + 0x00100000)

#define FRAMEBUF_BASE

(DMA_BUFFER_BASE + 0x00060000)

#define FRAMEBUF_DMA_BASE

(DMA_PHYSICAL_BASE + 0x00060000)

6

在(4)中修改了DISPLAY显示缓冲区的大小, 因此要在“s3c2410dispcpp”中做相应的修改:

…\WINCE420\PLATFORM\SMDK2410\DRIVERS\DISPLAY\S3C2410LCD\s3c2410dispcpp

红色部分为修改后的内容:

void S3C2410DISP::InitializeHardware (void)

{

m_VirtualFrameBuffer = (DWORD)VirtualAlloc(0, (0x1A0000), MEM_RESERVE, PAGE_NOACCESS);

if (m_VirtualFrameBuffer == NULL)

{

RETAILMSG(0,(TEXT("m_VirtualFrameBuffer is not allocated\n\r")));

return;

}

else if (!VirtualCopy((PVOID)m_VirtualFrameBuffer, (PVOID)gdwLCDVirtualFrameBase, (0x1A0000), PAGE_READWRITE | PAGE_NOCACHE))

{

RETAILMSG(0, (TEXT("m_VirtualFrameBuffer is not mapped\n\r")));

VirtualFree((PVOID)m_VirtualFrameBuffer, 0, MEM_RELEASE);

return;

}

}

7

在(4)中修改了DISPLAY显示缓冲区的开始地址,还要对注册表文件“platformreg”做相应的修改:

…\ WINCE420\PLATFORM\SMDK2410\FILES\platformreg

[HKEY_LOCAL_MACHINE\Drivers\Display\S3C2410\CONFIG]

"DisplayDll"="s3c2410dispdll"

;"LCDVirtualFrameBase"=dword:ac100000

;"LCDPhysicalFrameBase"=dword:30100000

"LCDVirtualFrameBase"=dword:ac060000

"LCDPhysicalFrameBase"=dword:30060000

1

首先我们准备好一机多图程序和WINCE模拟器!WINCE模拟器的使用方法参考上个经验!下面我来告诉大家如何修改一机多图!的配置方法,我们下载好一机多图程序,打开first这个文件!

2

我们看到了这个里面全是代码!呵呵不要怕这个要修改很简单!

GLOBALSETTINGS

ShowMessage = 0

QuitOnDoubleClick = no

X = 0

Y = 0

Width = 800

Height = 480

Arrange = No

BackgroundBitmap = ico\bjbmp

StartUpAnimation = FlyUp

Accelerated = yes

TopMost = no

#---------------------------------

#---------------------------------

TEXT

x = 330

y = 435

Text = 甲A·00001

Color = 1E90FF

Size = 36

Weight = 700

CreateFont

#---------------------------------

#---------------------------------

ICONXPBUTTON

x = 115

y = 70

Command = \SDMMC\NaviOne\NaviOneexe

SizeNormal = 128

SizePushed = 128

ScaleAlpha = 100

IconNormal = Ico\凯立德ico

ScaleAlpha = 100

IconPushed = Ico\凯立德ico

TEXT

x = 130

y = 180

Text =

Color = 000000

Size = 25

Weight = 700

CreateFont

#---------------------------------

#---------------------------------

ICONXPBUTTON

x = 250

y = 70

Command = \SDMMC\RtNavi\RtNaviexe

SizeNormal = 128

SizePushed = 128

ScaleAlpha = 100

IconNormal = Ico\道道通ico

ScaleAlpha = 80

IconPushed = Ico\道道通ico

TEXT

x = 270

y = 180

Text =

Color = 000000

Size = 25

Weight = 700

CreateFont

#---------------------------------

下面还有很多我这里就不写了!

3

其中看到这一段!“Text = 甲A·00001”这里等号后面可以修改成我们的汽车牌照,或者您不想在程序中显示车牌号的话,直接把这段删除就行了。记住修改完毕之后点击确定!最后我们看看效果,见下图,车牌号码已经改成京A 88888了!

#---------------------------------

TEXT

x = 330

y = 435

Text = 甲A·00001

Color = 1E90FF

Size = 36

Weight = 700

CreateFont

#---------------------------------

4

下面我们接着修改导航软件的路径!比如我们内存卡装了多个地图,但是这些代码我们如何配置呢!我们以凯立德为例!

5

找到这段代码,其中的X= 115和 Y=70是这个图标在我们导航界面当中所占的位置!修改这个数值,图标的位置会发生变化!

command=\sdmmc\navione\navioneexe这段代码就是导航的具体安装位置!我们找到你SD卡上凯立德的可执行性文件安装路径填写到这里即可!其他导航比如高德啊、道道通、美行、易图通、领路人、铁将军一样的设置方法,主要是找到主程序的可执行文件的文件夹名字和程序地址即可!

#---------------------------------

ICONXPBUTTON

x = 115

y = 70

Command = \SDMMC\NaviOne\NaviOneexe

SizeNormal = 128

SizePushed = 128

ScaleAlpha = 100

IconNormal = Ico\凯立德ico

ScaleAlpha = 100

IconPushed = Ico\凯立德ico

TEXT

x = 130

y = 180

Text =

Color = 000000

Size = 25

Weight = 700

CreateFont

#---------------------------------

6

例如我的凯立德导航在NaviOne文件夹下的NaviOneexe这个文件所以这里的代码改为command=\sdmmc\NaviOne\NaviOneexe就行了,其他的同样修改!另外说一句,如果不需要那么多图的话,可以把相应的代码段删除就可以了!一般删除一个图标位置的话是下面的代码!见图2,这一段代码就是关于铁将军的图标及其联接方式,如果不用的话整段删除!最后调整每段代码前面X 和 Y的数值即可调整图标位置!最后调整到你满意即可!

以上就是关于怎么把windowsce6程序转换成windowsce7全部的内容,包括:怎么把windowsce6程序转换成windowsce7、wince 6.0 如何更改 LCD驱动程序,需要修改哪些文件、请教如何进入WinCE及实现一机多图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10074884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存