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及实现一机多图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)