你們自動(dòng)生成的代碼都支持哪些MCU?
這是這幾年最經(jīng)常被問(wèn)到的幾個(gè)問(wèn)題之一了,我向來(lái)的回答是:
代碼生成工具生成的是標(biāo)準(zhǔn)C代碼,支持所有的MCU或者DSP。
既然答案如此明確,干嘛還要來(lái)寫(xiě)這篇文章?
回答問(wèn)題前,我們先看看為什么會(huì)有這么多人提及這個(gè)問(wèn)題。
M曾經(jīng)的Target Support Package
我敢說(shuō)很多人提到這個(gè)問(wèn)題是因?yàn)?a href="http://www.3532n.com/tags/matlab/" target="_blank">MATLAB曾經(jīng)有一個(gè)的工具箱,叫做Target Support Package,簡(jiǎn)稱TSP,這個(gè)產(chǎn)品從MATLAB R2011a開(kāi)始不再單獨(dú)銷售。不過(guò),對(duì)于習(xí)慣了汽車行業(yè)這種嵌入式軟件開(kāi)發(fā)的工程師,這些支持包,可能只能用作過(guò)家家了,因?yàn)槠囆袠I(yè)的軟件是下面這個(gè)樣子的:

即便是我們不使用AUTOSAR架構(gòu),差別也主要在于是否有RTE上,其他的部分該有的都會(huì)有的。
我們?cè)賮?lái)看一下TSP這個(gè)工具包有什么功能,下面這幅圖是MATLAB R2012b里面TI C2000的TSP模塊庫(kù):

這個(gè)模塊庫(kù)里有AD、有數(shù)字IO,有PWM輸出,有比較寄存器,還有各類通信端口的收發(fā)模塊等等,我們可以假想有這樣一個(gè)模型:

模型中,AD模塊有了,在生成的代碼中,有讀取AD轉(zhuǎn)換數(shù)據(jù)的C接口函數(shù),AD轉(zhuǎn)換得到的數(shù)據(jù)經(jīng)過(guò)Algorithm部分的運(yùn)算,獲得期望的PWM輸出信號(hào)的占空比,后面的PWM模塊會(huì)根據(jù)這個(gè)占空比的數(shù)值產(chǎn)生PWM信號(hào)。
看起來(lái)好像非常不錯(cuò)的樣子,不過(guò)我們想,就AD轉(zhuǎn)換或者PWM輸出這類底層驅(qū)動(dòng)軟件,對(duì)于一個(gè)做單片機(jī)的工程師來(lái)講,這點(diǎn)工作量并不大,并且,對(duì)于同一款單片機(jī),最底層的驅(qū)動(dòng)軟件通常非常穩(wěn)定,不會(huì)像應(yīng)用層軟件那樣需要頻繁變更。
也就是說(shuō),TSP給我們節(jié)省的時(shí)間非常有限。
時(shí)間上不能節(jié)省太多倒還不是最大的問(wèn)題。最大的問(wèn)題是,這部分軟件在Simulink環(huán)境下沒(méi)法仿真,如果架構(gòu)設(shè)計(jì)不好,這會(huì)直接導(dǎo)致整個(gè)模型的可驗(yàn)證性變差。
如果為了節(jié)省那么一點(diǎn)微不足道的時(shí)間,而導(dǎo)致整個(gè)模型的可驗(yàn)證性變差,得不償失。
另外,還有不少客戶試圖自己開(kāi)發(fā)TSP,這往往連節(jié)省微不足道的時(shí)間的好處都沒(méi)了,因?yàn)殚_(kāi)發(fā)TSP也算得上對(duì)Simulink做深度定制了,通常需要用戶熟悉TLC編程,熟悉S-Function,并且,無(wú)論是TLC還是S-Function都沒(méi)有便利的調(diào)試環(huán)境,這對(duì)于開(kāi)發(fā)以及后期維護(hù)TSP都帶來(lái)了非常大的困難。
所以,我對(duì)Simulink模型設(shè)計(jì)的建議是:
能在Simulink環(huán)境下仿真的部分,可以通過(guò)Simulink實(shí)現(xiàn),對(duì)于單片機(jī)底層這類沒(méi)法在Simulink下仿真的軟件,不應(yīng)該打包到Simulink環(huán)境下。
MTSP是否一無(wú)是處?
前面我們說(shuō)過(guò),這個(gè)工具從2011年開(kāi)始已經(jīng)不再單獨(dú)銷售,但并未壽終正寢。最新版的MATLAB的標(biāo)準(zhǔn)產(chǎn)品中已經(jīng)看不到這個(gè)產(chǎn)品,不過(guò),如果你一定要找,還是可以通過(guò)添加硬件支持包的方式找到各式各樣的硬件支持包,并且相對(duì)以前的TSP,硬件支持包不僅提供了很多MCU的驅(qū)動(dòng)模塊,而且還提供了很多熱門硬件的支持,比如Arduino,Raspberry Pi等,如下圖示:

對(duì)于完全沒(méi)有嵌入式軟件開(kāi)發(fā)經(jīng)驗(yàn)的大、中學(xué)生或者工程師,如果想做嵌入式系統(tǒng)上實(shí)現(xiàn)某些算法,而又沒(méi)有精力去學(xué)習(xí)嵌入式系統(tǒng),的確可以借助TSP,通過(guò)Simulink實(shí)現(xiàn)算法,并最快的做目標(biāo)處理器上驗(yàn)證這些算法,這也是不錯(cuò)的選擇。
但是對(duì)于產(chǎn)品開(kāi)發(fā),TSP在很多行業(yè)是行不通的。
M不該有的誤解
或許因?yàn)門SP的存在,讓很多人產(chǎn)生如下誤解:
MATLAB沒(méi)提供TSP的單片機(jī)就等于MATLAB代碼生成不支持這款單片機(jī)
基于模型的嵌入式軟件設(shè)計(jì)一定要有TSP作為支持,沒(méi)有TSP支持,就沒(méi)法進(jìn)行基于模型的嵌入式軟件設(shè)計(jì)
這兩種誤解是沒(méi)有道理的,我們應(yīng)該參照AUTOSAR架構(gòu),做應(yīng)用層軟件開(kāi)發(fā)或者策略實(shí)現(xiàn)部分的模型開(kāi)發(fā)中使用模型。
如果我們仔細(xì)觀察一下AUTOSAR的軟件架構(gòu),我們發(fā)現(xiàn),基礎(chǔ)軟件部分,除了MCAL層之外,還有ECU 抽象層、協(xié)議棧、操作系統(tǒng)等基礎(chǔ)軟件,并且這部分軟件遠(yuǎn)比MCAL復(fù)雜,如果使用TSP,基礎(chǔ)軟件中除了MCAL之外的軟件怎么實(shí)現(xiàn)?這是一個(gè)問(wèn)題,不需要答案,只為更加明確TSP做汽車電子產(chǎn)品軟件開(kāi)發(fā)中沒(méi)有價(jià)值。
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3747瀏覽量
133641 -
代碼
+關(guān)注
關(guān)注
30文章
4968瀏覽量
73989
發(fā)布評(píng)論請(qǐng)先 登錄
不只有AI協(xié)作編程(Vibe Coding):生成式系統(tǒng)級(jí)芯片(GenSoC)將如何把生成式設(shè)計(jì)推向硬件層面
2025支持AI 驅(qū)動(dòng)數(shù)字化轉(zhuǎn)型的低代碼開(kāi)發(fā)平臺(tái)有哪些
低代碼開(kāi)發(fā)平臺(tái)推薦:2025國(guó)內(nèi)低代碼開(kāi)發(fā)平臺(tái)排名TOP10
語(yǔ)法糾錯(cuò)和testbench的自動(dòng)生成
2025主流低代碼平臺(tái)有哪些:低代碼開(kāi)發(fā)平臺(tái)選型指南指南
使用Simulink自動(dòng)生成浮點(diǎn)運(yùn)算HDL代碼(Part 1)
工業(yè)物聯(lián)網(wǎng)平臺(tái)有哪些低代碼應(yīng)用
測(cè)試小白3分鐘上手,零代碼自動(dòng)化測(cè)試平臺(tái),15分鐘搭建自動(dòng)化測(cè)試方案
HarmonyOSAI編程編輯區(qū)代碼生成
360環(huán)視技術(shù)推薦的硬件平臺(tái):支持多攝像頭與三屏異顯的理想選擇
AI 智能重構(gòu)測(cè)試測(cè)量平臺(tái),Moku:Delta集成業(yè)內(nèi)首創(chuàng)“生成式儀器”
主流機(jī)器視覺(jué)軟件開(kāi)發(fā)平臺(tái)介紹及對(duì)比?
自動(dòng)生成的代碼支持的硬件平臺(tái)的簡(jiǎn)介
評(píng)論