CN103019932A - 一种获取嵌入式软件版本信息的方法 - Google Patents
一种获取嵌入式软件版本信息的方法 Download PDFInfo
- Publication number
- CN103019932A CN103019932A CN2012104886671A CN201210488667A CN103019932A CN 103019932 A CN103019932 A CN 103019932A CN 2012104886671 A CN2012104886671 A CN 2012104886671A CN 201210488667 A CN201210488667 A CN 201210488667A CN 103019932 A CN103019932 A CN 103019932A
- Authority
- CN
- China
- Prior art keywords
- pin
- state
- button
- led
- embedded software
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Circuit Arrangement For Electric Light Sources In General (AREA)
Abstract
本发明公开了一种获取嵌入式软件版本信息的方法,首先设计电路实现按键检测和LED驱动复用IO脚,当IO脚为输入方向时,通过IO状态的读取可以检测按键的按下和弹起状态,当IO脚为输出方向时,可以设置高低电平实现LED的亮灭控制。具体应用时,首先设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向。本发明通过MCU的单个IO管脚及简单的软件程序便实现嵌入式软件版本信息的读取,占用软硬件资源很少;通过按键的方式触发读取软件版本信息操作,避免了复杂的诊断协议和诊断接口。
Description
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及一种获取嵌入式软件版本信息的方法。
背景技术
在嵌入式软件的开发阶段,需要经过多次设计迭代并进行充分测试以提高软件可靠性和完善产品性能。采用软件版本的形式对设计过程建立里程碑,以版本标号的形式对各个软件版本进行标识和区分,然后在计算机上以文档管理的形式或者通过专业的版本控制工具对各个版本软件的源代码及其二进制文件进行整理及控制是一种有效的软件开发管理方式并已被广泛采用。在开发过程中,为了提高设计效率,开发和测试并行进行,为了测试缺陷、查找缺陷原因或定位缺陷的引入时间,可能需要对不同版本的软件进行测试。当测试出某个缺陷后,需要定位当前运行软件的版本号进行进一步分析,由于硬件版本的相对固定性,无法通过检查硬件电路的手段来判断当前运行软件的版本,如果软件本身包含版本信息,通过一种手段从软件中获得版本信息,便可以解决上述问题。
中国发明专利:一种在嵌入式软件中记录版本信息的方法(申请号:200710074006.3),提供了一种分析代码二进制文件读取软件版本信息的方法,在代码二进制文件的固定地址处存储版本信息,读取版本信息时,根据代码二进制文件的格式查找出文件中存储版本信息的位置,从而读取版本信息,这种方式需要分析者有权限读取代码二进制文件,并且由于需要根据文件类型及格式进行文件分析,所以需要比较专业的知识和工具,效率也比较低,本发明采用预留的MCU IO管脚进行软件版本的获取,通过在单个IO管脚上实现按键检测与LED驱动的复用,按键触发嵌入式设备输出当前软件版本信息,设备以特定方式LED脉冲闪烁的表现形式输出版本信息。这种方式避免了对代码二进制文件的专业分析和数据查找,可以高效直观得在测试现场获取版本信息,而且因为其简单易实现、占用资源少,在嵌入式设备领域具有广泛的适用性。
发明内容
本发明的目的就是为了解决上述问题,提供一种获取嵌入式软件版本信息的方法,它具有简单易实现、占用资源少的优点。
为了实现上述目的,本发明采用如下技术方案:
一种获取嵌入式软件版本信息的方法,首先利用按键、LED、限流电阻R1和上拉电阻R2四个元件搭建电路,然后设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向。
一种获取嵌入式软件版本信息的方法,具体步骤为:
步骤一:连接硬件电路:电阻R2和LED灯并联之后一端与电阻R1和按键连接,按键与电源连接,电阻R1接地,电阻R2和LED灯并联之后另一端与IO脚连接;
步骤二:设置IO脚为输入方向,启动定时采样周期;
步骤三:采样周期定时到达后,读取IO状态,如果IO状态为1,进入步骤四,否则不进行任何操作;
步骤四:判断三次采样周期读取到的IO状态是否全为1,如果是,进入步骤五,否则进入步骤三;
步骤五:采样周期定时到达,读取IO状态,如果IO状态为0,进入步骤六,否则不进行任何操作;
步骤六:停止采样周期定时,设置IO脚为输出方向,根据版本号常量VERSION和公式x=VERSION/10和y=VERSION%10计算x和y,进入步骤七;
步骤七:以频率为2Hz、占空比为50%的PWM形式输出x个周期的方波脉冲,进入步骤八;
步骤八:设置IO状态为0,启动3s间歇定时,定时到达后进入步骤九;
步骤九:以频率为1Hz、占空比为50%的PWM形式输出y个周期的方波脉冲,进入步骤十;
步骤十:设置IO状态为0,返回步骤二。
设计电路实现按键检测和LED驱动复用IO脚,当IO脚为输入方向时,通过IO状态的读取可以检测按键的按下和弹起状态,当IO脚为输出方向时,可以设置高低电平实现LED的亮灭控制。具体应用时,首先设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向。
软件版本标号采用带小数点的浮点数形式,格式为x.y,x和y的取值区间为[0,9],共计可包含0.1-9.9的99个版本,由于浮点数运算存在误差,在每次软件定版时,在软件程序中以一个1-99的整型常量VERSION来表示版本号,VERSION=(x.y)*10,从版本号常量VERSION中提取x和y的计算公式如下:
x=VERSION/10 (1-1)
y=VERSION%10 (1-2)
x等于版本号常量除以10的模,y等于版本号常量除以10的余数。
硬件电路包括按键、LED、限流电阻R1和上拉电阻R2四个元件。IO脚设置为输入方向时,按键按下,限流电阻R1端电压为VCC,LED截止处于熄灭状态,由于上拉电阻R2的作用,IO脚电平为高,状态值为1,当按键弹起,限流电阻R1端电压为0,LED截止,IO脚电平为低,状态值为0。IO设置为输出方向时,在按键处于弹起状态的条件下,IO电平为高时,LED导通点亮,IO电平为低时,LED截止熄灭,当按键按下时,LED截止熄灭。可选择红、黄、蓝不同颜色的LED,不同颜色LED的导通电压不同,决定所使用的限流电阻R1的阻值也不相同,同时调整限流电阻R1阻值,可以调节LED灯的亮度。该电路可以在嵌入式设备上直接实现,也可以通过嵌入式设备的预留端口在设备外部实现。
本发明的有益效果:
1.通过MCU的单个IO管脚及简单的软件程序便可以实现嵌入式软件版本信息的读取,占用软硬件资源很少;
2.通过按键的方式触发读取软件版本信息操作,避免了复杂的诊断协议和诊断接口;
3.通过LED脉冲闪烁的方式输出软件版本信息,直观方便;
4.电路设计和程序设计简单,可以方便地在不同的嵌入式设备上实现,具有广泛的适用性;
附图说明
图1为本发明的硬件电路图;
图2为本发明方法的软件设计流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图2所示,一种获取嵌入式软件版本信息的方法,具体步骤为:
步骤一:连接硬件电路:电阻R2和LED灯并联之后一端与电阻R1和按键连接,按键与电源连接,电阻R1接地,电阻R2和LED灯并联之后另一端与IO脚连接;
步骤二:设置IO脚输入方向,启动定时采样周期;
步骤三:采样周期定时到达后,读取IO状态,如果IO状态为1,进入步骤四,否则不进行任何操作;
步骤四:判断三次采样周期读取到的IO状态是否全为1,如果是,进入步骤五,否则进入步骤三;
步骤五:采样周期定时到达,读取IO状态,如果IO状态为0,进入步骤六,否则不进行任何操作;
步骤六:停止采样周期定时,设置IO脚为输出方向,根据版本号常量VERSION和公式x=VERSION/10和y=VERSION%10计算x和y,进入步骤七;
步骤七:以频率为2Hz、占空比为50%的PWM形式输出x个周期的方波脉冲,进入步骤八;
步骤八:设置IO状态为0,启动3s间歇定时,定时到达后进入步骤九;
步骤九:以频率为1Hz、占空比为50%的PWM形式输出y个周期的方波脉冲,进入步骤十;
步骤十:设置IO状态为0,返回步骤二。
设计电路实现按键检测和LED驱动复用IO脚,当IO脚为输入方向时,通过IO状态的读取可以检测按键的按下和弹起状态,当IO脚为输出方向时,可以设置高低电平实现LED的亮灭控制。具体应用时,首先设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向。
软件版本标号采用带小数点的浮点数形式,格式为x.y,x和y的取值区间为[0,9],共计可包含0.1-9.9的99个版本,由于浮点数运算存在误差,在每次软件定版时,在软件程序中以一个1-99的整型常量VERSION来表示版本号,VERSION=(x.y)*10,从版本号常量VERSION中提取x和y的计算公式如下:
x=VERSION/10 (1-1)
y=VERSION%10 (1-2)
x等于版本号常量除以10的模,y等于版本号常量除以10的余数。
如图1所示,硬件电路包括按键、LED、限流电阻R1和上拉电阻R2四个元件。IO脚设置为输入方向时,按键按下,限流电阻R1端电压为VCC,LED截止处于熄灭状态,由于上拉电阻R2的作用,IO脚电平为高,状态值为1,当按键弹起,限流电阻R1端电压为0,LED截止,IO脚电平为低,状态值为0。IO设置为输出方向时,在按键处于弹起状态的条件下,IO电平为高时,LED导通点亮,IO电平为低时,LED截止熄灭,当按键按下时,LED截止熄灭。可选择红、黄、蓝不同颜色的LED,不同颜色LED的导通电压不同,决定所使用的限流电阻R1的阻值也不相同,同时调整限流电阻R1阻值,可以调节LED灯的亮度。该电路可以在嵌入式设备上直接实现,也可以通过嵌入式设备的预留端口在设备外部实现。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (6)
1. 一种获取嵌入式软件版本信息的方法,其特征是,首先利用按键、LED、限流电阻R1和上拉电阻R2四个元件搭建电路,然后设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向。
2. 一种获取嵌入式软件版本信息的方法,其特征是,具体步骤为:
步骤一:连接硬件电路:电阻R2和LED灯并联之后一端与电阻R1和按键连接,按键与电源连接,电阻R1接地,电阻R2和LED灯并联之后另一端与IO脚连接;
步骤二:设置IO脚输入方向,启动定时采样周期;
步骤三:采样周期定时到达后,读取IO状态,如果IO状态为1,进入步骤四,否则不进行任何操作;
步骤四:判断三次采样周期读取到的IO状态是否全为1,如果是,进入步骤五,否则进入步骤三;
步骤五:采样周期定时到达,读取IO状态,如果IO状态为0,进入步骤六,否则不进行任何操作;
步骤六:停止采样周期定时,设置IO脚为输出方向,根据版本号常量与x和y的关系,计算x和y,进入步骤七;
步骤七:以一定的PWM形式输出x个周期的方波脉冲,进入步骤八;
步骤八:设置IO状态为0,启动3s间歇定时,定时到达后进入步骤九;
步骤九:以一定的PWM形式输出y个周期的方波脉冲,进入步骤十;
步骤十:设置IO状态为0,返回步骤二。
3. 如权利要求2所述一种获取嵌入式软件版本信息的方法,其特征是,所述步骤二中的采样周期为20ms。
4. 如权利要求2所述一种获取嵌入式软件版本信息的方法,其特征是,所述版本常量与x和y的关系为: x=VERSION/10和y=VERSION%10。
5. 如权利要求2所述一种获取嵌入式软件版本信息的方法,其特征是, 所述步骤七中PWM的频率为2Hz、占空比为50%。
6. 如权利要求2所述一种获取嵌入式软件版本信息的方法,其特征是,所述步骤九中PWM的频率为1Hz、占空比为50%。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210488667.1A CN103019932B (zh) | 2012-11-26 | 2012-11-26 | 一种获取嵌入式软件版本信息的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210488667.1A CN103019932B (zh) | 2012-11-26 | 2012-11-26 | 一种获取嵌入式软件版本信息的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019932A true CN103019932A (zh) | 2013-04-03 |
CN103019932B CN103019932B (zh) | 2015-08-05 |
Family
ID=47968557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210488667.1A Active CN103019932B (zh) | 2012-11-26 | 2012-11-26 | 一种获取嵌入式软件版本信息的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019932B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103760797A (zh) * | 2014-01-02 | 2014-04-30 | 常熟市天银机电股份有限公司 | 无显示器电子控制器的软件版本标识的确认方法 |
CN107391127A (zh) * | 2017-07-06 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | 软件版本信息保存方法和系统 |
CN107632843A (zh) * | 2017-09-26 | 2018-01-26 | 郑州云海信息技术有限公司 | 一种基于cpld_fpga的版本显示系统和方法 |
CN108008283A (zh) * | 2017-11-23 | 2018-05-08 | 莱克电气股份有限公司 | 一种版本号检测系统及方法 |
CN108536565A (zh) * | 2018-01-04 | 2018-09-14 | 郑州云海信息技术有限公司 | 一种cpld-fpga版本、阶段信息三状态显示模块化实现方法 |
CN111736881A (zh) * | 2020-06-12 | 2020-10-02 | 哈尔滨市科佳通用机电股份有限公司 | 机车信号车载设备软件更新系统及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174222A (zh) * | 2006-10-31 | 2008-05-07 | 中兴通讯股份有限公司 | 数据版本升级方法 |
-
2012
- 2012-11-26 CN CN201210488667.1A patent/CN103019932B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174222A (zh) * | 2006-10-31 | 2008-05-07 | 中兴通讯股份有限公司 | 数据版本升级方法 |
Non-Patent Citations (3)
Title |
---|
杜叔强: "浅析C语言中的浮点数", 《兰州工业高等专科学校学报》 * |
美国国家半导体公司: "发光二极管(LED)的相关应用及驱动技术", 《世界电子元器件》 * |
高琼等: "基于R5G0C314DA芯片的IO口复用", 《家电科技》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103760797A (zh) * | 2014-01-02 | 2014-04-30 | 常熟市天银机电股份有限公司 | 无显示器电子控制器的软件版本标识的确认方法 |
CN107391127A (zh) * | 2017-07-06 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | 软件版本信息保存方法和系统 |
CN107632843A (zh) * | 2017-09-26 | 2018-01-26 | 郑州云海信息技术有限公司 | 一种基于cpld_fpga的版本显示系统和方法 |
CN108008283A (zh) * | 2017-11-23 | 2018-05-08 | 莱克电气股份有限公司 | 一种版本号检测系统及方法 |
CN108536565A (zh) * | 2018-01-04 | 2018-09-14 | 郑州云海信息技术有限公司 | 一种cpld-fpga版本、阶段信息三状态显示模块化实现方法 |
CN111736881A (zh) * | 2020-06-12 | 2020-10-02 | 哈尔滨市科佳通用机电股份有限公司 | 机车信号车载设备软件更新系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103019932B (zh) | 2015-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019932B (zh) | 一种获取嵌入式软件版本信息的方法 | |
CN102143379B (zh) | 摄像机自动切换滤片的可靠性检测装置及其控制方法 | |
CN103713993B (zh) | 芯片验证平台及其实现芯片测试的方法 | |
CN203260298U (zh) | 一种lcd测试装置 | |
CN104679626A (zh) | Bios调试侦测系统及方法 | |
CN102253859A (zh) | 嵌入式设备系统死锁调试装置及方法 | |
CN201237737Y (zh) | 顺序事件记录性能测试装置 | |
CN112542210A (zh) | 一种高速率的flash极限读写速度测试装置 | |
CN203276265U (zh) | 基于usb接口的i2c总线测试装置 | |
CN202887174U (zh) | 一种获取嵌入式软件版本信息的电路 | |
CN109582571B (zh) | 在线调试方法、装置、调试从机、调试主机和系统 | |
CN204256725U (zh) | 一种检测装置 | |
CN106991022B (zh) | 一种基于扫描链的芯片分析方法 | |
CN203054149U (zh) | Cmos芯片自动开短路测试系统 | |
CN203324427U (zh) | 一种线束通断检测仪 | |
CN206224784U (zh) | 一种基于gprs通信技术的光电直读燃气表控制器 | |
CN104717813A (zh) | Led光源短路检测方法及装置、led背光及液晶显示设备 | |
CN109688658B (zh) | 一种光源驱动自适应的方法及装置 | |
CN201532629U (zh) | 序号烧录装置 | |
CN102011726B (zh) | 油泵耐久测试系统及其测试方法 | |
CN110824284A (zh) | 扩充基座检测方法及治具 | |
CN218938940U (zh) | 一种i2c总线测试工装 | |
CN203732621U (zh) | 一种测量功率因数测量仪表 | |
CN201884262U (zh) | 油泵耐久测试系统 | |
RU155907U1 (ru) | Устройство контроля последовательных каналов связи |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |