一種獲取嵌入式軟體版本信息的方法
2023-06-08 23:38:21 1
專利名稱:一種獲取嵌入式軟體版本信息的方法
技術領域:
本發明涉及嵌入式系統技術領域,尤其涉及一種獲取嵌入式軟體版本信息的方法。
背景技術:
在嵌入式軟體的開發階段,需要經過多次設計迭代並進行充分測試以提高軟體可 靠性和完善產品性能。採用軟體版本的形式對設計過程建立裡程碑,以版本標號的形式對 各個軟體版本進行標識和區分,然後在計算機上以文檔管理的形式或者通過專業的版本控 制工具對各個版本軟體的原始碼及其二進位文件進行整理及控制是一種有效的軟體開發 管理方式並已被廣泛採用。在開發過程中,為了提高設計效率,開發和測試並行進行,為了 測試缺陷、查找缺陷原因或定位缺陷的引入時間,可能需要對不同版本的軟體進行測試。當 測試出某個缺陷後,需要定位當前運行軟體的版本號進行進一步分析,由於硬體版本的相 對固定性,無法通過檢查硬體電路的手段來判斷當前運行軟體的版本,如果軟體本身包含 版本信息,通過一種手段從軟體中獲得版本信息,便可以解決上述問題。
中國發明專利一種在嵌入式軟體中記錄版本信息的方法(申請號 200710074006. 3),提供了一種分析代碼二進位文件讀取軟體版本信息的方法,在代碼二進 制文件的固定地址處存儲版本信息,讀取版本信息時,根據代碼二進位文件的格式查找出 文件中存儲版本信息的位置,從而讀取版本信息,這種方式需要分析者有權限讀取代碼二 進位文件,並且由於需要根據文件類型及格式進行文件分析,所以需要比較專業的知識和 工具,效率也比較低,本發明採用預留的MCU IO管腳進行軟體版本的獲取,通過在單個IO 管腳上實現按鍵檢測與LED驅動的復用,按鍵觸發嵌入式設備輸出當前軟體版本信息,設 備以特定方式LED脈衝閃爍的表現形式輸出版本信息。這種方式避免了對代碼二進位文件 的專業分析和數據查找,可以高效直觀得在測試現場獲取版本信息,而且因為其簡單易實 現、佔用資源少,在嵌入式設備領域具有廣泛的適用性。發明內容
本發明的目的就是為了解決上述問題,提供一種獲取嵌入式軟體版本信息的方 法,它具有簡單易實現、佔用資源少的優點。
為了實現上述目的,本發明採用如下技術方案
一種獲取嵌入式軟體版本信息的方法,首先利用按鍵、LED、限流電阻Rl和上拉電 阻R2四個元件搭建電路,然後設置IO腳為輸入方向,周期檢測按鍵操作,檢測到有效的按 鍵按下操作後,當按鍵彈起時將IO腳設置為輸出方向,以PWM的方式驅動LED,通過不同的 閃爍頻率、間歇時間和閃爍次數進行軟體版本的顯示,顯示完成後再次設置IO腳為輸入方向。
—種獲取嵌入式軟體版本信息的方法,具體步驟為
步驟一連接硬體電路電阻R2和LED燈並聯之後一端與電阻Rl和按鍵連接,按鍵與電源連接,電阻Rl接地,電阻R2和LED燈並聯之後另一端與IO腳連接;
步驟二 設置IO腳為輸入方向,啟動定時採樣周期;
步驟三採樣周期定時到達後,讀取IO狀態,如果IO狀態為1,進入步驟四,否則 不進行任何操作;
步驟四判斷三次採樣周期讀取到的IO狀態是否全為1,如果是,進入步驟五,否 則進入步驟三;
步驟五採樣周期定時到達,讀取IO狀態,如果IO狀態為0,進入步驟六,否則不 進行任何操作;
步驟六停止採樣周期定時,設置IO腳為輸出方向,根據版本號常量VERSION和公 式x=VERSI0N/10和y=VERSI0N% 10計算x和y,進入步驟七;
步驟七以頻率為2Hz、佔空比為50%的PWM形式輸出X個周期的方波脈衝,進入 步驟八;
步驟八設置IO狀態為0,啟動3s間歇定時,定時到達後進入步驟九;
步驟九以頻率為1Hz、佔空比為50%的PWM形式輸出y個周期的方波脈衝,進入 步驟十;
步驟十設置IO狀態為O,返回步驟二。
設計電路實現按鍵檢測和LED驅動復用IO腳,當IO腳為輸入方向時,通過IO狀 態的讀取可以檢測按鍵的按下和彈起狀態,當IO腳為輸出方向時,可以設置高低電平實現 LED的亮滅控制。具體應用時,首先設置IO腳為輸入方向,周期檢測按鍵操作,檢測到有效 的按鍵按下操作後,當按鍵彈起時將IO腳設置為輸出方向,以PWM的方式驅動LED,通過不 同的閃爍頻率、間歇時間和閃爍次數進行軟體版本的顯示,顯示完成後再次設置IO腳為輸 入方向。
軟體版本標號採用帶小數點的浮點數形式,格式為X. y,X和y的取值區間為
,共計可包含O. 1-9.9的99個版本,由於浮點數運算存在誤差,在每次軟體定版時,在軟 件程序中以一個1-99的整型常量VERSION來表示版本號,VERSION= (x. y) *10,從版本號常 量VERSION中提取X和y的計算公式如下
X=VERSION/IO (1-1)
y=VERS ION % 10 (1-2)
X等於版本號常量除以10的模,y等於版本號常量除以10的餘數。
硬體電路包括按鍵、LED、限流電阻Rl和上拉電阻R2四個元件。IO腳設置為輸入 方向時,按鍵按下,限流電阻Rl端電壓為VCC, LED截止處於熄滅狀態,由於上拉電阻R2的 作用,IO腳電平為高,狀態值為1,當按鍵彈起,限流電阻Rl端電壓為0,LED截止,IO腳電 平為低,狀態值為O。IO設置為輸出方向時,在按鍵處於彈起狀態的條件下,IO電平為高時, LED導通點亮,IO電平為低時,LED截止熄滅,當按鍵按下時,LED截止熄滅。可選擇紅、黃、 藍不同顏色的LED,不同顏色LED的導通電壓不同,決定所使用的限流電阻Rl的阻值也不相 同,同時調整限流電阻Rl阻值,可以調節LED燈的亮度。該電路可以在嵌入式設備上直接 實現,也可以通過嵌入式設備的預留埠在設備外部實現。
本發明的有益效果
1.通過MCU的單個IO管腳及簡單的軟體程序便可以實現嵌入式軟體版本信息的讀取,佔用軟硬體資源很少;
2.通過按鍵的方式觸發讀取軟體版本信息操作,避免了複雜的診斷協議和診斷接 Π ;
3.通過LED脈衝閃爍的方式輸出軟體版本信息,直觀方便;
4.電路設計和程序設計簡單,可以方便地在不同的嵌入式設備上實現,具有廣泛的適用性;
圖1為本發明的硬體電路圖2為本發明方法的軟體設計流程圖。
具體實施方式
下面結合附圖與實施例對本發明作進一步說明。
如圖2所示,一種獲取嵌入式軟體版本信息的方法,具體步驟為
步驟一連接硬體電路電阻R2和LED燈並聯之後一端與電阻Rl和按鍵連接,按鍵與電源連接,電阻Rl接地,電阻R2和LED燈並聯之後另一端與IO腳連接;
步驟二 設置IO腳輸入方向,啟動定時採樣周期;
步驟三採樣周期定時到達後,讀取IO狀態,如果IO狀態為1,進入步驟四,否則不進行任何操作;
步驟四判斷三次採樣周期讀取到的IO狀態是否全為1,如果是,進入步驟五,否則進入步驟三;
步驟五採樣周期定時到達,讀取IO狀態,如果IO狀態為0,進入步驟六,否則不進行任何操作;
步驟六停止採樣周期定時,設置IO腳為輸出方向,根據版本號常量VERSION和公式x=VERSI0N/10和y=VERSI0N% 10計算x和y,進入步驟七;
步驟七以頻率為2Hz、佔空比為50%的PWM形式輸出X個周期的方波脈衝,進入步驟八;
步驟八設置IO狀態為0,啟動3s間歇定時,定時到達後進入步驟九;
步驟九以頻率為1Hz、佔空比為50%的PWM形式輸出y個周期的方波脈衝,進入步驟十;
步驟十設置IO狀態為O,返回步驟二。
設計電路實現按鍵檢測和LED驅動復用IO腳,當IO腳為輸入方向時,通過IO狀態的讀取可以檢測按鍵的按下和彈起狀態,當IO腳為輸出方向時,可以設置高低電平實現 LED的亮滅控制。具體應用時,首先設置IO腳為輸入方向,周期檢測按鍵操作,檢測到有效的按鍵按下操作後,當按鍵彈起時將IO腳設置為輸出方向,以PWM的方式驅動LED,通過不同的閃爍頻率、間歇時間和閃爍次數進行軟體版本的顯示,顯示完成後再次設置IO腳為輸入方向。
軟體版本標號採用帶小數點的浮點數形式,格式為X. y,X和y的取值區間為
,共計可包含O. 1-9.9的99個版本,由於浮點數運算存在誤差,在每次軟體定版時,在軟體程序中以一個1-99的整型常量VERSION來表示版本號,VERSION= (x. y) *10,從版本號常 量VERSION中提取X和y的計算公式如下
X=VERSION/IO (1-1)
y=VERS ION % 10 (1-2)
X等於版本號常量除以10的模,y等於版本號常量除以10的餘數。
如圖1所示,硬體電路包括按鍵、LED、限流電阻Rl和上拉電阻R2四個元件。IO 腳設置為輸入方向時,按鍵按下,限流電阻Rl端電壓為VCC,LED截止處於熄滅狀態,由於 上拉電阻R2的作用,IO腳電平為高,狀態值為1,當按鍵彈起,限流電阻Rl端電壓為0,LED 截止,IO腳電平為低,狀態值為O。IO設置為輸出方向時,在按鍵處於彈起狀態的條件下, IO電平為高時,LED導通點亮,IO電平為低時,LED截止熄滅,當按鍵按下時,LED截止熄滅。 可選擇紅、黃、藍不同顏色的LED,不同顏色LED的導通電壓不同,決定所使用的限流電阻Rl 的阻值也不相同,同時調整限流電阻Rl阻值,可以調節LED燈的亮度。該電路可以在嵌入 式設備上直接實現,也可以通過嵌入式設備的預留埠在設備外部實現。
上述雖然結合附圖對本發明的具體實施方式
進行了描述,但並非對本發明保護範 圍的限制,所屬領域技術人員應該明白,在本發明的技術方案的基礎上,本領域技術人員不 需要付出創造性勞動即可做出的各種修改或變形仍在本發明的保護範圍以內。
權利要求
1.一種獲取嵌入式軟體版本信息的方法,其特徵是,首先利用按鍵、LED、限流電阻Rl和上拉電阻R2四個元件搭建電路,然後設置IO腳為輸入方向,周期檢測按鍵操作,檢測到有效的按鍵按下操作後,當按鍵彈起時將IO腳設置為輸出方向,以PWM的方式驅動LED,通過不同的閃爍頻率、間歇時間和閃爍次數進行軟體版本的顯示,顯示完成後再次設置IO腳為輸入方向。
2.一種獲取嵌入式軟體版本信息的方法,其特徵是,具體步驟為 步驟一連接硬體電路電阻R2和LED燈並聯之後一端與電阻Rl和按鍵連接,按鍵與電源連接,電阻Rl接地,電阻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=VERSI0N/10 和 y=VERSI0N%10。
5.如權利要求2所述一種獲取嵌入式軟體版本信息的方法,其特徵是,所述步驟七中PWM的頻率為2Hz、佔空比為50%。
6.如權利要求2所述一種獲取嵌入式軟體版本信息的方法,其特徵是,所述步驟九中P麗的頻率為IHz、佔空比為50%。
全文摘要
本發明公開了一種獲取嵌入式軟體版本信息的方法,首先設計電路實現按鍵檢測和LED驅動復用IO腳,當IO腳為輸入方向時,通過IO狀態的讀取可以檢測按鍵的按下和彈起狀態,當IO腳為輸出方向時,可以設置高低電平實現LED的亮滅控制。具體應用時,首先設置IO腳為輸入方向,周期檢測按鍵操作,檢測到有效的按鍵按下操作後,當按鍵彈起時將IO腳設置為輸出方向,以PWM的方式驅動LED,通過不同的閃爍頻率、間歇時間和閃爍次數進行軟體版本的顯示,顯示完成後再次設置IO腳為輸入方向。本發明通過MCU的單個IO管腳及簡單的軟體程序便實現嵌入式軟體版本信息的讀取,佔用軟硬體資源很少;通過按鍵的方式觸發讀取軟體版本信息操作,避免了複雜的診斷協議和診斷接口。
文檔編號G06F11/36GK103019932SQ20121048866
公開日2013年4月3日 申請日期2012年11月26日 優先權日2012年11月26日
發明者馬建輝, 王知學, 劉源楊, 王崗 申請人:山東省科學院自動化研究所