CN112506551A - 一种基于arm装置的usb软件升级方法 - Google Patents
一种基于arm装置的usb软件升级方法 Download PDFInfo
- Publication number
- CN112506551A CN112506551A CN202011610731.XA CN202011610731A CN112506551A CN 112506551 A CN112506551 A CN 112506551A CN 202011610731 A CN202011610731 A CN 202011610731A CN 112506551 A CN112506551 A CN 112506551A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- usb
- flash disk
- program
- usb flash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000003780 insertion Methods 0.000 claims abstract description 11
- 230000037431 insertion Effects 0.000 claims abstract description 11
- 238000012544 monitoring process Methods 0.000 claims abstract description 6
- 230000000903 blocking effect Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种基于ARM装置的USB软件升级方法,包括以下步骤:升级软件在启动时首先监听USB接口的插入事件,有U盘插入装置以后,将U盘挂载到系统设定的挂载点,根据规定好的文件名检查U盘中是否存在需要升级的程序升级包,如果没有,则不升级,程序继续等待U盘重新插入;如果有,则解压文件到临时目录,先杀掉正在运行的程序,然后将需要升级的程序从临时目录拷贝到目标目录,再查看是否有配置文件,如果有,将配置文件从临时目录拷贝到目标目录,然后删除临时目录,关机,整个升级流程结束。本发明解决了升级程序时需要通过网线连接设备,然后登录SSH,使用SCP命令将需要升级的程序拷贝到设备中等一系列手动操作的问题,使整个升级流程简单化。
Description
技术领域
本发明属于电子设备程序升级技术领域,尤其涉及了一种基于ARM装置的USB软件升级方法。
背景技术
在日常使用ARM平台的装置时,如果遇到升级程序的需求,一般的做法是使用网线连接装置,并且保证电脑和装置处于同一网段中,打开SSH工具连接设备,使用SCP命令将需要升级的程序拷贝到装置中的指定目录,来完成程序的升级。明显可以看到,这种方法操作起来十分麻烦,并且需要电脑,需要操作人员有一定的电脑网络基础和命令行操作基础,在诸多限制条件下,需要对装置进行升级有一定的困难,尤其是在现场使用时,如果没有电脑,就无法进行升级,这种情况下装置中的程序如果出现了问题,就无法在短时间内解决。
发明内容
本发明的目的在于针对现有技术的ARM平台软件升级方法中存在的不足,提出了一种基于ARM装置的USB软件升级方法。该方法设计合理,使用简单,自动化程度高,可以有效解决ARM平台软件升级程序时需要通过网线连接设备,然后登录SSH,使用SCP命令将需要升级的程序拷贝到设备中等一系列手动操作的问题,使整个升级流程简单化。
为了实现上述目的,本发明采用了以下技术方案:
一种基于ARM装置的USB软件升级方法,包括以下步骤:
步骤一,软件启动后,初始化监听USB接口的socket,创建句柄,并进行地址绑定,然后创建死循环,进入步骤二;
步骤二,循环中首先从创建的socket中以阻塞的方式接收消息,即如果没有USB插拔的消息,该函数会一直等待,直到有U盘插入或者拔出的动作;
步骤三,有U盘插入、拔出的动作时,从上一步中的函数中读取消息,保存到缓存中,根据读取到的消息,判断U盘是插入还是拔出,根据U盘插入或者拔出的动作,进入下面的条件分支:
A.U盘插入:挂载U盘到系统设定的挂载点,进入目录,根据约定好的升级包命名规则,查找U盘中是否有需要升级的程序升级包,如果没有,等待U盘拔出,进入步骤二,如果有,则进入步骤四,开始升级过程;
B.U盘拔出:从系统设定的挂载点卸载U盘,进入步骤二;
步骤四,当U盘中有程序升级包时,将程序升级包解压到临时目录,杀掉当前正在运行的程序,将需要升级的程序拷贝到目标目录,然后读取升级包中的升级配置文件,该配置文件中保存的是需要升级的程序所用到的配置文件信息及其存放路径,如果该配置文件中有需要升级的配置文件,则将需要升级的配置文件拷贝到目标目录,同时将保存版本号的文件拷贝到目标目录;
步骤五,删除步骤四中解压到临时目录中的文件,调用关机命令关闭装置,整个升级过程结束。
本发明进一步说明,在步骤一中,创建socket句柄时,使用UDP数据报协议,并且需要将句柄设置为阻塞监听,即没有USB设备插拔的动作时,不做任何动作,也不继续进行后面的步骤。
本发明进一步说明,在步骤二中,创建的死循环的目的是,如果插入了U盘,但是U盘中没有升级包,那么要在等待U盘拔掉之后继续检测U盘的插入动作,否则程序退出后无法再监听U盘的插入动作。
本发明进一步说明,在步骤三中,U盘插拔的消息会保存到缓存中,消息类型为字符串类型,可以在字符串中查找USB的关键字,来判断是U盘的插入还是其他USB设备的插入,并且根据消息中的关键字来判断U盘是插入还是拔出。
本发明进一步说明,在步骤四中,程序升级包中包括升级程序、升级包版本信息、升级配置文件和需要升级的其他文件,升级配置文件中保存有其他文件的路径信息,这样在升级时可读取配置文件,得到需要升级的其他文件的目标路径,以满足相同平台不同产品的升级需求。
本发明进一步说明,步骤五中,删除解压到临时目录的升级文件是为了以后升级时,不会有文件冲突,或者有上次需要升级的文件而本次没有,会导致错误的升级了其他文件。
本发明主要是升级软件在启动时首先监听USB接口的插入事件,有U盘插入装置以后,将U盘挂载到系统设定的挂载点,根据规定好的文件名检查U盘中是否存在需要升级的程序升级包,如果没有,则不升级,程序继续等待U盘重新插入;如果有,则解压文件到临时目录,先杀掉正在运行的程序,然后将需要升级的程序从临时目录拷贝到目标目录,再查看是否有配置文件,如果有,将配置文件从临时目录拷贝到目标目录,然后删除临时目录,关机,整个升级流程结束。
本发明的优点:
(1)兼容性强。只要带有USB type A接口的ARM装置,在约定好升级包命名规则以及打包规则后,都可以使用该方法进行升级。
(2)使用方便。在使用时,只需要将软件升级包拷贝到U盘中,将U盘插入到需要升级的ARM装置中,ARM装置中的升级软件会自动进行升级,大大简化了升级流程。
附图说明
图1是本发明一实施例的升级软件的内部流程图。
图2是本发明一实施例中升级操作的流程图。
具体实施方式
下面结合附图对本发明进一步说明。
实施例1:
一种基于ARM装置的USB软件升级方法,包括以下步骤(如图1所示):
步骤一,软件启动后,初始化监听USB接口的socket,创建句柄,并进行地址绑定,然后创建死循环,进入步骤二;
创建socket句柄时,使用UDP数据报协议,并且需要将句柄设置为阻塞监听,即没有USB设备插拔的动作时,不做任何动作,也不继续进行后面的步骤。
步骤二,循环中首先从创建的socket中以阻塞的方式接收消息,即如果没有USB插拔的消息,该函数会一直等待,直到有U盘插入或者拔出的动作;
创建的死循环的目的是,如果插入了U盘,但是U盘中没有升级包,那么要在等待U盘拔掉之后继续检测U盘的插入动作,否则程序退出后无法再监听U盘的插入动作。
步骤三,有U盘插入、拔出的动作时,从上一步中的函数中读取消息,保存到缓存中,根据读取到的消息,判断U盘是插入还是拔出,根据U盘插入或者拔出的动作,进入下面的条件分支:
A.U盘插入:挂载U盘到系统设定的挂载点,进入目录,根据约定好的升级包命名规则,查找U盘中是否有需要升级的程序升级包,如果没有,等待U盘拔出,进入步骤二,如果有,则进入步骤四,开始升级过程;
B.U盘拔出:从系统设定的挂载点卸载U盘,进入步骤二;
U盘插拔的消息会保存到缓存中,消息类型为字符串类型,可以在字符串中查找USB的关键字,来判断是U盘的插入还是其他USB设备的插入,并且根据消息中的关键字来判断U盘是插入还是拔出。
步骤四,当U盘中有程序升级包时,将程序升级包解压到临时目录,杀掉当前正在运行的程序,将需要升级的程序拷贝到目标目录,然后读取升级包中的升级配置文件,该配置文件中保存的是需要升级的程序所用到的配置文件信息及其存放路径,如果该配置文件中有需要升级的配置文件,则将需要升级的配置文件拷贝到目标目录,同时将保存版本号的文件拷贝到目标目录;
程序升级包中包括升级程序、升级包版本信息、升级配置文件和需要升级的其他文件,升级配置文件中保存有其他文件的路径信息,这样在升级时可读取配置文件,得到需要升级的其他文件的目标路径,以满足相同平台不同产品的升级需求。
步骤五,删除步骤四中解压到临时目录中的文件,调用关机命令关闭装置,整个升级过程结束。
删除解压到临时目录的升级文件是为了以后升级时,不会有文件冲突,或者有上次需要升级的文件而本次没有,会导致错误的升级了其他文件。
本实施例在实际应用中的操作过程(如图2所示):
(1)将打包好的程序升级包拷贝到U盘中;
(2)将U盘插入需要升级的ARM装置;
(3)ARM装置中的升级程序自动执行升级过程;
(4)升级完成后,关机,拔掉U盘,即完成ARM装置中软件升级操作。
显然,上述实施例仅仅是为了清楚的说明本发明所作的举例,而并非对本发明实施的限定。对于所属技术领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动;这里无需也无法对所有的实施方式予以穷举;而由此所引申出的显而易见的变化或变动仍处于本发明的保护范围之中。
Claims (4)
1.一种基于ARM装置的USB软件升级方法,其特征在于包括以下步骤:
步骤一,软件启动后,初始化监听USB接口的socket,创建句柄,并进行地址绑定,然后创建死循环,进入步骤二;
步骤二,循环中首先从创建的socket中以阻塞的方式接收消息,即如果没有USB插拔的消息,该函数会一直等待,直到有U盘插入或者拔出的动作;
步骤三,有U盘插入、拔出的动作时,从上一步中的函数中读取消息,保存到缓存中,根据读取到的消息,判断U盘是插入还是拔出,根据U盘插入或者拔出的动作,进入下面的条件分支:
A.U盘插入:挂载U盘到系统设定的挂载点,进入目录,根据约定好的升级包命名规则,查找U盘中是否有需要升级的程序升级包,如果没有,等待U盘拔出,进入步骤二,如果有,则进入步骤四,开始升级过程;
B.U盘拔出:从系统设定的挂载点卸载U盘,进入步骤二;
步骤四,当U盘中有程序升级包时,将程序升级包解压到临时目录,杀掉当前正在运行的程序,将需要升级的程序拷贝到目标目录,然后读取升级包中的升级配置文件,该配置文件中保存的是需要升级的程序所用到的配置文件信息及其存放路径,如果该配置文件中有需要升级的配置文件,则将需要升级的配置文件拷贝到目标目录,同时将保存版本号的文件拷贝到目标目录;
步骤五,删除步骤四中解压到临时目录中的文件,调用关机命令关闭装置,整个升级过程结束。
2.根据权利要求1所述的基于ARM装置的USB软件升级方法,其特征在于,在步骤一中,创建socket句柄时,使用UDP数据报协议,并且需要将句柄设置为阻塞监听,即没有USB设备插拔的动作时,不做任何动作,也不继续进行后面的步骤。
3.根据权利要求1所述的基于ARM装置的USB软件升级方法,其特征在于,在步骤三中,U盘插拔的消息会保存到缓存中,消息类型为字符串类型,可以在字符串中查找USB的关键字,来判断是U盘的插入还是其他USB设备的插入,并且根据消息中的关键字来判断U盘是插入还是拔出。
4.根据权利要求1所述的基于ARM装置的USB软件升级方法,其特征在于,在步骤四中,程序升级包中包括升级程序、升级包版本信息、升级配置文件和需要升级的其他文件,升级配置文件中保存有其他文件的路径信息,这样在升级时可读取配置文件,得到需要升级的其他文件的目标路径,以满足相同平台不同产品的升级需求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610731.XA CN112506551A (zh) | 2020-12-30 | 2020-12-30 | 一种基于arm装置的usb软件升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610731.XA CN112506551A (zh) | 2020-12-30 | 2020-12-30 | 一种基于arm装置的usb软件升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112506551A true CN112506551A (zh) | 2021-03-16 |
Family
ID=74953071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011610731.XA Pending CN112506551A (zh) | 2020-12-30 | 2020-12-30 | 一种基于arm装置的usb软件升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506551A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113741934A (zh) * | 2021-08-24 | 2021-12-03 | 江苏科曜能源科技有限公司 | 一种逆变器程序升级方法 |
CN113973055A (zh) * | 2021-12-08 | 2022-01-25 | 北京安博通科技股份有限公司 | 一种基于本地u盘的网络设备配置方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901154A (zh) * | 2010-07-16 | 2010-12-01 | 天津七一二通信广播有限公司 | 基于USB Host和U盘实现设备程序升级和维护的方法 |
CN105278990A (zh) * | 2015-10-23 | 2016-01-27 | 中航华东光电有限公司 | 应用程序升级方法 |
CN107748668A (zh) * | 2017-11-27 | 2018-03-02 | 北京奇安信科技有限公司 | 一种应用程序升级的方法及装置 |
CN110928562A (zh) * | 2019-10-30 | 2020-03-27 | 江苏东大集成电路系统工程技术有限公司 | 一种用于Android盒子的软件升级方法 |
CN111930408A (zh) * | 2020-06-29 | 2020-11-13 | 东风电驱动系统有限公司 | 一种软件升级方法 |
-
2020
- 2020-12-30 CN CN202011610731.XA patent/CN112506551A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901154A (zh) * | 2010-07-16 | 2010-12-01 | 天津七一二通信广播有限公司 | 基于USB Host和U盘实现设备程序升级和维护的方法 |
CN105278990A (zh) * | 2015-10-23 | 2016-01-27 | 中航华东光电有限公司 | 应用程序升级方法 |
CN107748668A (zh) * | 2017-11-27 | 2018-03-02 | 北京奇安信科技有限公司 | 一种应用程序升级的方法及装置 |
CN110928562A (zh) * | 2019-10-30 | 2020-03-27 | 江苏东大集成电路系统工程技术有限公司 | 一种用于Android盒子的软件升级方法 |
CN111930408A (zh) * | 2020-06-29 | 2020-11-13 | 东风电驱动系统有限公司 | 一种软件升级方法 |
Non-Patent Citations (2)
Title |
---|
YANGKELE: "PC客户端与Android服务端的Socket同步通信(USB)(转载)", 《CSDN:HTTPS://BLOG.CSDN.NET/YANGKELE/ARTICLE/DETAILS/6333400》 * |
毛强等: "一种Android机顶盒USB自动升级实现", 《电子设计工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113741934A (zh) * | 2021-08-24 | 2021-12-03 | 江苏科曜能源科技有限公司 | 一种逆变器程序升级方法 |
CN113973055A (zh) * | 2021-12-08 | 2022-01-25 | 北京安博通科技股份有限公司 | 一种基于本地u盘的网络设备配置方法和系统 |
CN113973055B (zh) * | 2021-12-08 | 2022-03-25 | 北京安博通科技股份有限公司 | 一种基于本地u盘的网络设备配置方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6131192A (en) | Software installation | |
US6189051B1 (en) | System and method for manufacturing hard disk master by downloading selected programs and drivers from a host through a network | |
US9111033B2 (en) | Compiling source code for debugging with user preferred snapshot locations | |
US8997085B2 (en) | Image delta-based upgrade of complex stack in software appliance | |
CN112506551A (zh) | 一种基于arm装置的usb软件升级方法 | |
US7032213B1 (en) | Fixing incompatible applications using a light debugger | |
US20130275948A1 (en) | Compiling Source Code For Debugging With Expanded Snapshots | |
US20170315830A1 (en) | On-demand loading of dynamic scripting language code for reduced memory usage | |
CN111078262A (zh) | 应用的热修复方法和装置 | |
US20080127034A1 (en) | Distributed resource understanding tool management | |
US20110270602A1 (en) | Opening A Message Catalog File For a Language That Is Not Installed | |
CN103544151A (zh) | linux系统中数据处理的方法及系统 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN114706533A (zh) | 一种基于gpt分区表的多文件多级启动加载方法及装置 | |
CN113900693A (zh) | 一种固件升级方法、装置、系统、电子设备及存储介质 | |
CN114003269A (zh) | 组件处理方法、装置、电子设备及存储介质 | |
CN107908418B (zh) | 光纤通道节点卡的逻辑程序升级方法及光纤通道总线设备 | |
WO2023060893A1 (zh) | 存储空间管理方法、装置、设备及存储介质 | |
CN109245920B (zh) | 交换机自动配置方法、装置、交换机和存储介质 | |
CN113377457A (zh) | 一种信号处理分系统及数字信号处理dsp程序在线加载方法 | |
CN113220303A (zh) | 一种内核模块的编译方法和系统 | |
CN109886028B (zh) | 远程启用Oracle透明加密的方法 | |
CN111708688A (zh) | 一种协助分析关机充电异常的方法和装置 | |
CN112114811A (zh) | 一种编译方法、装置和设备 | |
TWI382311B (zh) | Transmission control system and its method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210316 |