分类:
2009-07-02 13:57:38
最近在上网卡项目的开发过程,需要完成一个需求就是驱动的自动安装与客户端的自动安装,熟称AUTORUN,就是在在上网卡USB插入后,如果用户是第一次安装就自动安装驱动跟客户端,如果不是就自动运行安装好的客户端,实现原理吗也很简单,首先映射出一个光盘,自动运行已经写好的AUTORUN.EXE程序,这个程序会检查注册表等一系列工作然后做相应的操作。那对于嵌入式开发来说,要想显示光盘中的内容,一定要在卖给用户前把光盘中的内容烧录到NANDFLASH上。具体如下:
0. 给NANDFLASH分区
1. 制作ISO文件
2. 转换ISO (为什么转换了,我跟我们平台的文件系统有关,我们的文件系统式TFFS的)
3. 烧录到NANDFLASH中的某个分区的位置上。
这个工作完成后,当USB插入计算机后,嵌入式系统会MOUNT各个分区,如果MOUNT到了你放ISO的分区就可以正常显示了,问题就发生在把ISO烧录到某个分区上的时候,刚开始的时候我就一股脑的把ISO文件给烧录到NANDFLASH上,但发现烧录完后系统无法启动了,我想可能是我分区没有分配了,就改了一下代码,编译好后就准备重新烧录,但这个时候折磨我几个星期的问题出现了,烧录软件提示无法烧录。刚开始我想可能是板坏了,我就相继坏了4到5个板,都是在第一次烧录ISO文件后,再也无法烧录了。摆在我面前的有一个问题:“怎么办”,在经过1到2天的迷茫会乱冲乱撞后,自己慢慢的冷静下来拿起了NANDFLASH的手册仔细的看了起来,我看啊,我看啊,这个时候一句话让我茅塞顿开,上面是这么说的:在进行NANDFLASH的擦除操作的时候,首先要扫描整个NANDFLASH,来确定是否有坏块,我用的是ST512的,这样判断坏块的标记就在SPARE区域的第六个字节,烧录工具就是这样做的,它在扫描的过程中判断每一个BLOCK的第一页与第二页的第6个字节是否不是0XFF,如果不是就记录起来,等把所有的坏块记录起来后,下来就做映射,根据NANDFLASH的特性坏块肯定是有的,所以一般都会有保留区,当有坏块发生时就拿保留区的坏块就行对换,就是一个映射过程。当坏块区超过了保留区的数目时烧录工具就认为无法完成映射就会停止烧录报NANDFLASH坏了。在知道这个原因后我把烧录工具修改了一下,终于好了。
下面是我写的AUTORUN程序,大家可以参考一下,共同学习一下: