www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]0 引 言隨著嵌入式計算機(jī)應(yīng)用技術(shù)的發(fā)展,嵌入式技術(shù)已經(jīng)廣泛應(yīng)用到現(xiàn)代生活的方方面面。在零售系統(tǒng)方面,零售收款機(jī)是嵌入式應(yīng)用的一個重要領(lǐng)域。目前,市場上的收款機(jī)大體

0 引 言

隨著嵌入式計算機(jī)應(yīng)用技術(shù)的發(fā)展,嵌入式技術(shù)已經(jīng)廣泛應(yīng)用到現(xiàn)代生活的方方面面。在零售系統(tǒng)方面,零售收款機(jī)是嵌入式應(yīng)用的一個重要領(lǐng)域。目前,市場上的收款機(jī)大體上可分為三類:第一類是基于PC和DOS/Windows體系的,這類產(chǎn)品目前占市場絕大多數(shù),屬于高端產(chǎn)品,價格太高,適合大的商場和銷售系統(tǒng);第二類是基于單片機(jī)(51系列居多)的,基本上沒有操作系統(tǒng)的支持,功能也較弱,主要用于餐飲娛樂,占據(jù)中低檔市場;第三類是正在快速發(fā)展的基于嵌入式芯片和嵌入式操作系統(tǒng)的,價格較低,功能較強(qiáng),適用于中高檔市場,這類產(chǎn)品將是未來市場的主體。以上三類收款機(jī)的開發(fā)平臺形形色色,基本上是每一款就是一種開發(fā)平臺,沒有統(tǒng)一的規(guī)范、開發(fā)和調(diào)試平臺。系統(tǒng)升級和移植困難,尤其對于一體機(jī)等需要第三方開發(fā)軟件的應(yīng)用,造成開發(fā)上更大的難度。虛擬機(jī)VM的改進(jìn),Java應(yīng)用的速度已經(jīng)不是太大的問題。

1 JUnit分析與應(yīng)用

MUnit是JUnit的子集,使用方法類似JUnit,在這里只對JUnit做分析。JUnit是一個開源的Java測試框架,它是XUnit測試體系架構(gòu)的一種實(shí)現(xiàn)。在JUnit單元測試框架的設(shè)計時,設(shè)定了三個總體目標(biāo),第一個是簡化測試的編寫,這種簡化包括測試框架的學(xué)習(xí)和實(shí)際測試單元的編寫;第二個是使測試單元保持持久性;第三個則是可以利用既有的測試編寫相關(guān)的測試。所以這些目的也是為什么使用模式的根本原因。JUnit的設(shè)計使用以 Patterns Generate Architectures的方式來架構(gòu)系統(tǒng)。其設(shè)計思想是通過從零開始應(yīng)用設(shè)計模式,然后一個接一個,直至獲得最終合適的系統(tǒng)架構(gòu)。JUnit是一個測試Framework,測試人員只需開發(fā)測試用例,然后把這些測試用例(TestCase)組成請求(可能是一個或者多個),發(fā)送到JUnit,然后由 JUnit執(zhí)行,最后報告詳細(xì)測試結(jié)果。其中,包括執(zhí)行的時間、錯誤方法、錯誤位置等。這樣測試用例的開發(fā)人員就不需知道JUnit內(nèi)部的細(xì)節(jié),只要符合它定義的請求格式即可。從JUnit的角度考慮,它并不需要知道請求TestCase的具體操作信息,僅把它當(dāng)作一種命令來執(zhí)行,然后把執(zhí)行測試結(jié)果發(fā)給測試人員。這樣就使JUnit框架和TestCase的開發(fā)人員獨(dú)立開來,使得請求的一方不必知道接收請求一方的詳細(xì)信息,更不必知道是怎樣被接收,以及怎樣被執(zhí)行的,實(shí)現(xiàn)系統(tǒng)的松耦合。

Junit.Framework包中包含了JUnit測試類所需要的所有基類,實(shí)際上這個包也是整個JUnit的基礎(chǔ)框架。TestCase類是這個包的核心類,測試人員對TestCase類進(jìn)行繼承開發(fā)自己的類測試驅(qū)動程序。其余的類用來支援這個TestCase類,比如TestSuite用類聚合多個測試用例(Testcase),Assert類實(shí)現(xiàn)期望值和實(shí)際值的驗(yàn)證,TestResult收集所有測試用例執(zhí)行后的結(jié)果。Test接口是這個包的關(guān)鍵所在,它建立了TestCase和TestSuite之間的關(guān)聯(lián),同時為整個框架做了擴(kuò)展預(yù)留。在J2SE下簡單應(yīng)用舉例:

右擊項(xiàng)目名稱選擇新建→JUnit測試用例

 

(運(yùn)行)調(diào)試方式→JUnit測試。圖1為運(yùn)行結(jié)果。

 

JUnit在J2SE下可以很好地應(yīng)用,但是在J2ME下應(yīng)用存在比較大的困難,因?yàn)樵贘2ME下沒有反射機(jī)制。在實(shí)際測試中可以利用其優(yōu)點(diǎn)來最大地發(fā)揮。

2 POSDouble測試

由于MIDP 1.0下不支持浮點(diǎn)數(shù)(float)運(yùn)算,因此必須開發(fā)適合J2ME下的浮點(diǎn)數(shù)運(yùn)算方法。這里主要實(shí)現(xiàn)了以下方法,這些方法的測試都是通過JUnit進(jìn)行的白盒測試,測試數(shù)據(jù)的選擇主要是根據(jù)市場的實(shí)際需求設(shè)定,保證了現(xiàn)階段的實(shí)際需求;而在MIDP 2.0下可以支持浮點(diǎn)數(shù)的運(yùn)算,無須自己開發(fā)浮點(diǎn)數(shù)運(yùn)算的方法。

類名:POSDouble,主要是用于浮點(diǎn)數(shù)計算,主要測試以下方法:

POSDouble:將字符串轉(zhuǎn)換為POSDouble數(shù)。

POSDouble.Add:加法。

POSDouble.Sub:減法。

POSDouble.Mult:乘法。

POSDouble.Div:除法。

POSDouble isMax:比較浮點(diǎn)數(shù)大小。

POSDouble tolong:將POSDouble數(shù)轉(zhuǎn)化成長整數(shù)。

POSDouble測試用例(以POSDouble.Add:加法為例):

 

3 通用接口測試

由于POSDouble是在J2SE下開發(fā)的,所以使用了JUnit工具,而其他接口函數(shù)是在J2ME下開發(fā)的,所以接口的測試采用了MUnit(JUnit的子集)工具。MUnit工具的使用方法、規(guī)則請參考《MUnit測試集編寫規(guī)范》。

(1)測試框架

目錄結(jié)構(gòu)的總原則是:源代碼目錄與測試代碼目錄分離,互不干擾;測試代碼目錄與源代碼目錄的分支結(jié)構(gòu)一致,便于查找、維護(hù)。

(2)仿真環(huán)境測試執(zhí)行流程

首先編寫測試代碼,測試代碼盡量放在與源代碼相對應(yīng)的測試目錄中。修改測試程序入口,如使用ePos.set.FunctionFormFactory。

(3)目標(biāo)環(huán)境測試執(zhí)行流程

編寫測試代碼,修改測試程序入口,構(gòu)建測試代碼的Jar文件,下載Jar文件到目標(biāo)機(jī)運(yùn)行。

(4)測試捷徑

通常情況下,在目標(biāo)環(huán)境下測試,需要先編寫測試用例、再編譯、再下載、再運(yùn)行,如果突然想到一個測試用例,又需重復(fù)上述操作步驟,就會非常耗時。為了增強(qiáng)測試的靈活性,可以加入鍵盤監(jiān)聽事件。首先編寫鍵盤監(jiān)聽類,將所有的測試單步對應(yīng)到不同的按鍵上去,即按一個鍵執(zhí)行一個操作步驟。如:“a”對應(yīng)open 操作,“b”對應(yīng)claim操作,“c”對應(yīng)setDeviceEnable(true)操作。要執(zhí)行一個完整的測試過程,就分步驟按相應(yīng)的按鍵。要想執(zhí)行不同的測試用例就按不同的順序按相應(yīng)的按鍵,這樣就不再需要編寫測試用例、編譯、構(gòu)建、下載,可以節(jié)約很多時間,測試效率得到很大提升。同時可以結(jié)合原有測試用例,讓不同的按鍵對應(yīng)到不同的(完整的)測試用例,這樣不占用程序入口,同樣可以實(shí)現(xiàn)并執(zhí)行原來的測試用例。

(5)快速回歸測試

bug修正后需要做回歸測試,為了在目標(biāo)環(huán)境上回歸測試,必須經(jīng)過以下步驟:

①從CVS更新最新源碼;

②將Java源碼編譯成C文件;

③構(gòu)建Elf文件;

④下載Elf文件;

⑤執(zhí)行測試用例做回歸測試。

其中的步驟②~④將耗費(fèi)很多時間。為了提升回歸測試效率,將設(shè)備的DeviceServices從Elf文件中剝離出來,單獨(dú)生成一個Jar文件,如果只有DeviceSer-Vices更新,只需要重新編譯DeviceServices的Jar文件,不需更改Elf文件。更新Jar文件比更新Elf文件從步驟及時間上都高效得多。[!--empirenews.page--]

4 示例

(1)占用一個入口,加入鍵盤監(jiān)聽事件,如圖2所示。

 

(2)在keyboardlistener中編寫按鍵對應(yīng)的測試用例或方法,如圖3所示。

 

(3)編譯構(gòu)建Elf文件。先編譯evm,ejpos兩個項(xiàng)目;編譯ROMJavaWin.c,NativeFunctionTable.c用于構(gòu)建Elf(含evm,ejpos);在LambdaIDE下構(gòu)建Elf文件并優(yōu)化;通過LBOOT下載到目標(biāo)環(huán)境中。

(4)編譯測試用例的Jar文件。

(5)在目標(biāo)機(jī)上根據(jù)按鍵執(zhí)行不同的測試用例。

bug回歸測試時,更新DeviceService的內(nèi)容,重復(fù)步驟(5)即可完成回歸測試。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

德國康佳特亮相上海工博會,展示多款應(yīng)用就緒的嵌入式解決方案平臺

關(guān)鍵字: 嵌入式 傳感器 處理器

雙方攜手為客戶打造以存儲為核心的模塊化基礎(chǔ)架構(gòu),支持先進(jìn)的多裸片架構(gòu)設(shè)計

關(guān)鍵字: 非易失性存儲 半導(dǎo)體 嵌入式

本屆年會將在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)舉行,面向嵌入式設(shè)計工程師推出25門技術(shù)課程

關(guān)鍵字: 嵌入式 MCU 模擬

上海2025年9月5日 /美通社/ -- 由紐倫堡會展(上海)有限公司舉辦的上海國際嵌入式會議將于 2025 年 10 月 16-17 日在上海世博展覽館舉辦。 此次會議將由三個版塊組成:嵌入式技術(shù)會議、汽...

關(guān)鍵字: 嵌入式 CE CHINA EMBEDDED

從外部看,電子系統(tǒng)仿佛一個統(tǒng)一的學(xué)科或設(shè)備,各組成部分協(xié)同工作,渾然一體。然而揭開表象,其內(nèi)在卻是另一番景象:一個碎片化、多層次的世界——其中每一層都獨(dú)立且復(fù)雜,衍生出各自特有的工具、專家、工作流程,甚至哲學(xué)體系。

關(guān)鍵字: 嵌入式 電子系統(tǒng) 半導(dǎo)體

8位單片機(jī)在嵌入式設(shè)計領(lǐng)域已經(jīng)成為半個多世紀(jì)以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復(fù)雜,8位單片機(jī)依然不斷發(fā)展,積極應(yīng)對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機(jī)系列,配備了先進(jìn)的獨(dú)立...

關(guān)鍵字: 單片機(jī) 嵌入式 CPU

深圳2025年8月28日 /美通社/ -- 8月26日,2025 ELEXCON深圳國際電子展盛大啟幕。本屆大會以"All for AI"為主題,深圳市德...

關(guān)鍵字: AI 工業(yè)級 SSD 嵌入式

深圳2025年8月26日 /美通社/ -- 8月26日,由博聞創(chuàng)意會展主辦的 第22屆深圳國際電子展暨嵌入式展(elexcon2025)在深圳(福田)會展中心隆重開幕。 作為中國電子與嵌入式技術(shù)領(lǐng)域的專業(yè)大展,本屆展會...

關(guān)鍵字: 嵌入式 電子 高通 AI

模塊化設(shè)計作為一種將系統(tǒng)拆分為獨(dú)立、可復(fù)用組件的方法,能夠在低代碼平臺中實(shí)現(xiàn)功能的靈活組合,并最大限度地提升系統(tǒng)性能。本文將探討如何通過模塊化設(shè)計,使得低代碼平臺既能快速適應(yīng)變化,又能保持高效穩(wěn)定的運(yùn)行。

關(guān)鍵字: 模塊化設(shè)計 嵌入式

CPU親和度通過限制進(jìn)程或線程可以運(yùn)行的CPU核心集合,使得它們只能在指定的CPU核心上執(zhí)行。這可以減少CPU緩存的失效次數(shù),提高緩存命中率,從而提升系統(tǒng)性能。

關(guān)鍵字: Linux 嵌入式
關(guān)閉