專利名稱:一種利用cpld在嵌入式系統(tǒng)中實(shí)現(xiàn)多程序相互切換的方法
技術(shù)領(lǐng)域:
本發(fā)明的方法提供了一種稅控收款機(jī)開發(fā)技術(shù),具體地說是一種沒有程序重 定向及程序分段管理機(jī)制條件下實(shí)現(xiàn)多個應(yīng)用程序即時(shí)切換的方法。
背景技術(shù):
在不帶操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)中, 一個比較通用的方法是將編譯好的二 進(jìn)制文件寫到程序芯片中,CPU復(fù)位之后從起始位置讀取第一條指令并執(zhí)行。在這
種情況下,硬件與軟件緊密結(jié)合,不可分割, 一旦硬件有所改動,就要把程序芯 片中舊有的二進(jìn)制文件擦除,重新寫入新的二進(jìn)制文件。在系列產(chǎn)品開發(fā)過程中, 需要頻繁的在不同的硬件版本之間進(jìn)行切換,因此需要頻繁的更換二進(jìn)制文件, 效率低下且容易搞錯。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種沒有程序重定向及程序分段管理機(jī)制條件下實(shí)現(xiàn)多 個應(yīng)用程序即時(shí)切換的方法。
具體步驟如下首先對程序芯片進(jìn)行規(guī)劃,如0 — 512K byte地址空間存放冷 啟動及選擇功能程序,512K—1024K byte地址空間存放程序文件l,完成A功能, 1024K— 1536K byte地址空間存放程序文件2,完成B功能。。。以此類推。規(guī) 劃結(jié)束后,將各程序空間的邊界地址線(比如0 — 512K byte與512K—1024K byte 地址的邊界地址線是A19, 512K—1024K byte與1024K —1536K byte的邊界地址 線是A20,等等)連至CPLD,通過CPLD的硬件邏輯設(shè)置邊界地址線,即可實(shí)現(xiàn)地 址空間的重新映射,地址空間映射完畢后,配合看門狗的操作,實(shí)現(xiàn)系統(tǒng)的熱啟 動,即可方便的實(shí)現(xiàn)不同程序之間的切換。
本發(fā)明方法的有益效果是,提供了一種利用CPLD進(jìn)行虛擬地址轉(zhuǎn)換和安全可 靠的切換文件的方法,使用改方法可以很方便的在不同的二進(jìn)制文件之間進(jìn)行切 換,提高了工作效率和準(zhǔn)確性。主要適用于任何沒有程序重定向及程序分段管理 機(jī)制架構(gòu)的系統(tǒng)中實(shí)現(xiàn)多個程序共存的場合。
附圖1是不同程序之間進(jìn)行切換的示意圖。
具體實(shí)施例方式
參照說明書附圖對本發(fā)明的方法作以下詳細(xì)的說明。
實(shí)現(xiàn)本發(fā)明的一種利用CPLD在嵌入式系統(tǒng)中實(shí)現(xiàn)多程序相互切換的方法,首 先對程序芯片進(jìn)行規(guī)劃,設(shè)定0 —512Kbyte地址空間存放冷啟動及選擇功能程序, 512K—1024K byte地址空間存放程序文件1,完成A功能,1024K— 1536Kbyte 地址空間存放程序文件2,完成B功能以此類推,規(guī)劃結(jié)束后,設(shè)置各程序空間的 邊界地址線,0 — 512K byte與512K—1024K byte地址的邊界地址線設(shè)定為A19, 512K—1024K byte與1024K —1536K byte的邊界地址線設(shè)定為A20,依此類推, 將各程序空間的邊界地址線連至CPLD,通過CPLD的硬件邏輯設(shè)置邊界地址線,實(shí) 現(xiàn)地址空間的重新映射,地址空間映射完畢后,配合看門狗的操作,實(shí)現(xiàn)系統(tǒng)的 熱啟動,即實(shí)現(xiàn)不同程序之間的相互切換。 實(shí)施例
如圖1所示,冷啟動時(shí),A19、 A20、 A21均通過CPLD拉低,此時(shí)CPU從冷啟 動程序中讀取可執(zhí)行二進(jìn)制代碼,完成功能選擇,硬件初始化功能。
如需選擇功能程序1 (假設(shè)功能程序1存放在512K 1024K byte地址空間中), 則在CPLD中,將A19拉高,A20、 A21拉低,并通過看門狗重啟,重新啟動后,CPU 實(shí)際上是從512K byte處讀取二進(jìn)制代碼,從而完成功能程序的跳轉(zhuǎn)。
如選擇功能程序2或功能程序3,則以此類推。
本發(fā)明方法已經(jīng)在浪潮RE-370FB高檔稅控收款機(jī)主板上試用應(yīng)用,因浪潮 RE-370FB稅控收款機(jī)與浪潮RE-330FB稅控收款機(jī)共用一塊PCB板,只是支持硬件 稍有不同,因此應(yīng)用本發(fā)明之后,可以很方便的在兩款稅控收款機(jī)之間進(jìn)行切換 而無需重寫程序,大大提高了系列產(chǎn)品的兼容性。
權(quán)利要求
1.一種利用CPLD在嵌入式系統(tǒng)中實(shí)現(xiàn)多程序相互切換的方法,其特征在于切換步驟如下首先對程序芯片進(jìn)行規(guī)劃,設(shè)定0—512K byte地址空間存放冷啟動及選擇功能程序,512K—1024K byte地址空間存放程序文件1,完成A功能,1024K—1536Kbyte地址空間存放程序文件2,完成B功能以此類推,規(guī)劃結(jié)束后,設(shè)置各程序空間的邊界地址線,0—512K byte與512K—1024K byte地址的邊界地址線設(shè)定為A19,512K—1024K byte與1024K—1536K byte的邊界地址線設(shè)定為A20,依此類推,將各程序空間的邊界地址線連至CPLD,通過CPLD的硬件邏輯設(shè)置邊界地址線,實(shí)現(xiàn)地址空間的重新映射,地址空間映射完畢后,配合看門狗的操作,實(shí)現(xiàn)系統(tǒng)的熱啟動,即實(shí)現(xiàn)不同程序之間的相互切換。
全文摘要
本發(fā)明提供一種利用CPLD在嵌入式系統(tǒng)中實(shí)現(xiàn)多程序相互切換的方法該方法是首先對程序芯片進(jìn)行規(guī)劃,設(shè)定0-512K byte地址空間存放冷啟動及選擇功能程序,512K-1024K byte地址空間存放程序文件1,完成A功能,1024K-1536Kbyte地址空間存放程序文件2,完成B功能以此類推,規(guī)劃結(jié)束后,設(shè)置各程序空間的邊界地址線,0-512K byte與512K-1024K byte地址的邊界地址線設(shè)定為A19,512K-1024K byte與1024K-1536K byte的邊界地址線設(shè)定為A20,依此類推,將各程序空間的邊界地址線連至CPLD,通過CPLD的硬件邏輯設(shè)置邊界地址線,實(shí)現(xiàn)地址空間的重新映射,地址空間映射完畢后,配合看門狗的操作,實(shí)現(xiàn)系統(tǒng)的熱啟動,即實(shí)現(xiàn)不同程序之間的相互切換。
文檔編號G06F12/02GK101364208SQ20081014000
公開日2009年2月11日 申請日期2008年9月12日 優(yōu)先權(quán)日2008年9月12日
發(fā)明者于治樓, 畢研山, 王永軍 申請人:浪潮齊魯軟件產(chǎn)業(yè)有限公司