[發明專利]一種面向IMA的AADL多范式建模及自動生成C代碼的方法有效
| 申請號: | 202010909187.2 | 申請日: | 2020-09-02 |
| 公開(公告)號: | CN112114801B | 公開(公告)日: | 2021-11-16 |
| 發明(設計)人: | 楊志斌;邱寶;王飛;謝健;周勇 | 申請(專利權)人: | 南京航空航天大學 |
| 主分類號: | G06F8/35 | 分類號: | G06F8/35;G06F8/30 |
| 代理公司: | 南京蘇高專利商標事務所(普通合伙) 32204 | 代理人: | 顏盈靜 |
| 地址: | 210016 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 ima aadl 范式 建模 自動 生成 代碼 方法 | ||
1.一種面向IMA的AADL模型自動生成C代碼的方法,其特征在于:包括以下步驟:
S1:根據AADL構件與IMA元素的對應關系,采用AADL對IMA的軟硬件架構進行表達,得到系統架構AADL模型;具體為:
通過AADL的軟件構件對IMA的軟件體系結構進行建模,具體為:
用AADL的System構件來表達IMA系統;
用AADL的Processor構件和Memory構件分別代表IMA的處理器和內存;
用AADL的Data Port和Event Data Port分別表示IMA的分區間通信的兩種方式采樣和隊列;
用AADL的Process構件用于表達IMA分區的軟件部分;
用AADL的Virtual Processor表達IMA的分區運行時的硬件部分;
用AADL的Thread表達IMA的任務;
IMA的分區內通信有四種方式包括緩沖區、黑板、信號量和事件,其中,緩沖區用同一進程內的Event Data Port表示,黑板用兩個線程共享的Data表示,信號量用Data Access表示,事件用Event Port表示;
用AADL的Subprogram和BA用于表達IMA任務的功能行為;
通過AADL的硬件構件以及構件間的連接對IMA的硬件體系結構進行描述;
所述硬件構件包括處理器構件、虛擬處理器構件、存儲器構件、外設構件、總線構件、虛擬總線構件;
通過AADL的復合構件組合所有的硬件構件和軟件構件,建立得到系統架構AADL模型;
S2:對AADL的屬性集進行拓展,創建得到MPM4IMA屬性集,以支持基于BA、SIGNAL、SDL對系統架構AADL模型中的各構件功能行為進行表達,得到平臺無關的AADL模型;
通過在所述MPM4IMA屬性集中可定義新的屬性、屬性類型和屬性常數,以支持基于BA、SIGNAL、SDL對任務的功能行為進行表達;
S3:采用IMA屬性集對平臺無關的AADL模型進行平臺相關求精,生成平臺相關的AADL模型;
S4:借助Xtend提供的模板功能對IMA與AADL的轉換映射規則進行表達,得到轉換模板;
S5:借助OSATE平臺對平臺相關的AADL模型的頂層系統進行實例化,得到代表該頂層系統的AAXL2文件;
S6:借助AAXL2文件和EMF代碼解析得到SystemImpl對象;
S7:借助S4的轉換模板對SystemImpl對象進行子系統遍歷、進程遍歷、其他構件遍歷,遍歷結束后生成與平臺相關的AADL模型對應的C代碼工程;
所述轉換映射規則包括:
規則1:AADL簡單的數據類型映射到C語言簡單數據類型,數據標識符轉化為相應的C語言變量標識符;
規則2:AADL數據結構映射為C語言的結構體,具體為:將數據構件名稱、數據子構件名稱和數據子構件類型映射為結構體名稱、內部成員名稱、內部成員類型;
規則3:AADL狀態映射為C語言的枚舉類型,并且給初始狀態、當前狀態賦值;
規則4:AADL變遷映射為switch-case結構,每個狀態映射為一個case,每個變遷映射為一個if-else結構,變遷的條件守衛映射為if-else的條件判斷部分,變遷的行為動作映射為if-else的操作部分;
規則5:SDL中系統轉換為系統名.c和系統名.h文件,功能塊轉換為C語言中對應的子程序;SDL的聲明的元素轉換為C語言中的全局變量;SDL的局部聲明的變量轉換為C語言的局部變量;SDL的狀態代碼生成規則和AADL狀態代碼生成規則一致;
規則6:周期性任務的初始化子程序映射為APEX API對應的任務初始化子程序;
規則7:非周期性任務的初始化子程序映射為APEX API對應的任務初始化子程序;
規則8:針對一個AADL周期性構件,入口子程序用<線程實例名_period_jod>來命名,周期性線程的循環過程映射為入口子程序的while(1)循環,線程周期性等待映射為wait_next_period()子程序,并把它置于while循環的末尾;
規則9:針對一個AADL非周期性構件,入口子程序用<線程實例名_aperiodic_job>來命名,在端口捕獲事件映射為wait_Dispatch()子程序;
規則10:IMA分區實體,包括分區ID、分區名、分區調度策略、任務總數、通信端口數,對應AADL的Partition_Identifier、Partition_Name、Scheduling_Protocol、線程總數、端口總數;
規則11:當前分區的調度周期、分區ID、當前分區的運行時長,對應AADL的Module_Schedule和Partition_Identifier屬性;
規則12:采樣通信對應AADL的Process構件間的Data Port通信;
規則13:隊列通信對應AADL的Process構件間的Event Data Port通信;
規則14:分區表包含分區名、分區ID,以及每個分區里包含的端口的信息,對應AADL的PartitionName、PartitionID、PortName、Direction;
規則15:分區調度表包含一個主時間框架、分區名、分區ID、分區周期、分區持續時間、窗口開始的時間、窗口ID,分別對應AADL的Module_Schedule的四個屬性、PartitionName、PartitionID;Module_Schedule的四個屬性包括PeriodSeconds、PeriodDurationSeconds、WindowStartSeconds、WindowID;
規則16:通信表包含端口名稱、端口所在分區名、端口方向,對應AADL的PortName,PartitionName和端口方向;
規則17:內存分配表包含分區名、分區ID、分區內存大小,對應AADL的PartitionName、PartitionID、Memory_requirement。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京航空航天大學,未經南京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010909187.2/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種優良杏鮑菇選育方法
- 下一篇:一種秀珍菇高效選育及栽培方法





