- 论坛徽章:
- 0
|
实际的项目需求中,如果产品化,有一些东西不知道你有没有考虑:
一个是何时触发升级的请求,除了盒子端要处理一些事情,服务器端如何配合?
一个是备份的问题,如果升级中失败怎么办?(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系列工具即可。
这个是正解。所以楼主的学习精神可嘉,确实也学到了一些东西,但还是走了弯路,工作跟学习研究不一样,还是要使用更成熟的解决方案。另外,从开发管理角度来说,缺乏应有的评审。你的设计只“解决了问题”,但对扩展性、可靠性、可维护性和通用性这些要考虑的东西还远远不够。 |
|