999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Simulink 環境下的TCU代碼集成方法

2019-04-18 07:55:40徐旭
汽車實用技術 2019年7期
關鍵詞:環境工程模型

徐旭

?

Simulink 環境下的TCU代碼集成方法

徐旭

(陜西法士特汽車傳動工程研究院智能傳動研究所,陜西 西安 710119)

將Simulink環境下搭建的模型轉化為C代碼,通過調用MCU(微處理器)的編譯器將這些C代碼進行編譯,并封裝為庫文件,ECU基礎軟件在IDE環境下也封裝為庫文件,最終在Simulink環境下通過調用MCU編譯器的鏈接器進行兩個庫文件的合并,最終生成MCU可執行的二進制文件。

Simulink;編譯器;庫文件;鏈接

前言

隨著Simulink建模技術在汽車行業中的的應用,越來越多的算法工程師開始在Simulink下進行控制邏輯的模型搭建,以便提高控制算法的設計及驗證周期,Simulink環境本身具有強大的軟件模型庫,可供軟件工程師根據自己的需求從庫中提取需要的模塊進行任意邏輯的組合,在該環境下可通過仿真輸入驗證整個控制過程的動態響應。

驗證完的算法需要運行在ECU(Electronic Control Uint)控制器上才能真正的將工程師的設計運用到實踐中來。

這就提出了將Simulink模型轉化為控制器認識的 – 可執行文件的問題,控制器內部是由MCU(微處理器)及外設驅動(CAN驅動、輸入、輸出驅動)組成的一個電控單元,其主體是類似于人類大腦的MCU在接收外界的輸入信號,根據內部提前設計好的運算邏輯,進行計算后再輸出,從而讓執行機構產生相應的動作。

MCU內部運行的是編譯器編譯后生成的二進制文件 – Interl格式的Hex文件,編譯器類似于一個翻譯者的角色,將人們在計算機上書寫的高級語言(C語言)翻譯成MCU可讀懂的機器語言。

這就需要我們在Simulink環境下調用MCU的編譯器對Simulink生成的C代碼進行編譯,并與ECU的基礎軟件進行鏈接,從而最終生成Hex文件。

1 Simulink模型到C代碼的生成

Simulink本身是MATLAB軟件中的一個功能模塊,主要用來進行基于模型的開發,從MATLAB的軟件環境來看,其隸屬關系如圖1。

圖1 MATLAB軟件開發環境示意圖

Simulink內置Embedded Coder工具可實現將Simulink模型生成符合嵌入式系統使用的C代碼功能,其內置的命令 rtwbuild ( model ),可一鍵式將模型轉化為C代碼,參數model是需要生成C代碼的模型名。

在實際中我們常使用的命令是rtwbuild (subsystem, ‘Mode’,‘ExportFunctionCalls’),該命令可針對模型( model )中的某一個子系統(Subsystem)進行C代碼的生成,將模型中的子系統生成一個獨立的函數(model.c文件)。

所以我們可通過RTW命令實現模型轉化為C代碼的過程。

2 C代碼轉化為庫文件

大型的Simulink模型生成的C文件往往不止一兩個,隨著模型中子系統數量的增加,生成的C文件常多達幾十個,如何將這些文件準確、可靠的與ECU基礎軟件進行“合并”是我們在進行代碼集成過程中需要考慮的,這里我們通過庫文件的形式來將Simulink生成的C代碼進行封裝。

所謂的庫文件也就是一系列工程文件的集合,而工程文件也就是原始C文件經過編譯后生成的文件。

圖2展示的C代碼的典型編譯工程(以hello.c文件為例),該文件會先后經過預編譯、編譯、匯編三個步驟,匯編后生成的hello.o文件就是工程文件,該文件已經將C語言書寫的高級語言轉化了MCU可認識的機器語言,我們將這些工程文件進行打包合并后可以生成庫文件hello.lib(可類比理解為壓縮文件)。

圖2 C文件典型編譯過程示意圖

3 ECU基礎軟件的封裝

ECU基礎軟件的開發通常是在MCU專屬的編譯器環境下進行的(俗稱的IDE – 集成開發環境),軟件開發工程師在該環境下進行手工代碼的編寫與功能的開發,IDE環境下本身就支持C代碼的編譯功能,可通過一鍵式的“BUILD”功能按鍵將工程路徑下的C代碼進行編譯,并通過前期的編譯選項設置,將工程文件生成為基礎軟件庫文件 – BSW.lib。

4 代碼的合并

合并也就是將上述的兩個庫文件進行鏈接的過程,鏈接器(linker)是編譯器軟件中的一個子軟件,是專門用來實現代碼鏈接的工具,代碼鏈接的過程類似于積木的拼接過程,將hello.lib與BSW.lib中的外部符號進行查找,然后將符號的地址填充到對應的代碼中,當所有的符號都可準確定位和填充后,則可以生成Hex文件。

5 結論

綜上所述,為了將Simlink模型轉化為Hex文件,先需要通過RTW命令將模型轉化為C代碼,并調用MCU編譯器將C代碼封裝為庫文件,ECU基礎軟件開發人員則并行在MCU IDE環境下進行基礎軟件的開發工作,并也封裝為庫文件,最終在Simulink環境下通過調用MCU的連接器將上下層的庫文件進行合并,生成Hex文件。

圖3 Simulink環境下的代碼集成方法示意圖

[1] 孫忠瀟.Simulink仿真及代碼生成技術入門到精通[M].北京航空航天大學出版社,2015.

Binary Code Generation of TCU Embedded System In Simulink

Xu Xu

( Shaanxi Fast Auto Drive Engineering Research Insitute, Shaanxi Xi’an 710119 )

Convert the Simulink model to C code, invoke MCU compiler to compile the C code into static library, and compile the ECU basic software into static libraty under the IDE, link both library in Simulink and generate the final binary code.

Simulink; Complier; Library file; Link

U467

A

1671-7988(2019)07-73-02

徐旭,電器工程師,中級工程師,就職于陜西法士特汽車傳動研究院智能傳動研究所,主要從事嵌入式系統軟件開發,AutoSAR平臺下的底層軟件開發,Simulink代碼集成等方面的研究工作。

U467

A

1671-7988(2019)07-73-02

10.16638/j.cnki.1671-7988.2019.07.024

猜你喜歡
環境工程模型
一半模型
長期鍛煉創造體內抑癌環境
一種用于自主學習的虛擬仿真環境
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
孕期遠離容易致畸的環境
環境
3D打印中的模型分割與打包
子午工程
太空探索(2016年6期)2016-07-10 12:09:06
工程
主站蜘蛛池模板: 国产精品无码AV片在线观看播放| www.av男人.com| 99热免费在线| 四虎精品免费久久| 久久一本日韩精品中文字幕屁孩| 91久久夜色精品| 国产精品免费电影| 午夜福利视频一区| 国内丰满少妇猛烈精品播| 在线a网站| 91免费国产高清观看| 亚洲手机在线| 2021国产在线视频| 少妇高潮惨叫久久久久久| 成人小视频在线观看免费| 强奷白丝美女在线观看| 91人妻在线视频| 国产性猛交XXXX免费看| 永久天堂网Av| 六月婷婷激情综合| www.国产福利| 妇女自拍偷自拍亚洲精品| 性色生活片在线观看| 日韩在线永久免费播放| 天天摸天天操免费播放小视频| 亚洲天堂区| 久久精品国产亚洲AV忘忧草18| 国产二级毛片| 久久久久人妻一区精品| 久热99这里只有精品视频6| 久久6免费视频| 久久99国产乱子伦精品免| 国产精品手机视频一区二区| 国产精品久久国产精麻豆99网站| 亚洲成a人片在线观看88| 国产精品美乳| 99热这里只有精品免费| 亚洲免费黄色网| 伊人久久久久久久久久| 国产高清在线丝袜精品一区| 亚洲综合国产一区二区三区| 无码高潮喷水在线观看| 亚洲国产中文在线二区三区免| 青青草国产免费国产| 99视频免费观看| AV熟女乱| 九色在线视频导航91| 久久成人免费| 亚洲美女操| 国产AV无码专区亚洲精品网站| 欧美午夜精品| 福利视频一区| 中文字幕av无码不卡免费| 久久精品亚洲热综合一区二区| 18禁黄无遮挡网站| 国产成人免费手机在线观看视频| 国产一区二区精品高清在线观看| 9久久伊人精品综合| 色噜噜狠狠色综合网图区| 国产精品视频白浆免费视频| 国产精品欧美激情| 啪啪啪亚洲无码| 一级片免费网站| 国产精品入口麻豆| 国产jizzjizz视频| 自拍中文字幕| 久久99精品国产麻豆宅宅| 国产爽妇精品| 亚洲天堂精品视频| 国产情精品嫩草影院88av| 女人一级毛片| 国产91丝袜在线播放动漫| 亚洲成a人片在线观看88| 又黄又湿又爽的视频| 国产国产人成免费视频77777| 欧美va亚洲va香蕉在线| 久久亚洲黄色视频| 99久久99视频| 中文字幕人成人乱码亚洲电影| 欧美精品成人| 一区二区三区国产精品视频| 中文字幕欧美日韩|