嵌入式Linux固件升级
开发需求
· 基于TCP/IP完成驱动模块和应用程序的更新、升级
特殊声明
该文档中驱动程序和应用程序统称为“固件”。
· 主 机:VMWare--Fedora 9
· 开发板:yc2440--64MB Nandflash;Kernel:2.6.24.4
· 编译器:arm-linux-gcc-4.0.0
设计原理图
说明:
· 开发板启动FileServer应用程序,作为TCP/IP的Server端,提供接收升级文件的服务。
· 当需要进行固件升级时,PC启动FileClient应用程序,作为TCP/IP的Client端,提供发送升级文件的服务。
· Shell脚本文件StartShell判断是否有固件需要升级,如果有更新现有固件后,启动更新后的固件,如果没有,启动现有固件。
文件名称所在目录功能
FileClientLinux PC下任意目录PC机TCP/IP客户端,
向开发板发送升级固件。
FileServerLinux开发板
/tmp/update/开发板TCP/IP服务端,
接收客户端发送的升级固件。
StartShellLinux开发板
/etc/init.d/替换相应固件,
启动相应固件。
实现步骤
1. 配置启动文件(开发板:192.168.1.168)
#cp ~/StartShell /etc/init.d/
#vi /etc/init.d/rcS
在该文件的最后面,填写下面信息:
./StartShell
重新启动开发板。
2. 发送更新文件文件(Linux PC:192.168.1.200)
#./fileclie