[發明專利]嵌入式系統程序執行方法有效
| 申請號: | 201410195480.1 | 申請日: | 2014-05-09 |
| 公開(公告)號: | CN103927187B | 公開(公告)日: | 2017-03-22 |
| 發明(設計)人: | 張玉祺 | 申請(專利權)人: | 金祺創(北京)技術有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 深圳市神州聯合知識產權代理事務所(普通合伙)44324 | 代理人: | 鄧揚 |
| 地址: | 100081 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 嵌入式 系統 程序 執行 方法 | ||
1.一種嵌入式系統程序執行方法,用于在嵌入式系統中執行應用程序,其特征在于,包括:
應用程序編譯生成以段為單元的對象文件;
在運行程序初始化函數之前,禁用WDT計時器;
在RAM中分配空間,并編寫拷貝函數,將文件中的各段從FLASH拷貝到RAM。
2.根據權利要求1所述的方法,其特征在于,所述文件以段的形式組織代碼和數據,分為賦值段和未賦值段,其中在嵌入式系統上電時,賦值段含有真實有效的參數,未賦值段用于保留程序運行過程中所需開辟的變量的地址空間,在程序運行時,所有的賦值段鏈接到非易失性存儲器中,未賦值段的代碼鏈接到RAM中,
所述賦值段包括以下內容段:.text、.cinit、.pinit、.switch、
.const、.econst,其中.text、.cinit、.pinit、.switch段為程序空間,.const、.econst段為數據空間,
所述未賦值段包括以下內容段:.bss、.ebss、.stack、.system、.esystem,均為數據空間。
3.根據權利要求2所述的方法,其特征在于,所述嵌入式系統基于TMS320C6455微處理器,對該微處理器匯編成各自的目標代碼段,然后用鏈接器將其鏈接起來生成可執行文件,
上電后,程序起始標號的長跳轉指令被加載到入口地址處并開始執行,接著指針跳轉到WDT計時器禁用代碼,之后再執行拷貝函數,將所有段復制到RAM中,所述長跳轉指令及WDT計時器禁用代碼部分分別置于相應的段下,并組合成匯編文件,添加到工程文件的source路徑下,
并且,拷貝函數可將代碼段及各個變量段從FLASH拷貝到RAM,應用程序在復制時,通過鏈接命令文件中指明的信息調用段的起始地址、長度以及運行地址,同時將拷貝函數鏈接到代碼拷貝段中。
4.根據權利要求3所述的方法,其特征在于,當所有的段都被復制完畢時,通過跳轉指令跳轉到程序初始化函數,直接進入主函數執行。
5.根據權利要求3所述的方法,其特征在于,在將段進行拷貝時,首先將該段的大小先暫存到寄存器XAR5,再存儲到累加器ACC中;將加載地址存儲到XAR6寄存器中;運行地址存儲到XAR7寄存器中,再執行copy操作即可完成該段的拷貝。
6.根據權利要求3所述的方法,其特征在于,所述鏈接命令文件分為兩部分,第一部分用于指明和定義裝載代碼所用到的所有存儲區域即程序空間和數據空間,以便鏈接器進行配置;第二部分主要是將每一個輸出段映射到所分配的存儲空間里面去,并指定段的加載地址和運行地址,
對于賦值段,加載和運行分配到不同的存儲空間,對未賦值段的加載和運行只需分配到RAM空間,并且在用戶代碼從FLASH拷貝到片內RAM之前,將WDT計時器禁用段加載和運行于FLASH中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于金祺創(北京)技術有限公司,未經金祺創(北京)技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410195480.1/1.html,轉載請聲明來源鉆瓜專利網。





