[發明專利]嵌入式系統程序執行方法有效
| 申請號: | 201410195480.1 | 申請日: | 2014-05-09 |
| 公開(公告)號: | CN103927187B | 公開(公告)日: | 2017-03-22 |
| 發明(設計)人: | 張玉祺 | 申請(專利權)人: | 金祺創(北京)技術有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 深圳市神州聯合知識產權代理事務所(普通合伙)44324 | 代理人: | 鄧揚 |
| 地址: | 100081 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 嵌入式 系統 程序 執行 方法 | ||
技術領域
本發明涉及嵌入式系統程序執行方法。
背景技術
隨著信息技術的發展和行業的需求,智能交通系統(ITS)越來越備受關注。近年來,ITS在城市交通管理方面得到了普遍應用。其中,嵌入式系統在實時、準確、高效的綜合交通運輸管理系統中起到決定性作用。例如,嵌入式系統中使用專門用于實時數字信號處理的微處理器,其必須具備功能強大,適合做密集計算,擁有強大的運算能力。以TMS320C6455為例,它是專門用于實時數字信號處理的微處理器,采用了多總線結構、流水線技術和專用指令等特殊設計。但這種處理器的時鐘頻率是有限的,這樣運行的程序特別是復雜的代碼必須要經過優化,才能完成實時性的要求。
在一個獨立的嵌入式系統中,所有的代碼必須存放在非易失性存儲器中。對于TMS320C6455來講,由于CPU對片內FLASH讀寫訪問時需要插入一定數目的等待周期,所以,應用程序在FLASH中是無法按照CPU的指令執行速率全速運行的。程序在片內FLASH中的運行速度有限,而如果生成的可執行代碼加載至片內RAM中,則能夠全速運行,真正實現無等待讀寫訪問。因此,在代碼運行前,將其從FLASH中拷貝到RAM中運行,能夠顯著提高程序的運行效率。
然而現有的技術文檔只提供了部分代碼從FLASH拷貝到RAM中的手段。然而,在一些應用領域中,如智能交通中的視頻監控等實時性要求較高的領域,需要將整個應用程序都拷貝到RAM中執行,以提高代碼整體運行速度。
因此,針對相關技術中所存在的上述問題,目前尚未提出有效的解決方案。
發明內容
為解決上述現有技術所存在的問題,本發明提出了一種嵌入式系統程序執行方法,用于在嵌入式系統中執行應用程序,包括:
應用程序編譯生成以段為單元的對象文件;
在運行程序初始化函數之前,禁用WDT計時器;
在RAM中分配空間,并編寫拷貝函數,將文件中的各段從FLASH拷貝到RAM。
優選地,所述文件以段的形式組織代碼和數據,分為賦值段和未賦值段,其中在嵌入式系統上電時,賦值段含有真實有效的參數,未賦值段用于保留程序運行過程中所需開辟的變量的地址空間,在程序運行時,所有的賦值段鏈接到非易失性存儲器中,未賦值段的代碼鏈接到RAM中,
所述賦值段包括以下內容段:.text、.cinit、.pinit、.switch、
.const、.econst,其中.text、.cinit、.pinit、.switch段為程序空間,.const、.econst段為數據空間,
所述未賦值段包括以下內容段:.bss、.ebss、.stack、.system、.esystem,均為數據空間。
優選地,所述嵌入式系統基于TMS320C6455微處理器,對該微處理器匯編成各自的目標代碼段,然后用鏈接器將其鏈接起來生成可執行文件,
上電后,程序起始標號的長跳轉指令被加載到入口地址處并開始執行,接著指針跳轉到WDT計時器禁用代碼,之后再執行拷貝函數,將所有段復制到RAM中,所述長跳轉指令及WDT計時器禁用代碼部分分別置于相應的段下,并組合成匯編文件,添加到工程文件的source路徑下,
并且,拷貝函數可將代碼段及各個變量段從FLASH拷貝到RAM,應用程序在復制時,通過鏈接命令文件中指明的信息調用段的起始地址、長度以及運行地址,同時將拷貝函數鏈接到代碼拷貝段中。
優選地,當所有的段都被復制完畢時,通過跳轉指令跳轉到程序初始化函數,直接進入主函數執行。
優選地,在將段進行拷貝時,首先將該段的大小先暫存到寄存器XAR5,再存儲到累加器ACC中;將加載地址存儲到XAR6寄存器中;運行地址存儲到XAR7寄存器中,再執行copy操作即可完成該段的拷貝。
優選地,所述鏈接命令文件分為兩部分,第一部分用于指明和定義裝載代碼所用到的所有存儲區域即程序空間和數據空間,以便鏈接器進行配置;第二部分主要是將每一個輸出段映射到所分配的存儲空間里面去,并指定段的加載地址和運行地址,
對于賦值段,加載和運行分配到不同的存儲空間,對未賦值段的加載和運行只需分配到RAM空間,并且在用戶代碼從FLASH拷貝到片內RAM之前,將WDT計時器禁用段加載和運行于FLASH中。
相比于現有技術,本發明的技術方案的具有以下優點:將整個應用程序都拷貝到RAM中執行,以提高代碼整體運行速度。
附圖說明
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于金祺創(北京)技術有限公司,未經金祺創(北京)技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410195480.1/2.html,轉載請聲明來源鉆瓜專利網。





