主权项 |
一种嵌入式设备软件升级的方法,嵌入式设备带有调试端口,其特征在于,包括以下几个步骤:(1)当设备进行软件升级时,设备先读取Boot参数区域起始地址的值,根据该值的不同将升级文件以相对应的文件名写到文件系统区域,然后修改Boot参数区域起始地址的值,完成升级;(2)当设备能够正常启动时,则转向步骤(3);当升错了软件导致设备启动不了时,则转向步骤(4);(3)所述Boot程序读取Boot参数区域起始地址的值,根据该值的不同将文件系统区域中相对应的文件内容读入内存中,然后跳到内核入口地址开始执行,完成启动;(4)将所述调试端口通过调试线缆与电脑串口相连接,打开串口调试工具,重新给设备上电,Boot程序上电后会有几秒钟等待时间,用户在这期间按回车键进入用户命令模式;然后,在用户命令模式加上两条命令,一个是显示Boot参数区域起始地址的值,一个是修改Boot参数区域起始地址的值;所述Boot参数区域起始地址的值为1或2;步骤(1)中,升级时,如果Boot参数区域起始地址的值为1,就将升级软件内容以文件名为B写到文件系统区域中,然后将Boot参数区域起始地址的值修改为2;升级时,如果Boot参数区域起始地址的值为2,就将升级软件内容以文件名为A写到文件系统区域中,然后将Boot参数区域起始地址的值修改为1;升级时,如果Boot参数区域起始地址的值既不是1也不是2,就将升级软件内容以文件名为A写到文件系统区域中,然后将Boot参数区域起始地址的值修改为1;步骤(3)中,设备启动时,如果Boot参数区域起始地址的值为1,就将文件系统区域的文件A读取到内存中,然后跳到内核入口地址开始执行;如果Boot参数区域起始地址的值为2,就将文件系统区域的文件B读取到内存中,然后跳到内核入口地址开始执行;如果Boot参数区域起始地址的值既不是1也不是2,就将文件系统区域的文件A读取到内存中,然后跳到内核入口地址开始执行;步骤(4)中,显示Boot参数区域起始地址的值的命令为s;修改Boot参数区域起始地址的值的命令为w<param>,param的取值只能是1或2。 |