欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

如何下载WINCE4.2 BSP到SBC

程序员文章站 2022-06-04 16:56:40
...

手头上有一个友善之臂的SBC2410x的实验板,原本是用来给客户做Demo的,现在项目都停了,所以就自己拿来玩玩。 以前玩ARM的时候,下载的是linux,这次打算玩玩Wince。现在就把这次的过程写出来好了:(Linux的过程以后有机会的话可以也写一个 ^_^) 因为以前

手头上有一个友善之臂的SBC2410x的实验板,原本是用来给客户做Demo的,现在项目都停了,所以就自己拿来玩玩。

以前玩ARM的时候,下载的是linux,这次打算玩玩Wince。现在就把这次的过程写出来好了:(Linux的过程以后有机会的话可以也写一个 ^_^)

因为以前板子上都有linux了,所以最先考虑的就是想直接使用以前的vivi版本,结果发现不行。也可能不是不行,只是我的操作出错罢了,那就从头安装好了。

首先要准备一些软件方面的:GIVEIO(Jtag烧写板驱动),三星的PC端usb驱动文件secbulk.sys和secbulk.inf,wince版本的vivi文件(vivi_wince_64m_32bit),DNW软件,u2410mon.bin,wince的Eboot程序EBOOT_0702.nb0,2410的WinCE内核NK.bin。

硬件当然就是Jtag烧写板以及串口线了。

好了现在开始:

1.先要安装GIVEIO,将GIVEIO.SYS复制到c:/windows/system32/drivers下面,然后安装一个新硬件,将驱动指向giveio.inf就行了。

2.将Jtag板和板子连接,打开电源。在dos窗口写入 sjf2410 /f:vivi_wince_64m_32bit,然后连续输入0,0,0三个将vivi直接考入K9F1208这个flash内。然后关电,将Jtag板拔下来。

3.现在需要安装usb驱动了,将secbulk.sys文件复制到c:/windows/system32/drivers。打开DNW,设置好configuration后点击串口的connect,按住空格键后给板子上电,进入vivi。这时pc会识别到新usb设备,就按步骤安装,选择手动指定到secbulk.inf。正确安装后dnw上应该显示:“USB:OK”,而不是“USB:x”了。

4.下面就要进行分区格式化Flash了,键入bon part 0 192k 1216k将Nandflash分为3个区1-192k,192k-1216k,1216k-64M。

5.这时因为flash已经清空了,所以还需要再load一遍vivi:load flash vivi u 看到"USB host is connected. Waiting a download."后点击USB->transmit,再次选择vivi_wince_64m_32bit,就可以了。

6.安装Eboot:load flash eboot u,和上面的vivi一样,点击USB->transmit,选择Eboot.nb0下载。

7.重点到了,安装Wince内核: 一样的,输入 load flash wince u 用USB->transmit 选择NK.bin。好了。再次开机以后你就可以通过串口看到如下的wince启动代码了:


OEMSetRealTime: Year: 2003, Month: 9, Day: 1, Hour: 12, Minute: 0, second: 0 rcn
r=1h
OEMSetRealTime(register): Year: 3, Month: 9, Day: 1, Hour: 12, Minute: 0, se
cond: 0 rcnr=1h
FMD::FMD_Init
Prescaler:2
384 clock
SL_Open 0x315F0 (0 opens)
USB:OhcdPdd_Init
++InitializeOHCI
USB:*pIrq=11, *pioPortBase=0x280000
OHCD: MapIrq2SysIntr(11): 27
OHCD: Memory Object
--InitializeOHCI
+CS8900:DriverEntry
::: PBT_InitializeAddresses - Success
charlie::SDIO::SDHOST::SDCSDCardDllEntry::DLL_PROCESS_ATTACH
::: SYSINTR_SDMMC OEMInterruptDisable
::: SYSINTR_DMA0 OEMInterruptDisable
::: SYSINTR_SDMMC_CARD_DETECT OEMInterruptEnable
::: SYSINTR_SDMMC_SDIO_INTERRUPT OEMInterruptEnable
--S3C2410DISP::InitializeHardware
+SL_GetStatus 0x315F0

ok,完了。

注:当时在玩的时候,发现总是flash有坏区,当时很是不理解。后来通过现象(每次都是刚开始的时候没有问题,但是过一阵子就不行了),发现应该不是硬件本身的问题。在排查了是否有短路,断线等问题之后,才发现是电池没电了。晕。。。。。。。

看来还是用5v变压器比较好,呵呵。