近期在做在Linux系统中做在应用中升级功能,网络传输数据,实现的目标是:通过网络可以对u-boot、内核、文件系统的文件进行修改升级。
这里记录一下简单思路:
首先从全局考虑,要实现的功能网络通信部分和嵌入式系统对emmc的操作。
网络通信:
该部分考虑的问题主要是使用什么通信协议;是否允许多机连接服务器端,也就是同时允许多台嵌入式平台进行升级操作;大文件传输时,如果突然断网的问题;局域网和广域网的升级问题,在该问题中只考虑局域网,广域网与局域网类似;等等其他,如果有网友还有其他想法留言讨论哈。
嵌入式系统对emmc的操作:
该部分可能复杂一些,首先是对emmc的按块操作,由于u-boot和内核都是按块操作的,所以实现了按块操作后,直接升级u-boot和内核问题不是很大。以前做过了u-boot和内核的移植,对于存放和读取都有一定了解,因此该部分应该容易实现。
另外就是对文件系统的升级了,该部分遇到的主要问题如果要升级的部分正在使用,那么升级时是不能直接覆盖的(难道Linux有例外?),因此需要先删除它然后拷贝新的文件,这里需要解决找到使用该文件的进程,然后kill掉,之后才可升级。该部分是文件系统形式操作,不是对块操作了。
接下来进入细化的记录讨论。
一 在应用中升级u-boot、内核以及文件系统,布布扣,bubuko.com
原文地址:http://blog.csdn.net/wang_shuai_ww/article/details/38582245