亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式支付系統(tǒng)模擬器

        2015-11-10 07:10:36賴光明郭朝珍
        關(guān)鍵詞:模擬器應(yīng)用程序內(nèi)存

        賴光明,郭朝珍

        (福州大學(xué) 數(shù)學(xué)與計算機科學(xué)學(xué)院,福建 福州 350108)

        0 引言

        隨著生活水平的提高和社會的發(fā)展,人們對電子產(chǎn)品的需求也越來越大,這大大促進了嵌入式系統(tǒng)產(chǎn)業(yè)迅速發(fā)展壯大。無論是銀行取錢的ATM(Automated Tellermachine,自動取款機),還是通信使用的手機,甚至是日常小朋友玩的智能玩具中的一塊小芯片都離不開嵌入式技術(shù),可以說嵌入式產(chǎn)品已經(jīng)遍及人們生活的各個方面[1]。嵌入式系統(tǒng)產(chǎn)品各種各樣,不僅在各行各業(yè)得到了廣泛的應(yīng)用,并且對人們的生活和社會的發(fā)展產(chǎn)生了重大的影響。隨著消費者對嵌入式產(chǎn)品使用需求的擴大,需要開發(fā)者開發(fā)出更高性能的軟硬件系統(tǒng),同時也將導(dǎo)致嵌入式系統(tǒng)的開發(fā)學(xué)習(xí)難度越來越大。嵌入式開發(fā)過程中經(jīng)常會碰到軟硬件協(xié)同開發(fā)、嵌入式產(chǎn)品硬件資源非常昂貴、涉及軟硬件知識以及開發(fā)時間長[5]等問題[2-4]。

        為了解決以上問題,本文研究和開發(fā)了一個在Windows環(huán)境下的嵌入式支付系統(tǒng)模擬器,模擬嵌入式支付系統(tǒng)的部分功能,實現(xiàn)在模擬器上進行部分應(yīng)用程序的開發(fā)和調(diào)試,并且在應(yīng)用程序盡可能少地修改甚至不修改的情況下,能夠在嵌入式支付真機上正常地運行起來。

        1 嵌入式支付系統(tǒng)模擬器的體系結(jié)構(gòu)

        1.1 系統(tǒng)體系結(jié)構(gòu)

        系統(tǒng)的體系結(jié)構(gòu)如圖1所示,可以看出系統(tǒng)包括3個部分:真機輔助工具、人機交互以及模擬器處理。

        (1)真機輔助工具模塊

        真機輔助工具是指一些輔助工具的集合,這些工具的目的是加快嵌入式支付應(yīng)用程序的開發(fā)。目前系統(tǒng)擁有資源工具,該工具是一個由MFC開發(fā)的WIN32應(yīng)用程序,它能夠產(chǎn)生嵌入式支付應(yīng)用程序所需的菜單數(shù)據(jù)。

        (2)人機交互模塊

        主控模塊控制模擬環(huán)境。該模塊包含人機交互界面和人機交互處理。

        人機交互界面:模擬實現(xiàn)嵌入式支付真機的界面,并將模擬器處理模塊處理的結(jié)果展現(xiàn)給用戶觀看。

        人機交互處理:模擬實現(xiàn)嵌入式支付系統(tǒng)的按鍵輸入與LCD輸出功能。

        (3)模擬器處理模塊

        模擬器處理模塊實現(xiàn)嵌入式支付系統(tǒng)的模擬,是整個模擬器的核心部分。該模塊又可以分為3層,分別是中間層、系統(tǒng)層以及配置層。

        圖1 系統(tǒng)體系結(jié)構(gòu)

        1.2 系統(tǒng)運行流程

        系統(tǒng)的運行流程為:(1)系統(tǒng)啟動主控線程,通過配置信息對象讀取配置文件內(nèi)容;(2)主控線程根據(jù)窗口配置內(nèi)容繪制人機交互界面,接著根據(jù)模擬器相關(guān)信息對模擬器環(huán)境進行設(shè)置并對將要運行的應(yīng)用DLL加載進來;(3)啟動模擬器線程,將應(yīng)用跑起來;(4)應(yīng)用運行,用戶通過人機交互界面輸入數(shù)據(jù)并將數(shù)據(jù)傳遞到模擬器線程,模擬器接收用戶的輸入并處理;(5)用戶結(jié)束應(yīng)用,系統(tǒng)結(jié)束模擬器線程;(6)系統(tǒng)結(jié)束主控線程。

        2 嵌入式支付系統(tǒng)模擬器的實現(xiàn)

        2.1 配置層的實現(xiàn)

        配置層包括配置信息以及配置信息對象。配置信息是一個數(shù)據(jù)文件,它的數(shù)據(jù)框架由模擬器可配置信息組成,具體內(nèi)容由用戶填充。配置信息對象是一個類,它提供統(tǒng)一的接口給用戶操作配置信息。

        模擬器系統(tǒng)采用配置信息可以實現(xiàn)兩個功能:機型的可選性和應(yīng)用的動態(tài)加載。因為嵌入式支付系統(tǒng)適用于多種機型,對于不同的機型,它們的差異只是人機交互界面不同、內(nèi)存大小不同、Flash大小不同以及底層驅(qū)動的不一致,所以模擬器系統(tǒng)采用配置文件來動態(tài)繪制模擬器人機交互界面、動態(tài)申請模擬器內(nèi)存大小、動態(tài)設(shè)置模擬器Flash大小以及動態(tài)加載模擬器驅(qū)動。因此模擬器系統(tǒng)采用配置信息可以實現(xiàn)機型的可選性。對于同一機型的不同應(yīng)用程序也同樣可以采用配置文件實現(xiàn)動態(tài)加載。

        2.2 基礎(chǔ)系統(tǒng)模擬——“內(nèi)存池”模擬內(nèi)存管理

        內(nèi)存池技術(shù)提供一種內(nèi)存分配方式,它向系統(tǒng)申請一大塊地址連續(xù)的內(nèi)存,然后根據(jù)自己的需求管理這塊內(nèi)存,如果出現(xiàn)內(nèi)存塊已經(jīng)不夠的情況時,繼續(xù)申請新的內(nèi)存。這種做法的優(yōu)點是能夠降低內(nèi)存碎片來提高性能。

        在Windows上模擬嵌入式支付系統(tǒng)的內(nèi)存管理,理念上與內(nèi)存池技術(shù)非常類似:向Windows系統(tǒng)申請真機內(nèi)存條同等大小的內(nèi)存,使用該塊內(nèi)存模擬嵌入式支付系統(tǒng)的內(nèi)存管理機制。其與內(nèi)存池技術(shù)有以下兩個不同的地方:(1)如果出現(xiàn)內(nèi)存塊不足,拋出異常,而不是繼續(xù)申請;(2)模擬的目的不是為了減低內(nèi)存碎片,而是盡可能模擬嵌入式支付系統(tǒng)內(nèi)存的分配方式。

        2.3 驅(qū)動集模擬

        2.3.1 點陣映射模擬LCD驅(qū)動

        LCD(Liquid Crystal Display,液晶顯示器)作為輸出設(shè)備,用戶將要顯示的信息傳送到顯示緩沖區(qū)中,然后LCD通過 “點燈”的方式將其顯示出來。在PC上也有LCD,是否可以通過PC上的LCD來模擬嵌入式支付真機的LCD?答案是可以的,只需要在PC上模擬嵌入式支付系統(tǒng)的LCD驅(qū)動即可。在PC上模擬LCD驅(qū)動就是將需要顯示的點陣數(shù)據(jù)繪制到PC的LCD上,目前WIN32將一個點陣數(shù)據(jù)顯示到LCD上可以有以下兩種方式:(1)采用 DOS下漢字的顯示原理,利用 SetPixel函數(shù)將點陣數(shù)據(jù)一個點一個點地畫,這種方式的好處是彩屏的繪制,但是繪制速度慢;(2)直接利用緩沖區(qū)的數(shù)據(jù)創(chuàng)建BMP對象,這種方式可以快速地刷屏,但是只能實現(xiàn)單色繪制[6]。本系統(tǒng)借鑒這兩種方法,采用雙緩沖機制,利用SetPixel函數(shù)將點陣數(shù)據(jù)繪制到一個中間DC(Device Context,設(shè)備描述表)中,在一定的條件下將該塊DC繪制到屏幕上。這樣既可以實現(xiàn)彩屏的繪制,繪制速度也可以控制。

        2.3.2 文件模擬Flash驅(qū)動

        Flash是一種存儲芯片,它是嵌入式支付真機重要組成部分。它不僅可以保存用戶的應(yīng)用信息,也可以保持系統(tǒng)的配置信息[7]。

        Flash其實是一大塊連續(xù)的地址區(qū)域,該區(qū)域里面的數(shù)據(jù)是可讀寫、可永久保存的。因為Flash的空間比較大,如果直接用內(nèi)存去模擬Flash,可能會導(dǎo)致一些配置比較低的PC內(nèi)存不夠。模擬器系統(tǒng)根據(jù)Flash可永久保存特性,采用文件對Flash進行模擬。把文件看成是一大塊連續(xù)的地址空間,打開文件后可以獲取該地址空間的首地址,加上偏移地址就可以獲得相應(yīng)的地址空間。這樣Flash驅(qū)動的模擬就變得簡單了,通過WIN32對文件的打開、地址偏移、讀取、寫入、關(guān)閉函數(shù)來實現(xiàn)Flash驅(qū)動的初始化、讀取、寫入和擦除等操作。

        2.4 支付業(yè)務(wù)支撐模塊的設(shè)計與實現(xiàn)

        支付業(yè)務(wù)支撐模塊是與支付應(yīng)用直接相關(guān)的模塊,該模塊為支付應(yīng)用提供銀行卡卡號信息和部分加密算法。支付具體的流程由于不同銀行的支付協(xié)議不一致導(dǎo)致各不相同,因此具體的支付處理由應(yīng)用層程序根據(jù)不同的需求實現(xiàn)不同應(yīng)用,而嵌入式支付系統(tǒng)只提供用戶刷卡的銀行卡信息以及提供常見的幾個加密算法。

        嵌入式支付系統(tǒng)由于嵌入式資源的限制,并不能包括所有的加密算法。其加解密算法包括des和3des的加解密。該部分內(nèi)容可以直接移植到模擬器中,不需要進行修改。

        2.5 中間層的移植

        在嵌入式支付系統(tǒng)中封裝一個middleware(中間層),該層的內(nèi)容是對底層信息的封裝,供給應(yīng)用程序直接使用。目前模擬器系統(tǒng)middleware有GDI子系統(tǒng)、GUI子系統(tǒng)和 DB子系統(tǒng)。GDI(Graphics Device Interface,圖形設(shè)備接口)對底層LCD驅(qū)動進行封裝,提供接口給GUI模塊和應(yīng)用程序調(diào)用。嵌入式支付系統(tǒng)中GDI模塊包括動態(tài)繪制區(qū)、繪圖、貼圖、文字、光標(biāo)、滾動條和開機啟動提示。在LCD驅(qū)動已經(jīng)完成模擬的前提下,GDI調(diào)用LCD驅(qū)動接口完成繪制操作。在模擬器系統(tǒng)中,大部分GDI操作可以直接從嵌入式支付系統(tǒng)中移植,而以下兩部分內(nèi)容則需要模擬:(1)對char進行位操作實現(xiàn)相應(yīng)bit位的讀寫、取反實現(xiàn)GDI中bit操作;(2)模擬器系統(tǒng)中采用直接讀取文字的bin文件來模擬文字的點陣信息的查詢操作。

        2.6 WIN32函數(shù)隔離的設(shè)計與實現(xiàn)

        嵌入式支付系統(tǒng)參考WIN32中的UI設(shè)計,設(shè)計了適合其終端應(yīng)用的GUI子系統(tǒng)。這樣設(shè)計既方便不同產(chǎn)品、項目界面風(fēng)格的統(tǒng)一,也方便應(yīng)用對操作界面的開發(fā)。但它給嵌入式支付系統(tǒng)帶來便利的同時也給模擬器系統(tǒng)帶來一個問題:嵌入式支付系統(tǒng)GUI函數(shù)與WIN32中GUI函數(shù)存在大量重名,而且兩者的函數(shù)是不可替代的。例如在WIN32的GUI模塊中擁有CreateWindow函數(shù),在嵌入式支付系統(tǒng)中的GUI模塊中也有CreateWindow函數(shù),并且兩者的參數(shù)與實現(xiàn)功能不一致。又因為整個嵌入式支付系統(tǒng)采用C語言與匯編語言共同開發(fā),所以模擬器系統(tǒng)需要解決一個大問題:C環(huán)境下如何使得重名函數(shù)共存,并且使其調(diào)用不發(fā)生混亂,即在主控系統(tǒng)中調(diào)用的是WIN32中的GUI函數(shù),而在模擬器應(yīng)用程序中調(diào)用模擬器GUI函數(shù)。如圖2所示,本系統(tǒng)提出利用DLL隔離、宏隔離以及區(qū)域隔離3種方式共同處理該問題。

        圖2 WIN32函數(shù)隔離

        3 實驗結(jié)果與分析

        3.1 實驗環(huán)境

        硬件環(huán)境:CPU為Pentium4及以上;內(nèi)存為1 024 MB及以上;可用硬盤空間為1 024 MB及以上。

        軟件環(huán)境:操作系統(tǒng)為Microsoft Windows 7;開發(fā)工具為VS2010;開發(fā)語言為C和C++混合編程。

        3.2 實驗結(jié)果分析

        移植計算器應(yīng)用(如圖3所示)、菜單應(yīng)用、萬年歷應(yīng)用程序到模擬器上進行測試,移植過程沒有進行源代碼的修改,只是將其轉(zhuǎn)換為DLL,運行結(jié)果與嵌入式支付真機上一致。

        圖3 計算器應(yīng)用

        從測試結(jié)果可得出以下結(jié)論:

        (1)模擬器的可靠性:實際運行在嵌入式支付真機上的4個應(yīng)用程序源碼保持不變,只是將其轉(zhuǎn)換為DLL,通過X86VC編譯器編譯后可以運行在模擬器上,并且其結(jié)果與真機上的結(jié)果保持一致。通過以上4個應(yīng)用程序的測試,說明該模擬器是可靠的。

        (2)模擬器應(yīng)用開發(fā)的優(yōu)越性:將應(yīng)用程序移植到模擬器上之后,只需將該DLL配置到應(yīng)用啟動項中就可以直接運行,期間遇到問題可以直接使用VS2010的調(diào)試工具進行調(diào)試。因此在模擬器上開發(fā)應(yīng)用程序不需要真機,不需要燒片時間,可以通過VS2010提供的調(diào)試工具進行調(diào)試,大大加快了應(yīng)用的開發(fā)測試速度。

        4 結(jié)論

        本文研究和開發(fā)了一個在Windows環(huán)境下的嵌入式支付系統(tǒng)模擬器,該模擬器基于功能模擬的基本思想,通過Windows現(xiàn)有API模擬基礎(chǔ)系統(tǒng),提出了保持對外接口不變、模擬函數(shù)功能的原則,實現(xiàn)底層驅(qū)動的模擬。通過配置文件,解決了模擬器適用于不同機型的問題。本文還提出同時利用DLL隔離、宏隔離以及區(qū)域隔離3種方式,解決了C環(huán)境下重名函數(shù)共存,并且調(diào)用不混亂的問題。

        [1]李婷.ARM全系統(tǒng)模擬器中I2C模塊的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2012.

        [2]Zhang Xiuping, Yang Guowu, Zheng Desheng.Componentbased model for simulating the MMU coprocessor[C].2010 2nd InternationalConference on Information Engineering and Computer Science(ICIECS),2010,42(8):1-4.

        [3]鄧漫齡.ARM嵌入式Linuz系統(tǒng)的研究與實現(xiàn)[D].北京:北京郵電大學(xué),2009.

        [4]柯化成.嵌入式系統(tǒng)全系統(tǒng)模擬器框架設(shè)計與實現(xiàn)[D].杭州:浙江大學(xué),2006.

        [5]Wang Ping.Research on the embedded system[J].Teaching Education Technology and Training,2008(1):21-22.

        [6]GRANHAM I.面對對象方法原理與實踐 (英文版第3版)[M].北京:機械工業(yè)出版社,2003.

        [7]王洋.NAND Flash在嵌入式系統(tǒng)中的仿真與應(yīng)用[D].成都:電子科技大學(xué),2011.

        猜你喜歡
        模擬器應(yīng)用程序內(nèi)存
        了不起的安檢模擬器
        盲盒模擬器
        劃船模擬器
        刪除Win10中自帶的應(yīng)用程序
        電腦報(2019年12期)2019-09-10 05:08:20
        “春夏秋冬”的內(nèi)存
        動態(tài)飛行模擬器及其發(fā)展概述
        基于內(nèi)存的地理信息訪問技術(shù)
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        三星電子將開設(shè)應(yīng)用程序下載商店
        微軟軟件商店開始接受應(yīng)用程序
        日本人妻伦理在线播放| 日韩啪啪精品一区二区亚洲av| 91亚洲色图在线观看| 一本色道久久亚洲精品| av色欲无码人妻中文字幕| 国产精品免费久久久久影院| 国产在线h视频| 精品视频手机在线免费观看| 欧美成人秋霞久久aa片| 国产成人vr精品a视频| 无码人妻丝袜在线视频| 美女丝袜诱惑在线播放蜜桃| 亚洲一区二区三区尿失禁| 老司机在线精品视频网站| 福利网在线| h视频在线免费观看视频| 中文字字幕人妻中文| 日韩av无码成人无码免费| 无码天堂在线视频| 久久伊人精品中文字幕有尤物| 蜜桃av抽搐高潮一区二区| 91日本精品国产免| 国产高跟丝袜在线诱惑| 国产精品日韩经典中文字幕| 欧美性猛交xxxx富婆| 亚洲国产麻豆综合一区| 麻豆国产成人av高清在线| 人妻丰满熟妇av无码区app| 精品久久人人爽天天玩人人妻| 国产成人综合久久精品推荐免费| 久久91精品国产一区二区| 国产午夜福利精品一区二区三区| 最新国产日韩AV线| 在线一区二区三区免费视频观看| 东北女人啪啪对白| 亚洲精品一区二区三区大桥未久| 免费人成视频欧美| 伊人久久大香线蕉av色婷婷色| 欧美内射深喉中文字幕| 国产亚洲精品国产福利在线观看| 按摩少妇高潮在线一区|