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

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

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

嵌入式自學(xué)可能嗎_自動(dòng)生成的代碼支持的硬件平臺(tái)的簡(jiǎn)介

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級(jí)會(huì)員

Rank: 5Rank: 5

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

你們自動(dòng)生成的代碼都支持哪些MCU?

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

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

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

回答問題前,我們先看看為什么會(huì)有這么多人提及這個(gè)問題。

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

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

  

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

我們?cè)賮砜匆幌耇SP這個(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)過Algorithm部分的運(yùn)算,獲得期望的PWM輸出信號(hào)的占空比,后面的PWM模塊會(huì)根據(jù)這個(gè)占空比的數(shù)值產(chǎn)生PWM信號(hào)。

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

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

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

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

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

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

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

MTSP是否一無是處?

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

  

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

但是對(duì)于產(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)?這是一個(gè)問題,不需要答案,只為更加明確TSP做汽車電子產(chǎn)品軟件開發(fā)中沒有價(jià)值。

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

本版積分規(guī)則


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