0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于自動(dòng)代碼生成五大原則分析和介紹

MATLAB ? 來(lái)源:djl ? 作者:董淑成 ? 2019-09-17 17:16 ? 次閱讀

10年前,我們經(jīng)歷了從匯編語(yǔ)言到C語(yǔ)言的轉(zhuǎn)變,現(xiàn)在,我們是時(shí)候經(jīng)歷從C語(yǔ)言到Simulink模型的轉(zhuǎn)變了……

從第一次看到這句話到現(xiàn)在又一個(gè)10年過(guò)去了,10年的時(shí)間,很多領(lǐng)域在控制算法軟件開(kāi)發(fā)中已經(jīng)完成了從C語(yǔ)言到Simulink模型的轉(zhuǎn)變,當(dāng)然,也有一些行業(yè)正在經(jīng)歷這樣的轉(zhuǎn)變,Simulink模型生成C代碼已經(jīng)成為非常成熟的技術(shù)。稍微有些遺憾的是,10年的時(shí)間,并沒(méi)有像匯編語(yǔ)言到C語(yǔ)言的轉(zhuǎn)變那樣,讓工程師們幾乎徹底忘掉匯編語(yǔ)言,即便是在基于模型設(shè)計(jì)最為成熟的汽車(chē)行業(yè),也依然有工程師還有翻看自動(dòng)生成代碼的習(xí)慣。

關(guān)于自動(dòng)代碼生成五大原則分析和介紹

下面我來(lái)簡(jiǎn)單說(shuō)說(shuō)和自動(dòng)代碼生成相關(guān)的幾個(gè)原則:

拿正確的模型去生成代碼。代碼生成工具不具備糾錯(cuò)功能,最完美的代碼生成工具,也只能忠實(shí)于模型的描述,并將其轉(zhuǎn)化為C代碼。如果我們不確定模型正確與否,那我們得到的代碼也同樣是不能確保正確。

不對(duì)自動(dòng)生成的代碼做任何手工修改。從軟件工程的角度上來(lái)講,在基于模型的開(kāi)發(fā)模式下,模型應(yīng)該是我們工作和維護(hù)的工作產(chǎn)品,所有我們希望在代碼里實(shí)現(xiàn)的內(nèi)容,都應(yīng)該通過(guò)模型或者模型配置去實(shí)現(xiàn)。如果我們手工修改自動(dòng)生成的代碼,那么整個(gè)開(kāi)發(fā)過(guò)程的可維護(hù)性就大大降低,每次面對(duì)模型發(fā)生變更后生成的代碼,我們都需要經(jīng)過(guò)手工修改。

不看代碼。不看代碼并不絕對(duì),這里主要是指不看算法的實(shí)現(xiàn)代碼。在生成的.C和.H文件中,H文件作為和其他模塊的接口文件,還是會(huì)有工程師去看看你這個(gè)模塊到底定義了哪些全局的函數(shù)以及變量的。

管理你關(guān)心的數(shù)據(jù)。代碼生成階段的主要工作是數(shù)據(jù)管理工作,配置Simulink模型中需要關(guān)注的數(shù)據(jù),這里主要是信號(hào)參數(shù),并將其按照項(xiàng)目的要求,生成為C代碼中的變量和參數(shù)。對(duì)于那些不需要關(guān)注的數(shù)據(jù),不建議做過(guò)多的配置,只要按照默認(rèn)的規(guī)則生成變量即可。再羅嗦一句,我們只管理我們關(guān)心的數(shù)據(jù),比如,跟其他模塊之間的接口數(shù)據(jù)、需要標(biāo)定的參數(shù)以及需要觀測(cè)的變量。

代碼的驗(yàn)證。這里我要扯一下ISO 26262的大旗,沒(méi)辦法,ISO 26262出現(xiàn)之前,我也曾堅(jiān)持在這種開(kāi)發(fā)模式下無(wú)需對(duì)代碼做靜態(tài)驗(yàn)證,也無(wú)需對(duì)代碼做動(dòng)態(tài)測(cè)試,很多人難以接受我的觀點(diǎn),現(xiàn)在好了,在客戶面前,我不再說(shuō)這是我的觀點(diǎn),而是ISO 26262里面的條款。傳統(tǒng)模式下的靜態(tài)、動(dòng)態(tài)驗(yàn)證不需要了,但是,代碼是否就無(wú)需驗(yàn)證了呢?非也,代碼依然要經(jīng)過(guò)充分驗(yàn)證,只是,在假設(shè)模型已經(jīng)經(jīng)過(guò)充分驗(yàn)證的前提下,這里只要再驗(yàn)證代碼和模型一致即可,驗(yàn)證的方法,也就是我們非常熟悉的SIL和PIL,ISO 26262里面稱之為back-to-back測(cè)試。

我個(gè)人觀點(diǎn),盡量不要在代碼生成這件事上耗費(fèi)過(guò)多的心思。當(dāng)然,“強(qiáng)迫癥患者”我也接觸過(guò)一些,雖說(shuō)道理上講理解可以不看代碼,但還是忍不住要去關(guān)心代碼,希望代碼生成工具能夠生成出來(lái)自己希望看到的代碼。我是工程師,不是老中醫(yī),我這里沒(méi)有藥到病除的方子,我希望能做到的是讓你的病情轉(zhuǎn)移。

你不是因?yàn)閺?qiáng)迫癥要關(guān)注代碼嗎?

那你的模型測(cè)試是否充分?

MC/DC覆蓋是否已經(jīng)達(dá)到了100%?

強(qiáng)迫自己把模型測(cè)到盡可能充分吧,這才是有利于你產(chǎn)品品質(zhì)提升的事情。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    探索設(shè)計(jì)稿自動(dòng)生成Flutter代碼的技術(shù)方案

    的工具和方法,最后嘗試大模型生成flutter代碼在項(xiàng)目中的實(shí)踐。 一、美團(tuán)的探索 美團(tuán)在2021年3月25日發(fā)表了一篇關(guān)于設(shè)計(jì)稿自動(dòng)生成
    的頭像 發(fā)表于 11-08 10:09 ?463次閱讀
    探索設(shè)計(jì)稿<b class='flag-5'>自動(dòng)</b><b class='flag-5'>生成</b>Flutter<b class='flag-5'>代碼</b>的技術(shù)方案

    如何自動(dòng)生成verilog代碼

    介紹幾種自動(dòng)生成verilog代碼的方法。
    的頭像 發(fā)表于 11-05 11:45 ?156次閱讀
    如何<b class='flag-5'>自動(dòng)</b><b class='flag-5'>生成</b>verilog<b class='flag-5'>代碼</b>

    代碼解析工具與自動(dòng)化流程圖生成解決方案

    ? 摘要:CasePlayer2是一款強(qiáng)大的源代碼解析工具,專門(mén)設(shè)計(jì)用于分析ANSI C、C、C++以及匯編語(yǔ)言源代碼,并自動(dòng)化地生成流程圖
    的頭像 發(fā)表于 10-10 13:40 ?118次閱讀

    關(guān)于Makefile自動(dòng)生成-autotools的使用

    的Makefile并非日常任務(wù),但遇見(jiàn)需要構(gòu)建大型軟件項(xiàng)目時(shí),利用工具自動(dòng)生成Makefile就顯得尤為關(guān)鍵。接下來(lái),我們將重點(diǎn)介紹一款自動(dòng)化構(gòu)建工具——Autoto
    的頭像 發(fā)表于 07-25 15:50 ?1440次閱讀
    <b class='flag-5'>關(guān)于</b>Makefile<b class='flag-5'>自動(dòng)</b><b class='flag-5'>生成</b>-autotools的使用

    聚徽觸控-工控主板的五大優(yōu)勢(shì)分別是什么

    工控主板的五大優(yōu)勢(shì)主要如下:
    的頭像 發(fā)表于 07-17 09:58 ?278次閱讀

    關(guān)于氣密性檢測(cè)儀的五大優(yōu)勢(shì),你get到了嗎

    在現(xiàn)代工業(yè)生產(chǎn)中,產(chǎn)品的氣密性檢測(cè)已經(jīng)成為一個(gè)關(guān)鍵步驟。為了保證產(chǎn)品的質(zhì)量和性能,密封操作尤為關(guān)鍵。氣密性檢測(cè)儀作為一種專業(yè)的檢測(cè)儀器,其五大優(yōu)勢(shì)在許多行業(yè)得到了廣泛的應(yīng)用。接下來(lái),讓我們揭示它的五大優(yōu)勢(shì)。
    的頭像 發(fā)表于 04-09 14:30 ?325次閱讀
    <b class='flag-5'>關(guān)于</b>氣密性檢測(cè)儀的<b class='flag-5'>五大</b>優(yōu)勢(shì),你get到了嗎

    分布式存儲(chǔ)系統(tǒng)的七大原則之二:區(qū)分環(huán)境數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù)

    在之前討論的分布式存儲(chǔ)系統(tǒng)七大原則的第一原則中,我們了解了容災(zāi)切換和數(shù)據(jù)備份的差異?,F(xiàn)在,我們繼續(xù)探索第二原則:區(qū)分環(huán)境數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù)。這一原則強(qiáng)調(diào)了兩種類型數(shù)據(jù)在變化頻率、價(jià)值以及數(shù)
    的頭像 發(fā)表于 03-11 09:42 ?335次閱讀

    AI PC元年,全球前五大PC廠商如何領(lǐng)跑?

    是19.8%、15%、10.6%和7.1%。 當(dāng)前,包括群智咨詢(Sigmaintell)IT研究總監(jiān)李亞妤在內(nèi)的分析師,以及廣泛的從業(yè)者都認(rèn)為,2024年是全球AI PC元年。那么,作為全球前五大PC廠商,如何應(yīng)對(duì)這波產(chǎn)業(yè)機(jī)遇呢?
    的頭像 發(fā)表于 02-26 08:09 ?3729次閱讀
    AI PC元年,全球前<b class='flag-5'>五大</b>PC廠商如何領(lǐng)跑?

    SMT貼片加工廠錫膏管控的五大原則及要求

    一站式PCBA智造廠家今天為大家講講SMT貼片加工廠錫膏是如何管控?SMT錫膏管理操作流程。在SMT貼片加工過(guò)程中,錫膏是一個(gè)至關(guān)重要的組成部分,因?yàn)樗鸬竭B接SMT元件和PCB板的作用。SMT貼片加工廠必須非常小心地管理和控制錫膏,以確保生產(chǎn)出高質(zhì)量的電路板。 SMT貼片加工廠錫膏的管控方法 一、SMT貼片加工廠必須妥善存儲(chǔ)錫膏 存儲(chǔ)條件對(duì)于保持錫膏的性能至關(guān)重要。錫膏必須在低溫下儲(chǔ)存,以防止其被氧化和老化。一般來(lái)說(shuō),錫膏應(yīng)儲(chǔ)存在溫度為0
    的頭像 發(fā)表于 01-18 10:06 ?1012次閱讀

    軟件測(cè)試的7大原則,你漏了幾條?

    軟件測(cè)試報(bào)告最需要注意的就是測(cè)試思考,而非測(cè)試執(zhí)行。而對(duì)軟件測(cè)試菜鳥(niǎo)來(lái)說(shuō),初入行,首先要知道軟件測(cè)試的7條原則,了解這些可以讓你事倍功半。 1測(cè)試的不可窮盡原則 是的!任何產(chǎn)品不可能被窮盡測(cè)試。我們
    發(fā)表于 01-18 09:39

    電機(jī)的五大啟動(dòng)方式

    自動(dòng)化小白必學(xué)!電機(jī)的五大啟動(dòng)方式
    的頭像 發(fā)表于 01-09 10:39 ?833次閱讀
    電機(jī)的<b class='flag-5'>五大</b>啟動(dòng)方式

    單片機(jī)代碼自動(dòng)生成器程序

    單片機(jī)代碼自動(dòng)生成器是一種能夠幫助開(kāi)發(fā)人員快速生成單片機(jī)代碼的工具。它利用了現(xiàn)代計(jì)算機(jī)技術(shù)和算法,能夠根據(jù)用戶提供的輸入和需求,
    的頭像 發(fā)表于 01-08 14:12 ?2779次閱讀

    Java中保持?jǐn)U展性的實(shí)現(xiàn)方法

    SOLID(單一、開(kāi)閉、里式替換、接口隔離、依賴倒置)五大原則和23種設(shè)計(jì)模式(常見(jiàn)的單例、構(gòu)建者、裝飾、適配、代理、組合、模板等等),小伙伴們對(duì)這些肯定都很熟悉。這些原則和設(shè)計(jì)模式能夠輔助我們,讓我們?cè)谠O(shè)計(jì)的時(shí)候有所抉擇,從而達(dá)到高內(nèi)聚、低耦合的目的。
    的頭像 發(fā)表于 12-01 10:01 ?339次閱讀
    Java中保持?jǐn)U展性的實(shí)現(xiàn)方法

    simulink自動(dòng)生成ROS代碼

    當(dāng)我們用simulink完成控制程序的搭建后,我們期望下一次可以直接對(duì)ROS進(jìn)行控制,而不是每次都需要啟動(dòng)matlab和simulink,因此我們可以使用simulink的代碼生成器,生成ROS
    的頭像 發(fā)表于 11-15 17:53 ?783次閱讀
    simulink<b class='flag-5'>自動(dòng)</b><b class='flag-5'>生成</b>ROS<b class='flag-5'>代碼</b>

    LED驅(qū)動(dòng)電源設(shè)計(jì)五大要點(diǎn)

    電子發(fā)燒友網(wǎng)站提供《LED驅(qū)動(dòng)電源設(shè)計(jì)五大要點(diǎn).doc》資料免費(fèi)下載
    發(fā)表于 11-15 09:53 ?0次下載
    LED驅(qū)動(dòng)電源設(shè)計(jì)<b class='flag-5'>五大</b>要點(diǎn)