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
工程
主站蜘蛛池模板: 中文字幕在线观看日本| P尤物久久99国产综合精品| 国产美女无遮挡免费视频网站 | 日韩第九页| 欧美日本在线一区二区三区| 国产91高清视频| 在线观看精品自拍视频| 91麻豆精品国产高清在线| 99精品国产电影| 婷婷五月在线| 热久久这里是精品6免费观看| 午夜在线不卡| 亚洲精品无码AV电影在线播放| 国产第一页亚洲| 老司机精品99在线播放| 亚洲久悠悠色悠在线播放| 国产精品美人久久久久久AV| 国产青青草视频| 2021天堂在线亚洲精品专区 | 成人中文在线| 免费毛片网站在线观看| 中文字幕永久在线观看| 美女高潮全身流白浆福利区| 亚洲成AV人手机在线观看网站| 中文字幕无码制服中字| 色天天综合| 老司机久久精品视频| 久久久久夜色精品波多野结衣| 久久精品无码中文字幕| 刘亦菲一区二区在线观看| 亚洲色欲色欲www网| yy6080理论大片一级久久| 国产精品va免费视频| 国产女人在线| 久久伊人操| 91蜜芽尤物福利在线观看| 国产第三区| 国产久草视频| 亚洲精品天堂在线观看| 日韩人妻精品一区| 亚洲一区二区在线无码| 天天爽免费视频| 最新日韩AV网址在线观看| 国产噜噜噜视频在线观看| 欧美区一区| 日韩成人在线一区二区| 国产精品手机视频一区二区| 极品国产在线| 中文字幕在线播放不卡| 日韩精品一区二区三区中文无码| 婷婷亚洲天堂| 欧美午夜小视频| 激情六月丁香婷婷四房播| 国产v欧美v日韩v综合精品| 国产福利不卡视频| 欧美中文一区| 亚洲无码高清一区| 激情六月丁香婷婷四房播| 狠狠色成人综合首页| 特级做a爰片毛片免费69| 一本无码在线观看| 久久综合干| 呦女亚洲一区精品| 91小视频在线观看免费版高清| 国产高清毛片| 久久精品aⅴ无码中文字幕 | 高清色本在线www| 超碰aⅴ人人做人人爽欧美| 久久国产高清视频| 欧美性爱精品一区二区三区| 日本精品影院| 91精品国产麻豆国产自产在线| 九九视频在线免费观看| 青青青亚洲精品国产| 极品国产在线| 在线播放精品一区二区啪视频| 国产jizz| 亚洲国产成人自拍| 日韩午夜片| 久久亚洲精少妇毛片午夜无码| 欧美日本在线观看| 久久九九热视频|