電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 1655|回復(fù): 1
收起左側(cè)

嵌入式自學(xué)可能嗎_自動生成的代碼支持的硬件平臺的簡介

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-7-23 12:10:13 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
嵌入式自學(xué)可能嗎_自動生成的代碼支持的硬件平臺的簡介,   

你們自動生成的代碼都支持哪些MCU?

這是這幾年最經(jīng)常被問到的幾個問題之一了,我向來的回答是:

代碼生成工具生成的是標(biāo)準(zhǔn)C代碼,支持所有的MCU或者DSP。

既然答案如此明確,干嘛還要來寫這篇文章?

回答問題前,我們先看看為什么會有這么多人提及這個問題。

M曾經(jīng)的Target Support Package

我敢說很多人提到這個問題是因?yàn)?u>MATLAB曾經(jīng)有一個的工具箱,叫做Target Support Package,簡稱TSP,這個產(chǎn)品從MATLAB R2011a開始不再單獨(dú)銷售。不過,對于習(xí)慣了汽車行業(yè)這種嵌入式軟件開發(fā)的工程師,這些支持包,可能只能用作過家家了,因?yàn)槠囆袠I(yè)的軟件是下面這個樣子的:

  

即便是我們不使用AUTOSAR架構(gòu),差別也主要在于是否有RTE上,其他的部分該有的都會有的。

我們再來看一下TSP這個工具包有什么功能,下面這幅圖是MATLAB R2012b里面TI C2000的TSP模塊庫:

  

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

  

模型中,AD模塊有了,在生成的代碼中,有讀取AD轉(zhuǎn)換數(shù)據(jù)的C接口函數(shù),AD轉(zhuǎn)換得到的數(shù)據(jù)經(jīng)過Algorithm部分的運(yùn)算,獲得期望的PWM輸出信號的占空比,后面的PWM模塊會根據(jù)這個占空比的數(shù)值產(chǎn)生PWM信號。

看起來好像非常不錯的樣子,不過我們想,就AD轉(zhuǎn)換或者PWM輸出這類底層驅(qū)動軟件,對于一個做單片機(jī)的工程師來講,這點(diǎn)工作量并不大,并且,對于同一款單片機(jī),最底層的驅(qū)動軟件通常非常穩(wěn)定,不會像應(yīng)用層軟件那樣需要頻繁變更。

也就是說,TSP給我們節(jié)省的時間非常有限。

時間上不能節(jié)省太多倒還不是最大的問題。最大的問題是,這部分軟件在Simulink環(huán)境下沒法仿真,如果架構(gòu)設(shè)計(jì)不好,這會直接導(dǎo)致整個模型的可驗(yàn)證性變差。

如果為了節(jié)省那么一點(diǎn)微不足道的時間,而導(dǎo)致整個模型的可驗(yàn)證性變差,得不償失。

另外,還有不少客戶試圖自己開發(fā)TSP,這往往連節(jié)省微不足道的時間的好處都沒了,因?yàn)殚_發(fā)TSP也算得上對Simulink做深度定制了,通常需要用戶熟悉TLC編程,熟悉S-Function,并且,無論是TLC還是S-Function都沒有便利的調(diào)試環(huán)境,這對于開發(fā)以及后期維護(hù)TSP都帶來了非常大的困難。

所以,我對Simulink模型設(shè)計(jì)的建議是:

能在Simulink環(huán)境下仿真的部分,可以通過Simulink實(shí)現(xiàn),對于單片機(jī)底層這類沒法在Simulink下仿真的軟件,不應(yīng)該打包到Simulink環(huán)境下。

MTSP是否一無是處?

前面我們說過,這個工具從2011年開始已經(jīng)不再單獨(dú)銷售,但并未壽終正寢。最新版的MATLAB的標(biāo)準(zhǔn)產(chǎn)品中已經(jīng)看不到這個產(chǎn)品,不過,如果你一定要找,還是可以通過添加硬件支持包的方式找到各式各樣的硬件支持包,并且相對以前的TSP,硬件支持包不僅提供了很多MCU的驅(qū)動模塊,而且還提供了很多熱門硬件的支持,比如Arduino,Raspberry Pi等,如下圖示:

  

對于完全沒有嵌入式軟件開發(fā)經(jīng)驗(yàn)的大、中學(xué)生或者工程師,如果想做嵌入式系統(tǒng)上實(shí)現(xiàn)某些算法,而又沒有精力去學(xué)習(xí)嵌入式系統(tǒng),的確可以借助TSP,通過Simulink實(shí)現(xiàn)算法,并最快的做目標(biāo)處理器上驗(yàn)證這些算法,這也是不錯的選擇。

但是對于產(chǎn)品開發(fā),TSP在很多行業(yè)是行不通的。

M不該有的誤解

或許因?yàn)門SP的存在,讓很多人產(chǎn)生如下誤解:

MATLAB沒提供TSP的單片機(jī)就等于MATLAB代碼生成不支持這款單片機(jī)

基于模型的嵌入式軟件設(shè)計(jì)一定要有TSP作為支持,沒有TSP支持,就沒法進(jìn)行基于模型的嵌入式軟件設(shè)計(jì)

這兩種誤解是沒有道理的,我們應(yīng)該參照AUTOSAR架構(gòu),做應(yīng)用層軟件開發(fā)或者策略實(shí)現(xiàn)部分的模型開發(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)?這是一個問題,不需要答案,只為更加明確TSP做汽車電子產(chǎn)品軟件開發(fā)中沒有價(jià)值。

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表