一種實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法以及裝置制造方法
【專利摘要】本發(fā)明公開了一種實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法以及裝置,其中,該方法包括:基于第一操作系統(tǒng)的軟件平臺(tái)將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間,第一操作系統(tǒng)用于為基于第二操作系統(tǒng)開發(fā)的應(yīng)用程序的調(diào)試平臺(tái)提供模擬的硬件平臺(tái),然后將函數(shù)庫中符合設(shè)定條件的函數(shù)確定為軟件平臺(tái)調(diào)用應(yīng)用程序的接口函數(shù),并根據(jù)應(yīng)用程序支持的通信模式,確定軟件平臺(tái)與所述硬件平臺(tái)的模擬通訊接口。采用本技術(shù)方案建立的調(diào)試平臺(tái),能夠提供模擬的硬件平臺(tái),避免了實(shí)際的硬件平臺(tái)對調(diào)試應(yīng)用程序的影響,從而提高了調(diào)試應(yīng)用程序的效率。
【專利說明】一種實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法以及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域中嵌入式技術(shù),具體地,涉及一種實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法以及裝置。
【背景技術(shù)】
[0002]隨著嵌入式系統(tǒng)在智能電網(wǎng)中的廣泛應(yīng)用,支持嵌入式系統(tǒng)開發(fā)、調(diào)試的各種操作系統(tǒng)也被廣泛應(yīng)用在智能電網(wǎng)中,例如嵌入式操作系統(tǒng)Linux。
[0003]在嵌入式系統(tǒng)的應(yīng)用開發(fā)中,主要涉及構(gòu)建開發(fā)平臺(tái)和調(diào)試平臺(tái)的各種軟件以及設(shè)備。現(xiàn)有技術(shù)中,基于操作系統(tǒng)提供的開發(fā)平臺(tái)完成應(yīng)用程序的開發(fā)后,需要對開發(fā)的應(yīng)用程序進(jìn)行調(diào)試,以檢驗(yàn)開發(fā)的應(yīng)用程序是否可以再實(shí)際應(yīng)用中正常運(yùn)行,以及在正常運(yùn)行中是否存在影響功能實(shí)現(xiàn)或運(yùn)行效率的問題,使技術(shù)人員可以根據(jù)調(diào)試結(jié)果對應(yīng)用程序進(jìn)行完善。
[0004]目前,針對嵌入式系統(tǒng)開發(fā)的應(yīng)用程序進(jìn)行調(diào)試時(shí),需要將開發(fā)的應(yīng)用程序通過指定通訊接口下載到相應(yīng)的硬件板卡(硬件平臺(tái))中,利用裝載在相應(yīng)的操縱系統(tǒng)中的調(diào)試軟件(軟件平臺(tái)),控制硬件板卡運(yùn)行,硬件板卡將通過指定通訊接口將運(yùn)行中產(chǎn)生的數(shù)據(jù)或最終運(yùn)行結(jié)果反饋至調(diào)試軟件,由調(diào)試軟件通過設(shè)定方式顯示給技術(shù)人員。該由調(diào)試軟件和硬件板卡構(gòu)成的調(diào)試平臺(tái),一方面,要求技術(shù)人員掌握硬件板卡的相關(guān)操作技術(shù),以能夠控制硬件板卡運(yùn)行應(yīng)用程序;一方面,要求基于指定操作系統(tǒng)的調(diào)試軟件與硬件板卡的通訊接口正常,以保證運(yùn)行中的硬件板卡與調(diào)試軟件的信息交互。
[0005]實(shí)際應(yīng)用中,用于開發(fā)應(yīng)用程序的開發(fā)平臺(tái)會(huì)影響對調(diào)試平臺(tái)的選擇。例如,利用基于Linux系統(tǒng)的開發(fā)平臺(tái)開發(fā)的應(yīng)用程序,其調(diào)試平臺(tái)中的調(diào)試軟件需要是在Linux系統(tǒng)中運(yùn)行的調(diào)試軟件,相應(yīng)的,硬件板卡也需要支持該Linux系統(tǒng)支持的通訊方式,如此,才能保證對應(yīng)用程序的正常調(diào)試?;谏鲜銮闆r,技術(shù)人員需要在熟悉Linux的相關(guān)技術(shù)后,才能夠進(jìn)行應(yīng)用程序的調(diào)試,以保證對調(diào)試的正確操作和調(diào)試結(jié)果的準(zhǔn)確判斷,可見,該調(diào)試應(yīng)用程序的方式過于依賴于技術(shù)人員的操作,調(diào)試效率低,并且需要硬件板卡的正常運(yùn)行,才能夠進(jìn)行調(diào)試,否則將影響應(yīng)用程序的調(diào)試,甚至不能夠?qū)?yīng)用程序進(jìn)行調(diào)試,進(jìn)一步降低了對應(yīng)用程序的調(diào)試效率。
[0006]綜上所述,現(xiàn)有技術(shù)中基于調(diào)試平臺(tái)對應(yīng)用程序進(jìn)行調(diào)試時(shí),會(huì)降低對應(yīng)用程序的調(diào)試效率。
【發(fā)明內(nèi)容】
[0007]為了解決現(xiàn)有技術(shù)中應(yīng)用程序的調(diào)試效率低的問題,本發(fā)明的一個(gè)方面提出一種實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法以及裝置。
[0008]本發(fā)明的一個(gè)方面,提出了一種實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法,包括:
[0009]基于第一操作系統(tǒng)的軟件平臺(tái)將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間,所述第一操作系統(tǒng)用于為基于所述第二操作系統(tǒng)開發(fā)的應(yīng)用程序的調(diào)試平臺(tái)提供模擬的硬件平臺(tái);
[0010]將所述函數(shù)庫中符合設(shè)定條件的函數(shù)確定為所述軟件平臺(tái)調(diào)用所述應(yīng)用程序的接口函數(shù);并
[0011]根據(jù)所述應(yīng)用程序支持的通信模式,確定對所述應(yīng)用程序進(jìn)行調(diào)試時(shí)用于所述軟件平臺(tái)與所述硬件平臺(tái)通信的模擬通訊接口。
[0012]本發(fā)明的另一方面,還提供了一種實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的裝置,包括:
[0013]函數(shù)庫保存單元,用于在具有軟件平臺(tái)的第一操作系統(tǒng)中將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間,所述第一操作系統(tǒng)用于為基于所述第二操作系統(tǒng)開發(fā)的應(yīng)用程序的調(diào)試平臺(tái)提供模擬的硬件平臺(tái);
[0014]接口函數(shù)確定單元,將所述函數(shù)庫保存單元保存的函數(shù)庫中符合設(shè)定條件的函數(shù)確定為所述軟件平臺(tái)調(diào)用所述應(yīng)用程序的接口函數(shù);并
[0015]模擬通訊接口確定單元,用于在所述接口函數(shù)確定單元確定所述接口函數(shù)后,根據(jù)所述應(yīng)用程序支持的通信模式,確定對所述應(yīng)用程序進(jìn)行調(diào)試時(shí)用于所述軟件平臺(tái)與所述硬件平臺(tái)通信的模擬通訊接口。
[0016]根據(jù)本發(fā)明實(shí)施例提供的方案,基于第一操作系統(tǒng)的調(diào)試平臺(tái)可以用于模擬調(diào)試基于第二操作系統(tǒng)開發(fā)的應(yīng)用程序的硬件平臺(tái),并提供軟件平臺(tái),具體地,基于第一操作系統(tǒng)的軟件平臺(tái)可以將第二操作系統(tǒng)支持的函數(shù)庫保存至指定的存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間,并將函數(shù)庫中的指定函數(shù)確定為基于第一操作系統(tǒng)的調(diào)試平臺(tái)調(diào)用應(yīng)用程序的接口函數(shù),以便基于第一操作系統(tǒng)的調(diào)試平臺(tái)可以通過調(diào)用所述接口函數(shù)對應(yīng)用程序進(jìn)行調(diào)試,并建立軟件平臺(tái)與硬件平臺(tái)的模擬通訊接口,實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)在應(yīng)用程序調(diào)試過程中的通訊,避免了實(shí)際的硬件平臺(tái)對應(yīng)用程序調(diào)試造成的影響,從而可以達(dá)到提高對應(yīng)用程序調(diào)試的效率的目的。
【專利附圖】
【附圖說明】
[0017]附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0018]圖1為根據(jù)本發(fā)明【具體實(shí)施方式】例一提供的實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法流程圖;
[0019]圖2為本發(fā)明實(shí)施例一提供的確定接口函數(shù)的流程示意圖;
[0020]圖3為本發(fā)明實(shí)施例一提供的模擬的硬件平臺(tái)的流程示意圖;
[0021]圖4為本發(fā)明實(shí)施例二提供的實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的流程示意圖;
[0022]圖5為根據(jù)本發(fā)明具體實(shí)施例三提供實(shí)施方式的實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]基于現(xiàn)有技術(shù)中調(diào)試應(yīng)用軟件效率低的問題,本申請?zhí)峁┝艘环N實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法以及裝置。下面結(jié)合附圖,對本發(fā)明的【具體實(shí)施方式】進(jìn)行詳細(xì)描述,但應(yīng)當(dāng)理解本發(fā)明的保護(hù)范圍并不受【具體實(shí)施方式】的限制。
[0024]實(shí)施例一[0025]本發(fā)明實(shí)施例一提供了一種實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法,基于該方法建立的調(diào)試平臺(tái),對應(yīng)用程序進(jìn)行調(diào)試時(shí),能夠提高對應(yīng)用程序調(diào)試的效率。
[0026]具體地,圖1示出了本實(shí)施例提供的實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的流程示意圖,如圖1所示,實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的過程,主要包括以下步驟:
[0027]步驟101、基于第一操作系統(tǒng)的軟件平臺(tái)將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間。
[0028]該步驟101中,第一操作系統(tǒng)以及第二操作系統(tǒng)可以根據(jù)實(shí)際的應(yīng)用環(huán)境進(jìn)行選擇,例如,根據(jù)建立調(diào)試平臺(tái)的需要,第一操作系統(tǒng)可以為能夠提供模擬操作界面的系統(tǒng),例如Windows系統(tǒng),實(shí)際應(yīng)用中還可以選擇其他操作系統(tǒng)作為第一操作系統(tǒng)以提供調(diào)試平臺(tái),具體地,可以根據(jù)實(shí)際需求選擇,此處不再贅述;對于第二操作系統(tǒng),需要根據(jù)開發(fā)的應(yīng)用程序所適用的環(huán)境進(jìn)行選擇,例如,為了降低開發(fā)成本,提高應(yīng)用程序的開發(fā)效率,可以選擇源碼開放的unix系統(tǒng),進(jìn)一步,為了開發(fā)應(yīng)用在嵌入式系統(tǒng)中的應(yīng)用程序,可以選擇常用的Linux系統(tǒng)。實(shí)際應(yīng)用中,第二操作系統(tǒng)也可以根據(jù)實(shí)際情況進(jìn)行選擇。針對第二操作系統(tǒng)本方案優(yōu)選Linux系統(tǒng),針對第一操作系統(tǒng),本方案優(yōu)選能夠?yàn)榛贚inux系統(tǒng)開發(fā)的應(yīng)用程序的調(diào)試平臺(tái)提供模擬的硬件平臺(tái)的Windows系統(tǒng),實(shí)際應(yīng)用中,可以在Windows系統(tǒng)建立微軟基礎(chǔ)類庫(Microsoft Fundation Classes Library,MFC)工程作為調(diào)試平臺(tái)的軟件平臺(tái),該MFC工程能夠建立模擬的硬件平臺(tái)。
[0029]步驟102、將第二操作系統(tǒng)支持的函數(shù)庫中符合設(shè)定條件的函數(shù)確定為軟件平臺(tái)調(diào)用應(yīng)用程序的接口函數(shù)。
[0030]該步驟102中,接口函數(shù)可以根據(jù)第二操作系統(tǒng)的函數(shù)庫中的函數(shù)的特征確定,具體地,可以將函數(shù)庫中用于編譯應(yīng)用程序時(shí)必須用到且僅出現(xiàn)一次的函數(shù)作為接口函數(shù),例如,在C語言數(shù)據(jù)庫中,可以將Main函數(shù)作為接口函數(shù),如此,第一操作系統(tǒng)在通過該接口函數(shù)調(diào)用到應(yīng)用程序后,可以通過在基于第一操作系統(tǒng)的軟件平臺(tái)上運(yùn)行應(yīng)用程序?qū)崿F(xiàn)對該應(yīng)用程序的調(diào)試。
[0031]步驟103、根據(jù)應(yīng)用程序支持的通信模式,確定對應(yīng)用程序進(jìn)行調(diào)試時(shí)用于軟件平臺(tái)與硬件平臺(tái)通信的模擬通訊接口。
[0032]該步驟103中,基于應(yīng)用程序支持的通信模式,軟件平臺(tái)可以利用第一操作系統(tǒng)以及第二操作系統(tǒng)共同具有的通訊接口,確定軟件平臺(tái)與硬件平臺(tái)的模擬通訊接口。例如,若第一操作系統(tǒng)和第二操作系統(tǒng)支持的通訊接口為串行通行,且串行通信的通信模式相同,則可以直接很據(jù)應(yīng)用程序支持的通信模式確定軟件平臺(tái)與硬件平臺(tái)的模擬通訊接口 ;若第一操作系統(tǒng)和第二操作系統(tǒng)具有的通訊接口有區(qū)別,可以分別在第一操作系統(tǒng)和第二操作系統(tǒng)具有的通訊接口中選擇能夠?qū)崿F(xiàn)應(yīng)用程序支持的通訊模式的通訊接口,并可以根據(jù)兩個(gè)通訊接口的接口類型,進(jìn)行相應(yīng)的處理。
[0033]至此,實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的流程結(jié)束。
[0034]在圖1對應(yīng)的流程中,第一操作系統(tǒng)能夠?yàn)榛诘诙僮飨到y(tǒng)開發(fā)的應(yīng)用程序的調(diào)試平臺(tái)提供模擬的硬件平臺(tái),并且,基于第一操作系統(tǒng)的軟件平臺(tái)可以將第二操作系統(tǒng)支持的函數(shù)庫保存在本地指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間中,將函數(shù)庫中符合設(shè)定條件的函數(shù)確定為軟件平臺(tái)調(diào)用應(yīng)用程序的接口函數(shù),從而可以通過該接口函數(shù)實(shí)現(xiàn)對基于第二操作系統(tǒng)開發(fā)的應(yīng)用程序的調(diào)用,繼而可以通過運(yùn)行調(diào)用的應(yīng)用程序?qū)崿F(xiàn)對應(yīng)用程序的調(diào)試,進(jìn)一步,可以根據(jù)應(yīng)用程序支持的通信模式,確定軟件平臺(tái)與模擬的硬件平臺(tái)的模擬通訊接口,實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)在應(yīng)用程序調(diào)試過程中的通訊,從而避免了實(shí)際的硬件平臺(tái)對應(yīng)用程序調(diào)試造成的影響,提高了調(diào)試應(yīng)用程序的效率。
[0035]在圖1對應(yīng)的流程包括的步驟101之后,即基于第一操作系統(tǒng)的軟件平臺(tái)將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間之后,可以保存函數(shù)庫包含的各函數(shù)分別與各函數(shù)在存儲(chǔ)空間中的存儲(chǔ)地址的對應(yīng)關(guān)系,即建立在指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間中獲取各函數(shù)的路徑信息,從而可以根據(jù)路徑信息獲取到需要的函數(shù)。實(shí)際應(yīng)用中,軟件平臺(tái)可以利用該路徑信息調(diào)用到接口函數(shù),并在運(yùn)行應(yīng)用程序的過程中,繼續(xù)調(diào)用運(yùn)行應(yīng)用程序涉及的函數(shù)。
[0036]具體地,軟件平臺(tái)在將函數(shù)庫存儲(chǔ)到指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間后,可以將該存儲(chǔ)地址作為存儲(chǔ)在相應(yīng)存儲(chǔ)空間中的函數(shù)的存儲(chǔ)地址的起始地址,將各函數(shù)的存儲(chǔ)地址與存儲(chǔ)空間對應(yīng)的存儲(chǔ)地址的差值作為各函數(shù)的地址信息。如此,軟件平臺(tái)可以在保存函數(shù)庫后,獲取存儲(chǔ)空間對應(yīng)的存儲(chǔ)地址以及各函數(shù)的地址信息,并建立各函數(shù)與各自地址信息的對應(yīng)關(guān)系,從而在運(yùn)行應(yīng)用程序時(shí),可以在獲取存儲(chǔ)空間對應(yīng)的存儲(chǔ)地址后,在需要獲取的函數(shù)在存儲(chǔ)空間的存儲(chǔ)地址對應(yīng)的位置上獲取該函數(shù)。
[0037]實(shí)際應(yīng)用中,在圖1對應(yīng)的流程包括的步驟102中,即將函數(shù)庫中符合設(shè)定條件的函數(shù)確定為軟件平臺(tái)調(diào)用應(yīng)用程序的接口函數(shù)中,可以利用函數(shù)庫包含的各函數(shù)分別與各函數(shù)在存儲(chǔ)空間中的存儲(chǔ)地址的對應(yīng)關(guān)系,獲取確定出的接口函數(shù)的存儲(chǔ)地址,并建立獲取的地址與存儲(chǔ)地址查詢函數(shù)的對應(yīng)關(guān)系,以便在調(diào)用應(yīng)用程序時(shí),直接查詢到接口函數(shù)的存儲(chǔ)地址,并在查詢到的存儲(chǔ)地址中獲取該接口函數(shù),具體地,如圖2所示,確定接口函數(shù)的過程,主要包括以下步驟:
[0038]步驟201、確定函數(shù)庫中用于編譯應(yīng)用程序時(shí)必須用到且僅出現(xiàn)一次的函數(shù)。
[0039]步驟202、將確定出的函數(shù)確定為應(yīng)用程序的接口函數(shù)。
[0040]步驟203、根據(jù)函數(shù)庫包含的各函數(shù)分別與各函數(shù)在存儲(chǔ)空間中的存儲(chǔ)地址的對應(yīng)關(guān)系,獲取接口函數(shù)對應(yīng)的存儲(chǔ)地址。
[0041]步驟204、建立獲取的存儲(chǔ)地址與存儲(chǔ)地址查詢函數(shù)的對應(yīng)關(guān)系。
[0042]該步驟204中,存儲(chǔ)地址查詢函數(shù)用于查詢需要獲取的函數(shù)對應(yīng)的存儲(chǔ)地址。
[0043]至此,確定接口函數(shù)的流程結(jié)束。
[0044]在圖1對應(yīng)的流程中,第一操作系統(tǒng)可以為基于第二操作系統(tǒng)開發(fā)的應(yīng)用程序的調(diào)試平臺(tái)提供模擬的硬件平臺(tái),具體地,本方案提供了一種第一操作系統(tǒng)提供模擬的硬件平臺(tái)的優(yōu)選實(shí)施方案。如圖3所示,該提供模擬的硬件平臺(tái)的過程如下:
[0045]步驟301、軟件平臺(tái)根據(jù)需要模擬的硬件平臺(tái)包括的用于顯示調(diào)試應(yīng)用程序的調(diào)試結(jié)果的屏幕的配置,調(diào)用編輯控件構(gòu)建模擬屏幕。
[0046]該步驟301中,軟件平臺(tái)可以提供模擬的屏幕顯示調(diào)試應(yīng)用程序的調(diào)試結(jié)果。實(shí)際應(yīng)用中,嵌入式系統(tǒng)一般采用點(diǎn)陣液晶顯示屏,作為應(yīng)用程序調(diào)試過程中人機(jī)交互界面,在模擬該點(diǎn)陣液晶顯示屏?xí)r,可以調(diào)用MFC中的編輯(CEdit)控件,定義點(diǎn)陣液晶顯示屏的點(diǎn)陣陣列;利用編輯控件的成員函數(shù)GetDC ()獲取用于實(shí)現(xiàn)繪圖功能的CDC函數(shù)的地址(即⑶C句柄),繼而在獲取的地址對應(yīng)的存儲(chǔ)空間中采用⑶C函數(shù)的成員函數(shù)SetPixel實(shí)現(xiàn)對顯示屏的單像素。[0047]步驟302、調(diào)用按鈕控件構(gòu)建需要模擬的硬件平臺(tái)包括的按鍵。
[0048]該步驟302中,可以利用按鈕控件設(shè)置需要模擬的硬件平臺(tái)包括的按鍵,并根據(jù)需要模擬的硬件平臺(tái)包括的按鍵的標(biāo)識(shí)以及功能設(shè)置按鍵信息。
[0049]步驟303、保存構(gòu)建的按鍵與需要模擬的硬件平臺(tái)包括的按鍵對應(yīng)的按鍵函數(shù)接口的對應(yīng)關(guān)系。
[0050]該步驟303中,為了實(shí)現(xiàn)按鍵的功能,會(huì)保存構(gòu)建的按鍵與需要模擬的硬件平臺(tái)包括的按鍵對應(yīng)的按鍵函數(shù)接口的對應(yīng)關(guān)系。實(shí)際應(yīng)用中,可以將構(gòu)建的按鍵的按鍵信息傳送至與相應(yīng)的按鍵函數(shù)接口,實(shí)現(xiàn)對應(yīng)關(guān)系的建立。
[0051 ] 至此,提供模擬的硬件平臺(tái)的流程結(jié)束。
[0052]實(shí)際應(yīng)用中,在圖3對應(yīng)的流程包括的步驟301中,在建立模擬屏幕后,還可以采用緩存驅(qū)動(dòng)(例如Framebuffer驅(qū)動(dòng)),在第一操作系統(tǒng)的內(nèi)存中設(shè)置出存儲(chǔ)實(shí)際的屏幕顯示的信息的內(nèi)存模塊,將模擬屏幕與實(shí)際屏幕的顯示內(nèi)存的路徑信息都設(shè)置為預(yù)先設(shè)置的內(nèi)存模塊的存儲(chǔ)地址,使該內(nèi)存模塊提供的信息能夠在模擬屏幕和實(shí)際的屏幕中顯示。
[0053]在此不再對相同或相似內(nèi)容進(jìn)行重復(fù)描述。
[0054]實(shí)施例二
[0055]該實(shí)施例二提供了一種實(shí)現(xiàn)實(shí)施例一提供的實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法的應(yīng)用場景。具體地,該實(shí)施例二中,第一操作系統(tǒng)為Windows系統(tǒng),第二操作系統(tǒng)為Linux系統(tǒng),如圖3所示,實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的過程,主要包括以下步驟:
[0056]步驟401、Windows系統(tǒng)中的MFC工程引入CYGWIN,實(shí)現(xiàn)保存Linux系統(tǒng)支持的庫函數(shù)的操作。
[0057]該步驟401中,MFC工程為支持應(yīng)用程序調(diào)試的軟件平臺(tái),該軟件平臺(tái)能夠根據(jù)實(shí)際調(diào)試環(huán)境的需要,建立模擬的硬件平臺(tái)。引入CYGWIN后,MFC工程可以將Linux支持的函數(shù)庫保存在本地。具體地,MFC利用LoadLibrary將Linux支持的函數(shù)庫保存至指定的存儲(chǔ)空間,實(shí)際應(yīng)用中,可以通過建立函數(shù)庫對應(yīng)的動(dòng)態(tài)鏈接庫與指定的存儲(chǔ)空間對應(yīng)的存儲(chǔ)地址的對應(yīng)關(guān)系,實(shí)現(xiàn)對Linux支持的函數(shù)庫中函數(shù)的調(diào)用。
[0058]步驟402、對CYGWIN進(jìn)行初始化,建立函數(shù)庫中各函數(shù)與各函數(shù)在指定的存儲(chǔ)空間中的存儲(chǔ)地址的對應(yīng)關(guān)系。
[0059]該步驟402中,可以在獲取指定的存儲(chǔ)空間的地址(即模塊句柄)后,對CYGWIN進(jìn)行初始化,如此將存儲(chǔ)空間對應(yīng)的存儲(chǔ)地址作為起始地址,將在該存儲(chǔ)空間保存的函數(shù)對應(yīng)的存儲(chǔ)地址與起始地址的差值,作為函數(shù)的存儲(chǔ)地址。如此,函數(shù)的存儲(chǔ)地址實(shí)際為實(shí)際存儲(chǔ)地址相對確定出的起始地址的差值。實(shí)際應(yīng)用中,在對應(yīng)用程序調(diào)試時(shí),可以利用GetProcAddress查詢庫函數(shù)的存儲(chǔ)地址,然后根據(jù)需要查詢的函數(shù)對應(yīng)的存儲(chǔ)地址,在函數(shù)庫的存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間中獲取需要查詢的函數(shù)。
[0060]步驟403、初始化完成后,建立Windows系統(tǒng)與Linux系統(tǒng)之間的接口函數(shù)。
[0061]該步驟403中,可以將Main函數(shù)作為Linux系統(tǒng)接入Windows系統(tǒng)的接口函數(shù),如此,Windows可以通過該Main函數(shù)實(shí)現(xiàn)對基于Linux編輯的代碼(及應(yīng)用程序)的調(diào)用,繼而在調(diào)用代碼后,實(shí)現(xiàn)對該代碼的調(diào)試。
[0062]步驟404、MFC根據(jù)實(shí)際的調(diào)試環(huán)境中硬件平臺(tái)的配置,建立模擬的硬件平臺(tái)。
[0063]步驟405、建立與模擬的硬件平臺(tái)的模擬通訊接口。[0064]該步驟405中,建立的模擬通訊接口時(shí),一方面,可以模擬軟件平臺(tái)與硬件平臺(tái)支持的通訊接口類型,如串行通訊接口或并行通訊接口 ;一方面還需要通訊接口支持的通訊模式,例如,基于TCP/IP的SOCKET通信。
[0065]至此,實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的流程結(jié)束。
[0066]實(shí)施例三
[0067]該實(shí)施例三提供了一種與實(shí)施例一提供的實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法對應(yīng)的裝置。
[0068]具體地,如圖5所示,本發(fā)明實(shí)施例三提供的實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的裝置的結(jié)構(gòu)示意圖,包括:
[0069]函數(shù)庫保存單元501、接口函數(shù)確定單元502以及模擬通訊接口確定單元503,其中:
[0070]函數(shù)庫保存單元501,用于在具有軟件平臺(tái)的第一操作系統(tǒng)中將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間,第一操作系統(tǒng)用于為基于第二操作系統(tǒng)開發(fā)的應(yīng)用程序的調(diào)試平臺(tái)提供模擬的硬件平臺(tái);
[0071]接口函數(shù)確定單元502,將函數(shù)庫保存單元501保存的函數(shù)庫中符合設(shè)定條件的函數(shù)確定為軟件平臺(tái)調(diào)用應(yīng)用程序的接口函數(shù);并
[0072]模擬通訊接口確定單元503,用于在接口函數(shù)確定單元502確定接口函數(shù)后,根據(jù)應(yīng)用程序支持的通信模式,確定對應(yīng)用程序進(jìn)行調(diào)試時(shí)用于軟件平臺(tái)與硬件平臺(tái)通信的模擬通訊接口。
[0073]本發(fā)明實(shí)施例提供的優(yōu)選實(shí)施方式中,圖5所示裝置包括的函數(shù)庫保存單元501,還用于將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間之后,保存函數(shù)庫包含的各函數(shù)分別與各函數(shù)在存儲(chǔ)空間中的存儲(chǔ)地址的對應(yīng)關(guān)系。
[0074]本發(fā)明實(shí)施例提供的優(yōu)選實(shí)施方式中,圖5所示裝置包括的接口函數(shù)確定單元502,具體用于:
[0075]確定函數(shù)庫中用于編譯應(yīng)用程序時(shí)必須用到且僅出現(xiàn)一次的函數(shù);
[0076]將確定出的函數(shù)確定為應(yīng)用程序的接口函數(shù);并
[0077]根據(jù)對應(yīng)關(guān)系,獲取接口函數(shù)對應(yīng)的存儲(chǔ)地址;
[0078]建立獲取的存儲(chǔ)地址與存儲(chǔ)地址查詢函數(shù)的對應(yīng)關(guān)系,存儲(chǔ)地址查詢函數(shù)用于查詢需要獲取的函數(shù)對應(yīng)的存儲(chǔ)地址。
[0079]如圖5所示,本發(fā)明實(shí)施例提供的優(yōu)選實(shí)施方式中,圖5所示裝置進(jìn)一步包括硬件平臺(tái)模擬單元504,用于:
[0080]在函數(shù)庫保存單元501保存函數(shù)庫后,根據(jù)需要模擬的硬件平臺(tái)包括的用于顯示調(diào)試應(yīng)用程序的調(diào)試結(jié)果的屏幕的配置,調(diào)用編輯控件構(gòu)建模擬屏幕;并調(diào)用按鈕控件構(gòu)建需要模擬的硬件平臺(tái)包括的按鍵,保存構(gòu)建的按鍵與需要模擬的硬件平臺(tái)包括的按鍵對應(yīng)的按鍵函數(shù)接口的對應(yīng)關(guān)系。
[0081]本發(fā)明實(shí)施例提供的優(yōu)選實(shí)施方式中,圖5所示裝置包括的中的第一操作系統(tǒng)為Windows系統(tǒng),第二操作系統(tǒng)為源碼開放的Linux系統(tǒng)。
[0082]本發(fā)明能有多種不同形式的【具體實(shí)施方式】,上文結(jié)合附圖對本發(fā)明做舉例說明,這并不意味著本發(fā)明所應(yīng)用的【具體實(shí)施方式】只能局限在這些特定的【具體實(shí)施方式】中,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)了解,上文所提供的【具體實(shí)施方式】只是多種優(yōu)選實(shí)施方式中的一些示例,任何體現(xiàn)本發(fā)明權(quán)利要求的【具體實(shí)施方式】均應(yīng)在本發(fā)明權(quán)利要求所要求保護(hù)的范圍之內(nèi);本領(lǐng)域的技術(shù)人員能夠?qū)ι衔母鳌揪唧w實(shí)施方式】中所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換或者改進(jìn)等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的方法,其特征在于,包括: 基于第一操作系統(tǒng)的軟件平臺(tái)將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間,所述第一操作系統(tǒng)用于為基于所述第二操作系統(tǒng)開發(fā)的應(yīng)用程序的調(diào)試平臺(tái)提供模擬的硬件平臺(tái); 將所述函數(shù)庫中符合設(shè)定條件的函數(shù)確定為所述軟件平臺(tái)調(diào)用所述應(yīng)用程序的接口函數(shù);根據(jù)所述應(yīng)用程序支持的通信模式,確定對所述應(yīng)用程序進(jìn)行調(diào)試時(shí)用于所述軟件平臺(tái)與所述硬件平臺(tái)通信的模擬通訊接口。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間之后,還包括: 保存所述函數(shù)庫包含的各函數(shù)分別與所述各函數(shù)在所述存儲(chǔ)空間中的存儲(chǔ)地址的對應(yīng)關(guān)系。
3.如權(quán)利要求2所述的方法,其特征在于,將所述函數(shù)庫中符合設(shè)定條件的函數(shù)確定為所述軟件平臺(tái)調(diào)用所述應(yīng)用程序的接口函數(shù),包括: 確定所述函數(shù)庫中用于編譯應(yīng)用程序時(shí)必須用到且僅出現(xiàn)一次的函數(shù); 將確定出的所述函數(shù)確定為應(yīng)用程序的接口函數(shù);并 根據(jù)所述對應(yīng)關(guān)系,獲取所述接口函數(shù)對應(yīng)的存儲(chǔ)地址; 建立獲取的存儲(chǔ)地址與存儲(chǔ)地址查詢函數(shù)的對應(yīng)關(guān)系,所述存儲(chǔ)地址查詢函數(shù)用于查詢需要獲取的函數(shù)對應(yīng)的存儲(chǔ)地址。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,第一操作系統(tǒng)為基于所述第二操作系統(tǒng)開發(fā)的應(yīng)用程序的調(diào)試平臺(tái)提供模擬的硬件平臺(tái),包括:` 根據(jù)需要模擬的硬件平臺(tái)包括的用于顯示調(diào)試應(yīng)用程序的調(diào)試結(jié)果的屏幕的配置,調(diào)用編輯控件構(gòu)建模擬屏幕;并 調(diào)用按鈕控件構(gòu)建需要模擬的硬件平臺(tái)包括的按鍵,保存構(gòu)建的按鍵與所述需要模擬的硬件平臺(tái)包括的按鍵對應(yīng)的按鍵函數(shù)接口的對應(yīng)關(guān)系。
5.如權(quán)利要求1~4任一權(quán)利要求所述的方法,其特征在于,包括: 所述第一操作系統(tǒng)為Windows系統(tǒng),所述第二操作系統(tǒng)為源碼開放的Linux系統(tǒng)。
6.一種實(shí)現(xiàn)硬件平臺(tái)與軟件平臺(tái)通訊的裝置,其特征在于,包括: 函數(shù)庫保存單元,用于在具有軟件平臺(tái)的第一操作系統(tǒng)中將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間,所述第一操作系統(tǒng)用于為基于所述第二操作系統(tǒng)開發(fā)的應(yīng)用程序的調(diào)試平臺(tái)提供模擬的硬件平臺(tái); 接口函數(shù)確定單元,將所述函數(shù)庫保存單元保存的函數(shù)庫中符合設(shè)定條件的函數(shù)確定為所述軟件平臺(tái)調(diào)用所述應(yīng)用程序的接口函數(shù);并 模擬通訊接口確定單元,用于在所述接口函數(shù)確定單元確定所述接口函數(shù)后,根據(jù)所述應(yīng)用程序支持的通信模式,確定對所述應(yīng)用程序進(jìn)行調(diào)試時(shí)用于所述軟件平臺(tái)與所述硬件平臺(tái)通信的模擬通訊接口。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述函數(shù)庫保存單元,還用于將第二操作系統(tǒng)支持的函數(shù)庫保存至指定存儲(chǔ)地址對應(yīng)的存儲(chǔ)空間之后,保存所述函數(shù)庫包含的各函數(shù)分別與所述各函數(shù)在所述存儲(chǔ)空間中的存儲(chǔ)地址的對應(yīng)關(guān)系。
8.如權(quán)利要求7所述的裝置,其特征在于,接口函數(shù)確定單元,具體用于:確定所述函數(shù)庫中用于編譯應(yīng)用程序時(shí)必須用到且僅出現(xiàn)一次的函數(shù); 將確定出的所述函數(shù)確定為應(yīng)用程序的接口函數(shù);并 根據(jù)所述對應(yīng)關(guān)系,獲取所述接口函數(shù)對應(yīng)的存儲(chǔ)地址; 建立獲取的存儲(chǔ)地址與存儲(chǔ)地址查詢函數(shù)的對應(yīng)關(guān)系,所述存儲(chǔ)地址查詢函數(shù)用于查詢需要獲取的函數(shù)對應(yīng)的存儲(chǔ)地址。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括硬件平臺(tái)模擬單元,用于: 在所述函數(shù)庫保存單元保存所述函數(shù)庫后,根據(jù)需要模擬的硬件平臺(tái)包括的用于顯示調(diào)試應(yīng)用程序的調(diào)試結(jié)果的屏幕的配置,調(diào)用編輯控件構(gòu)建模擬屏幕;并調(diào)用按鈕控件構(gòu)建需要模擬的硬件平臺(tái)包括的按鍵,保存構(gòu)建的按鍵與所述需要模擬的硬件平臺(tái)包括的按鍵對應(yīng)的按鍵函數(shù)接口的對應(yīng)關(guān)系。
10.如權(quán)利要求6、任一權(quán)利要求所述的裝置,其特征在于,所述裝置中的所述第一操作系統(tǒng)為Windows 系統(tǒng),所述第二操作系統(tǒng)為源碼開放的Linux系統(tǒng)。
【文檔編號】G06F11/36GK103678099SQ201210331370
【公開日】2014年3月26日 申請日期:2012年9月10日 優(yōu)先權(quán)日:2012年9月10日
【發(fā)明者】毛永泉, 王順仁, 鄢志平, 甄國龍 申請人:國網(wǎng)電力科學(xué)研究院, 國家電網(wǎng)公司