crifan 发表于 2011-03-25 19:31

回复 28# chenrvmldd


    前面已经说了啊,大概就是,对于nor flash,如果你的nor flash本身是常见的类型之一,那么Linux中已经包含了对应的Nor FLash驱动,就不用你自己再去实现了,只要在开发板初始化部分加上少量代码后,就可以支持了,然后对应Nor FLash,同样是属于Linux的MTD架构下的,其已经实现了对应的mtd的char设备,对于这些设备有个mtd util,就是一堆工具,包括flash的write,flash,read等,用这些工具,就可以实现你所要做的工作:
先erase工具删除对应部分内容,然后用write工具写入对应的数据,就OK了。

所以,从头到尾,你只需要加上少量代码(大概也就几行,定义一些结构体之类的)以支持nor flash,然后会使用mtd的util系列工具即可。

细节的话,可以邮件交流 green-waste (at) 163.com

azsoarsky 发表于 2011-03-26 22:29

喜欢这样原汁原味,一步一步来的讲授~~~:em03:

zhongfrank 发表于 2011-03-27 10:53

回复 1# chenrvmldd
支持楼主一下:)
关于在系统下更新内核和文件系统,有个简单的想法
系统下/dev/下有flash分区的节点
将内核或者文件系统的镜像文件直接写入相应节点下,就可完成,简单的一个cp命令:)

_MipS 发表于 2011-04-12 17:47

我也被flash搞得头疼,我是vxworks下的 norflash 跟 nandflash操作 os映像升级

yubinfu 发表于 2011-04-22 22:50

膜拜下~:em08:

pilgrim_kevin 发表于 2011-04-23 17:06

呵呵,你的东西写得太多了,匆匆扫了一眼,说点自己的看法。实际的项目需求中,如果产品化,有一些东西不知 ...
wangfeifeiwc 发表于 2011-03-22 12:47 http://bbs.chinaunix.net/images/common/back.gif

顶这个。

pilgrim_kevin 发表于 2011-04-23 17:11


实际的项目需求中,如果产品化,有一些东西不知道你有没有考虑:
       一个是何时触发升级的请求,除了盒子端要处理一些事情,服务器端如何配合?
       一个是备份的问题,如果升级中失败怎么办?(a 中途断电 b 所更新的内核或者文件系统本身就有问题)
   一个你的代码的移植性,如何后续换成nand flash你如何应对?
    呵呵,其实要考虑的问题很多,很明显你是走了弯路,因为使用mtd确实能很轻松完成你所完成的大部分工作,而你却弃之不用。

大家都是从新手走过来的,其实还是那句话,知之为知之,不知为不知,当你拿到一个项目需求时,不明白的地方,一定要找上级沟通,不要自己闷着脑袋搞。即使baidu/google后有思路了,也要找领导确认。还好目前一般都有概要设计和概要设计评审的机制。

回复 28# chenrvmldd


    前面已经说了啊,大概就是,对于nor flash,如果你的nor flash本身是常见的类型之一,那么Linux中已经包含了对应的Nor FLash驱动,就不用你自己再去实现了,只要在开发板初始化部分加上少量代码后,就可以支持了,然后对应Nor FLash,同样是属于Linux的MTD架构下的,其已经实现了对应的mtd的char设备,对于这些设备有个mtd util,就是一堆工具,包括flash的write,flash,read等,用这些工具,就可以实现你所要做的工作:
先erase工具删除对应部分内容,然后用write工具写入对应的数据,就OK了。

所以,从头到尾,你只需要加上少量代码(大概也就几行,定义一些结构体之类的)以支持nor flash,然后会使用mtd的util系列工具即可。



    这个是正解。所以楼主的学习精神可嘉,确实也学到了一些东西,但还是走了弯路,工作跟学习研究不一样,还是要使用更成熟的解决方案。另外,从开发管理角度来说,缺乏应有的评审。你的设计只“解决了问题”,但对扩展性、可靠性、可维护性和通用性这些要考虑的东西还远远不够。

crifan 发表于 2011-04-23 18:02

最近几天,抽空还是再写个runtime时的linux下升级固件(uboot,kernel,rootfs)的帖子吧,呵呵,到时候,你看了就清楚了。

TerryJk 发表于 2011-06-13 23:47

很好的帖子!

tempname3 发表于 2011-06-14 21:59

我至今还不明白为什么Nor需要驱动程序。
页: 1 2 3 [4] 5 6 7
查看完整版本: 一个项目引起的7天写一个nor flash字符驱动程序的经历