Chinaunix首页 | 论坛 | 博客
  • 博客访问: 493349
  • 博文数量: 118
  • 博客积分: 5003
  • 博客等级: 大校
  • 技术积分: 1213
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-07 20:29
文章存档

2011年(8)

2010年(4)

2009年(12)

2008年(85)

2007年(9)

我的朋友

分类: LINUX

2008-05-22 16:57:24

        由于我们的sam9260是采用服务器的方式加载的,而u-boot不支持以dhcp(至少我现在不知道啊)的方式来启动,所以如何更新内核和文件系统?使用u-boot?使用u-boot将使我们要不断的修改启动参数等,还要修改pc本机的配置等,非常麻烦,解决的办法就是!
       使用linux来完成这一切的工作!
       由于我们将dataflash和nand flash是以设备的方式加载到系统当中的,所以在linux下面我们可以很简单的操作这些设备。
       以nand flash为例,我们可以编译嵌入式linux下使用的nand erase,这个命令在9260上运行,擦除nand flash设备/dev/mtdblock0,其实这个操作会将nand flash的分区0从0至200000全部擦除,然后使用cp命令将相应的映像文件uImage2.6.21拷贝到mtdblock0上。
       
        cp uImage2.6.21  /dev/mtdblock0

       重新启动系统正常,如果你的文件系统中没有做nand erase这个命令,其实也很简单,用u-boot做擦除工作,让linux做后面的工作。
       先执行
        nand read 20400000 0 200000
       将内核映像读入,然后
       nand erase 0 200000
       bootm 20400000
       这里提醒大家一点,u-boot不会主动去破坏内存的,即使你在执行擦出命令之后,bootm 2040000,启动命令写错,你只要重启系统,然后执行bootm 20400000,系统照样正常,哈哈,不用担心u-boot重启会破坏内存的,只要不断电就可以!
       这样我们就要考虑以后文件系统的可靠性了。
       我们编译出来的u-boot应该不能提供flash的写函数,写入应该由samba来完成,避免出厂之后,产品被人意外擦除,而linux由密码保证,不是明文传输,采用openssh来通信!
       然后,文件系统中将/dev/mtd设备的属性都做成只读的!文件系统也做成cramfs文件系统,也是只读的!

阅读(922) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~