//=====================================================================
//TITLE:
// S3C6410的WinCE系统烧录
//AUTHOR:
// norains
//DATE:
// Tuesday 13- April-2010
//Environment:
// DMA6410
//=====================================================================
对于嵌入式CPU而言,各自有各自的系统烧录方式,即使是同一款型号,对于不同的系统,烧录方式也不尽相同。
相对而言,S3C6410的WinCE系统烧录,并不是我见过的最简单的,也不是一成不变的:因为随着代码的不同,烧录的方式可能会有所差异。
在开始我们的烧录旅程之前,先简单地说一说S3C6410的启动过程。在其用户手册上,关于启动,有这么一个列表:
列表中所提到的IROM,全名为Internal ROM,意味内部ROM。从列表中我们可以得知,无论哪种启动方式,无一例外都是要和IROM打一次交道。这个和S3C6400就有区别了,因为S3C6400完全支持不经过IROM,直接运行NAND FLASH上的代码。也许三星为了代码的统一,或是别的什么目的,所以在S3C6410必须先运行IROM。
如果具体到WinCE系统启动流程来说,简单而言,大致如下:IROM启动-->加载eboot并执行-->加载NK执行。
更详细的加载流程,请查阅相关的资料,本文重点不在于此,只需要大家对启动流程有个基本的概念即可。
本文的目标是,将WinCE系统烧录到全新的开发板的NAND FLASH中。那么,现在让我们开始,在一片干净的开发板上烧录我们的WinCE系统吧!
PS:本文的烧录方法,基于DMA6410开发板。
因为开发板是纯洁上,上面一片空白,什么都没有,所以我们必须要先进行启动的设置。对于DMA6410这款开发板来说,启动方式的选择在SW18。在本文我们所需要的启动选项如下列表所示:
OM4 |
OM3 |
OM2 |
OM1 |
OM0 |
IOM2 |
IMO1 |
IMO0 |
备注 |
0 |
0 |
1 |
1 |
- |
- |
- |
- |
执行NAND程序 |
1 |
1 |
1 |
1 |
- |
1 |
1 |
1 |
执行大SD卡程序 |
1 |
1 |
1 |
1 |
- |
0 |
0 |
0 |
执行小SD卡程序 |
新的开发板,NAND 上是空白的,所以我们只能先从SD卡启动。至于是选择大卡还是小卡,就看你爱好了。
编译完系统以后,会生成很多文件。首先我们需要做的是,制作一张能启动的SD CARD。
这时候,我们就需要用到三星自带的工具,IROM_FUSING_TOOLS:
SD/MMC Drive是你SD CARD插入到电脑上的盘符,Image File to Fuse表示的是你要烧录的nb0文件。一般来说,如果你正常编译的话,在你的工程下面应该会有一个名为IROM_SD_EBOOT.nb0的文件,那你就选择这个。(题外话:我用的板子是MLC,所以实际我板子使用的是block0img.nb0)。
点击START,短暂的一秒钟不到以后,那你的SD启动卡就制作好了。
接下来,你就需要设置DMA6410的启动模式。根据之前的启动列表,我这里选择的是从大的SD卡启动。
当然,这只是设置了启动模式,我们还没能开始进行烧录。所以,这时候你需要将串口线一端连接到DM6410的DB_UART,另一端连接到电脑。
接着,运行附带的DMATEK DNW程序,并将波特率设置为115200,下载地址设置为0x50030000。如图所示:
波特率设置完毕之后,点击软件的Serial Port-->Connect,连接到电脑的COM口。
当这一切繁琐的准备工作弄好以后,那么恭喜你,终于可以正式进行系统的烧录了!
让我们给开发板上电吧,看看板子给予了我们什么信息!
上电之后,迅速按下空格,映入我们眼帘的是一大堆选项;而这些选项,有部分是不符合我们要求的,需要进行整改的!没关系,不要紧张,其实我们需要修改的,仅仅只是两个选项而已,如图:
将图中标示的选项更改后完毕后,我们需要按下"W"将设置保存,否则下一次重启以后,迎接我们的将是再一次的设置。
这时候,我们已经可以不用借助于SD CARD了。换而言之,我们可以将插入的SD卡取下,然后将跳线选择到NAND模式。以后每次上电,你都能获得之前同样的菜单信息。
因为NAND是新的,为了保险起见,我们还是选择一次"A":格式化所有块区域。
OK,来到这里,说明你已经为烧录系统做好了充足的准备!那么,拿出你的USB线,将DMA6410的USB_H和电脑的USB口连接起来吧!毫无疑问,电脑会提示找到新硬件,没关系,驱动已经在你所得到的资料中附送了。还等什么,选择它,安装它!
这些的这些全部弄好以后,剩下的事情,就简单多了:
1. 选择"U",通过USB下载程序
2. 点击USB Port-->Uboot-->选择生成的eboot.bin,程序自动下载
3. 烧录成功后,会提示halt,重启开发板
4. 选择"U",通过USB下载程序
5. 点击USB Port-->Uboot-->选择生成的nk.bin,程序自动下载
6. 烧录成功后,会提示halt,重启开发板
7. 不再按空格键,等待5s后,系统直接进入WinCE
S3C6410的系统烧录,只有第一次是最麻烦的,以后的系统更新,只需要用到DNW进行相应的设置,然后再选择更新的系统即可。