免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chenrvmldd
打印 上一主题 下一主题

[驱动] 一个项目引起的7天写一个nor flash字符驱动程序的经历 [复制链接]

论坛徽章:
0
31 [报告]
发表于 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

论坛徽章:
0
32 [报告]
发表于 2011-03-26 22:29 |只看该作者
喜欢这样原汁原味,一步一步来的讲授~~~

论坛徽章:
0
33 [报告]
发表于 2011-03-27 10:53 |只看该作者
回复 1# chenrvmldd
支持楼主一下:)
关于在系统下更新内核和文件系统,有个简单的想法
系统下/dev/下有flash分区的节点
将内核或者文件系统的镜像文件直接写入相应节点下,就可完成,简单的一个cp命令:)

论坛徽章:
0
34 [报告]
发表于 2011-04-12 17:47 |只看该作者
我也被flash搞得头疼,我是vxworks下的 norflash 跟 nandflash操作 os映像升级

论坛徽章:
0
35 [报告]
发表于 2011-04-22 22:50 |只看该作者
膜拜下~

论坛徽章:
0
36 [报告]
发表于 2011-04-23 17:06 |只看该作者
呵呵,你的东西写得太多了,匆匆扫了一眼,说点自己的看法。实际的项目需求中,如果产品化,有一些东西不知 ...
wangfeifeiwc 发表于 2011-03-22 12:47


顶这个。

论坛徽章:
0
37 [报告]
发表于 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系列工具即可。



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

论坛徽章:
0
38 [报告]
发表于 2011-04-23 18:02 |只看该作者
最近几天,抽空还是再写个runtime时的linux下升级固件(uboot,kernel,rootfs)的帖子吧,呵呵,到时候,你看了就清楚了。

论坛徽章:
0
39 [报告]
发表于 2011-06-13 23:47 |只看该作者
很好的帖子!

论坛徽章:
0
40 [报告]
发表于 2011-06-14 21:59 |只看该作者
我至今还不明白为什么Nor需要驱动程序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP