???總覺得單純寫ISO 26262顯得太單調(diào),于是小編拉上好盆友印小怪開啟了simulink 之旅。希望能跟更多的朋友一起交流學(xué)習(xí),共同進步。趁著周末的大好時光,一起來學(xué)習(xí)吧!?
?從工作到現(xiàn)在已經(jīng)五年多的時間了,在工作中發(fā)現(xiàn)了一個代碼神器,有請神器閃亮登場,那就是我們的Simulink。 剛開始用代碼生成功能的時候真是一把鼻涕一把淚呀,搗鼓了一周才弄了個一知半解,網(wǎng)上詳細介紹代碼生成的文章又不多,所以我簡單整理了一下代碼生成的知識,算是個拋磚引玉,希望有C基礎(chǔ)或者想學(xué)代碼編程的人得到些許知識,若是有錯誤的地方還請大家批評指正。 剛剛開始學(xué)代碼生成的時候,看著Simulink生成的代碼簡直就是在看天文,基本上沒有什么可讀性,后來了解了配置規(guī)則后才發(fā)現(xiàn)Simulink真是太強大了。當(dāng)然也不是真想讀C代碼,只是讓代碼看起來更像我們手寫的C代碼一樣。從現(xiàn)在應(yīng)用現(xiàn)狀來看,用的最多的地方是在汽車ECU控制器上,偷偷的告訴你,做嵌入式的程序員們都可以用哦! 為了不增加文章的繁瑣性,基本的Simulink操作我就不再贅述,所以看下面文章得有一定的Simulink的基礎(chǔ)。 下面進入正題,欣賞代碼生成的魅力,先舉個最簡單的例子,看看Simulink生成的代碼什么樣。 首先創(chuàng)建一個Test.slx的文件,里面放上如下所示的一個模型并進行個簡單的設(shè)置如下圖:?
?
至于為什么配置等后續(xù)文章會詳細介紹,請耐心等待。點擊代碼生成按鈕后就生成了報告。下面來簡單看一下生成代碼的效果,其中最關(guān)鍵的是Test.c和Test.h文件,這個是咱們最想要的代碼了,如下圖所示:
從Test.c文件中找到咱們想要實現(xiàn)y=x*3的這個應(yīng)用內(nèi)容:
沃德天,這上面又是結(jié)構(gòu)體,又改名字的,不是我想要的呀,想一下要是咱們用C代碼去實現(xiàn)這個函數(shù)該怎么實現(xiàn),如下所示:
是不是C代碼看起來簡單明了?,F(xiàn)在咱們就一步步配置規(guī)則讓自動生成的代碼和下面手寫的C代碼一致。 第一步,將函數(shù)名字配置成想要的名字,如GetGain3,如下圖步驟:
點擊代碼生成,得到如下:
是不是和咱們平常寫的代碼一致了。所以生成的代碼,一定程度上是可以比擬用C寫的哦! 當(dāng)然會C的人說了,我簡單一句話搞定了,為什么用你的模型去生成代碼。其實模型有這樣幾個好處:
一個是測試方面的比如MIL、SIL、PIL測試方面保證代碼的質(zhì)量;
第二個是其生成的代碼會符合規(guī)范,如MISRA-C 2012等;
第三點就是可讀性,圖形化的界面比一行行的字母的可讀性要好,當(dāng)設(shè)計比較復(fù)雜的系統(tǒng)時,模型的優(yōu)勢就逐漸的顯現(xiàn)出來了。
責(zé)任編輯:YYX
-
Simulink
+關(guān)注
關(guān)注
22文章
536瀏覽量
62455 -
C代碼
+關(guān)注
關(guān)注
1文章
89瀏覽量
14321
原文標(biāo)題:Simulink之嵌入式C代碼生成-前言篇
文章出處:【微信號:QCDZYJ,微信公眾號:汽車電子工程知識體系】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論