[發(fā)明專(zhuān)利]一種單片機(jī)動(dòng)態(tài)鏈接方法在審
| 申請(qǐng)?zhí)枺?/td> | 202010565207.9 | 申請(qǐng)日: | 2020-06-19 |
| 公開(kāi)(公告)號(hào): | CN111856989A | 公開(kāi)(公告)日: | 2020-10-30 |
| 發(fā)明(設(shè)計(jì))人: | 王瑞輝;陳偉 | 申請(qǐng)(專(zhuān)利權(quán))人: | 中電科航空電子有限公司 |
| 主分類(lèi)號(hào): | G05B19/042 | 分類(lèi)號(hào): | G05B19/042;G06F8/65 |
| 代理公司: | 成都行之專(zhuān)利代理事務(wù)所(普通合伙) 51220 | 代理人: | 林菲菲 |
| 地址: | 610000 四川省成*** | 國(guó)省代碼: | 四川;51 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 單片機(jī) 動(dòng)態(tài) 鏈接 方法 | ||
本發(fā)明公開(kāi)了一種單片機(jī)動(dòng)態(tài)鏈接方法,本發(fā)明的方法基于改進(jìn)的存儲(chǔ)布局結(jié)構(gòu)實(shí)現(xiàn),所述改進(jìn)的存儲(chǔ)布局結(jié)構(gòu)為:將單片機(jī)存儲(chǔ)區(qū)域劃分為一個(gè)鏈接者和至少一個(gè)被鏈接者;所述鏈接者用于實(shí)現(xiàn)初始化和相應(yīng)的業(yè)務(wù)功能;所述被鏈接者作為被鏈接程序完成各靜態(tài)庫(kù)的功能和符號(hào)操作接口;所述鏈接者和被鏈接者之間進(jìn)行雙向動(dòng)態(tài)鏈接。本發(fā)明改變了單片機(jī)程序開(kāi)發(fā)的組織形式,將各參研方模塊進(jìn)行解耦,各自編譯和燒寫(xiě)自己負(fù)責(zé)的模塊,各模塊可獨(dú)立升級(jí)。
技術(shù)領(lǐng)域
本發(fā)明涉及單片機(jī)技術(shù)領(lǐng)域,具體涉及一種單片機(jī)動(dòng)態(tài)鏈接方法,以及用于執(zhí)行該動(dòng)態(tài)鏈接方法的計(jì)算機(jī)存儲(chǔ)介質(zhì)。
背景技術(shù)
不帶復(fù)雜操作系統(tǒng)的單片機(jī)程序一般是將所有程序作為一個(gè)整體編譯成一個(gè)二進(jìn)制或者十六進(jìn)制文件,內(nèi)存也同樣作為一個(gè)整體進(jìn)行使用。當(dāng)單片機(jī)里的程序由多方共同完成,出于對(duì)各方知識(shí)產(chǎn)權(quán)的保護(hù)往往通過(guò)靜態(tài)庫(kù)的方式提供出來(lái),由集成方將所有庫(kù)和程序進(jìn)行集成編譯出可燒寫(xiě)的文件,如圖1所示。
這樣的處理方式使得靜態(tài)庫(kù)提供方對(duì)代碼的修改需要集成方重新編譯,重新發(fā)布程序。靜態(tài)庫(kù)提供方不能單獨(dú)升級(jí)程序,不能有獨(dú)立的構(gòu)型,底層程序和應(yīng)用程序強(qiáng)耦合。針對(duì)像航空這樣對(duì)構(gòu)型管理嚴(yán)格的行業(yè),這樣的處理方式存在很多不足,比如,不便于參與程序開(kāi)發(fā)的各方對(duì)各自的代碼進(jìn)行修改、編譯和管理等。
發(fā)明內(nèi)容
本發(fā)明針對(duì)上述的問(wèn)題,提出一種單片機(jī)動(dòng)態(tài)鏈接方法,讓參與程序開(kāi)發(fā)的各方都有獨(dú)立的構(gòu)型,可獨(dú)立升級(jí),互不影響,物理上解耦底層程序和應(yīng)用程序,靈活性更強(qiáng)。
本發(fā)明通過(guò)下述技術(shù)方案實(shí)現(xiàn):
一種單片機(jī)動(dòng)態(tài)鏈接方法,該方法基于改進(jìn)的存儲(chǔ)布局結(jié)構(gòu)實(shí)現(xiàn),所述改進(jìn)的存儲(chǔ)布局結(jié)構(gòu)為:將單片機(jī)存儲(chǔ)區(qū)域劃分為一個(gè)鏈接者和至少一個(gè)被鏈接者;
所述鏈接者用于實(shí)現(xiàn)初始化和相應(yīng)的業(yè)務(wù)功能;
所述被鏈接者作為被鏈接程序完成各靜態(tài)庫(kù)的功能和符號(hào)操作接口;
所述鏈接者和被鏈接者之間進(jìn)行雙向動(dòng)態(tài)鏈接。
為了讓參與開(kāi)發(fā)的各方程序互相獨(dú)立,不能采用靜態(tài)庫(kù)的方式進(jìn)行集成,本發(fā)明提出將靜態(tài)庫(kù)編譯成特定格式可執(zhí)行程序的方式,提前將單片機(jī)存儲(chǔ)區(qū)域(FLASH和RAM內(nèi)存) 資源進(jìn)行分配,各方將自己的程序燒寫(xiě)入對(duì)應(yīng)的分區(qū),實(shí)現(xiàn)單片機(jī)動(dòng)態(tài)鏈接。
單片機(jī)存儲(chǔ)器分為程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,通常程序存儲(chǔ)器采用FLASH存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器采用RAM存儲(chǔ)器,因此本發(fā)明的被鏈接者的存儲(chǔ)格式為:
被鏈接者在FLASH中,包括魔數(shù)、代碼段、只讀數(shù)據(jù)段和數(shù)據(jù)段;
所述代碼段包括符號(hào)操作接口函數(shù)、內(nèi)存初始化接口函數(shù)和其他函數(shù);
被鏈接者在內(nèi)存RAM中,包括數(shù)據(jù)段和bss段。
優(yōu)選的,本發(fā)明的魔數(shù)放在分配FLASH的起始地址處用以判斷該FLASH分區(qū)是否燒寫(xiě)有效的程序。
優(yōu)選的,本發(fā)明的符號(hào)操作接口函數(shù)作為整個(gè)程序的入口地址,固定從魔數(shù)后面的空間開(kāi)始存放,且所示符號(hào)操作接口函數(shù)供鏈接者調(diào)用,完成符號(hào)的設(shè)置和獲取操作。
優(yōu)選的,本發(fā)明的內(nèi)存初始化接口函數(shù)供鏈接者調(diào)用,完成被鏈接程序的內(nèi)存環(huán)境(包括數(shù)據(jù)段和bss段)重建。
優(yōu)選的,本發(fā)明的動(dòng)態(tài)鏈接方式具體包括:
步驟S1,通過(guò)鏈接者實(shí)現(xiàn)動(dòng)態(tài)鏈接初始化,使得鏈接者和被鏈接者能夠互相調(diào)用對(duì)端的函數(shù)或者使用對(duì)端的數(shù)據(jù);
步驟S2,通過(guò)符號(hào)操作接口實(shí)現(xiàn)鏈接者和被鏈接者間的符號(hào)交換;
步驟S3,采用符號(hào)映射方式實(shí)現(xiàn)函數(shù)和數(shù)據(jù)的直接調(diào)用。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于中電科航空電子有限公司,未經(jīng)中電科航空電子有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010565207.9/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 動(dòng)態(tài)矢量譯碼方法和動(dòng)態(tài)矢量譯碼裝置
- 動(dòng)態(tài)口令的顯示方法及動(dòng)態(tài)令牌
- 動(dòng)態(tài)庫(kù)管理方法和裝置
- 動(dòng)態(tài)令牌的身份認(rèn)證方法及裝置
- 令牌、動(dòng)態(tài)口令生成方法、動(dòng)態(tài)口令認(rèn)證方法及系統(tǒng)
- 一種動(dòng)態(tài)模糊控制系統(tǒng)
- 一種基于動(dòng)態(tài)信號(hào)的POS機(jī)和安全保護(hù)方法
- 圖像動(dòng)態(tài)展示的方法、裝置、系統(tǒng)及介質(zhì)
- 一種基于POS機(jī)聚合碼功能分離顯示動(dòng)態(tài)聚合碼的系統(tǒng)
- 基于動(dòng)態(tài)口令的身份認(rèn)證方法、裝置和動(dòng)態(tài)令牌
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





