Simlink 生成A2L标定量和检测量
1.采用基于模型的設計(MBD)搭建應用程序
從Simulink Library Browser中推拽出如下模塊,搭建模型。
Matlab function內容如下圖
2.設置用戶存儲類(CSC)
因為a2l中的標定量和檢測量存放在用戶指定的區域,故在代碼生成時需要指定該變量存儲的位置。
在CMD窗口中輸入?cd(fullfile(matlabroot,'/toolbox/simulink/simdemos/dataclasses'))
將文件夾+SimulinkDemos復制到如D:\MyProjects\MyPackage,并重命名為+myPackage.
?將matlab路徑定位到D:\MyProjects\MyPackage,并打開Parameter.m和Signal.m文件。修改這兩個文件中的methds方法下的函數setupCoderInfo(line45),并將參數更改為“myPackage”和剛才重命名的一致。
保存并關閉文件
打開matlab主頁上的設置路徑按鈕,添加package路徑
添加package路徑
點擊保存,確認按鈕
在CMD窗口中鍵入:cscdesigner('myPackage'),此時將打開cscdesigner
點擊Memory Seeting選項卡,點擊New,設置參數如下(這個具體內容需要根據實際的MCU進行設置)如下定義兩種內存區,一個是calibration內存區,另一個是monitor內存區.在設置參數后可點擊Valiable按鈕檢測是否設置出錯,在Validating result輸出窗口中查看。
在Custom Storage Class選項卡中,點擊New ,參數如下,下圖設定義了2個存儲類,一個是calibration存儲類,另一個是monitor存儲類.在設置參數后可點擊Valiable按鈕檢測是否設置出錯,在Validating result輸出窗口中查看。
點擊ok,彈出的窗口中點擊OK按鈕。
點擊simulink模型中的userkey1模塊,打開對話框,在Signal Attributes選項卡中,點擊Data Store
Memory:simulink.Signal下拉選擇Customize calss lists,在Signal classes欄中勾選myPackage.Signal前的復選框,如圖
點擊ok,在剛才點擊打開的模塊的對話框中,再次下拉Signal object class,此時選擇myPackage.Signal,然后再Storage class的下拉框中選擇MyCalib,此時就已將該變量設置為標定兩個,如圖。
A模塊和userkey1模塊一樣,設置為標定量,userdata1和userdata2模塊在Storage class下拉中選擇MyMonitor.
以上就設置好了,simulink模塊的參數,接下來還需要設置代碼生成的規則。
3.設置系統生成A2L文件,并生成AUTOSAR代碼。
ctrl + e,打開模型配置參數對話框,設置如圖。
以上配置就基本上能生成了autosar代碼和a2l文件,當然還有其它優化生成代碼的選項,這里就不多說了。
在模型中點即RUN,若沒有錯誤,則點擊Bulid Mode,生成代碼,如圖。
4.將生成的代碼集成到工程中,利用生成的Hex文件,map文件,將A2l中的變量地址填充上(另外可能還需編寫一些文件信息到A2L中,如標定時的canId,QAC觸發條件等信息),即可在標定軟件中使用了。
以上四點即我在項目中使用的手法,若有錯誤還望指出。
本人是從事汽車電子ECU的開發的攻城獅一枚,主要從事BSW的開發,歡迎志同道合的朋友加我微信,一起討論有關汽車電子開發的技術。
總結
以上是生活随笔為你收集整理的Simlink 生成A2L标定量和检测量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作周报:2011-12-05至2011
- 下一篇: IOS 实现美图秀秀