<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Simulink的OSEK嵌入式軟件開發(fā)方法

          基于Simulink的OSEK嵌入式軟件開發(fā)方法

          作者: 時間:2009-06-30 來源:網(wǎng)絡(luò) 收藏

          ①mdlInitializeSizes,用于細(xì)化SimStruct結(jié)構(gòu)中不同參數(shù)的維數(shù)(SimStruct是指數(shù)據(jù)結(jié)構(gòu),Sim-Struct及其相關(guān)的宏定義參見Matlab目錄下文件sim-strue.h)。
          ②mdlInitializeSampleTimes,用于細(xì)化該模塊的采樣時間。
          ③mdlOutputs::對輸入設(shè)備來講,從硬件中讀取值加以計算并傳遞到模塊輸出端;對輸出設(shè)備而言,從上流模塊讀取數(shù)據(jù),加以處理并寫回硬件。
          文件block.tlc用來控制代碼生成過程,通過相應(yīng)函數(shù)將語句寫入生成的源文件中,代碼段3是一個例子。文件中使用的函數(shù)主要包括:%function BlockTypeSetup(block,system)void、%function Start(block,system)Output、%function Outputs

          本文引用地址:http://www.ex-cimer.com/article/152446.htm

          4 應(yīng)用實例
          圖5是一個簡單的應(yīng)用。其中建立了兩個任務(wù),任務(wù)ADC_SUM每0.1 S執(zhí)行1次,任務(wù)ADC_GPIO每0.5 S執(zhí)行1次。第一個任務(wù)包含一個ADC S函數(shù)模塊。該S函數(shù)屬輸入設(shè)備,并被封裝成具有圖5所示的參數(shù)輸入界面;第二個任務(wù)包含另外一個S函數(shù)模塊,GPIO,在這個應(yīng)用中為輸出模塊。

          像第二部分描述的一樣,算法可以進行仿真。仿真完成后可通過RTW生成代碼(本文選擇osekworks.tlc為系統(tǒng)TLC文件,并對該文件進行了適當(dāng)修改)。生成的源代碼(包括*.c源文件和*.h頭文件)可以在Keil C166環(huán)境下聯(lián)合編譯并進行軟件調(diào)試運行,如圖6所示,這樣也便于集成傳統(tǒng)手動開發(fā)流程中成熟的算法代碼。最終圖6 Keil C166環(huán)境下編譯帶μo/os―ll的生成源代碼代碼可在目標(biāo)硬件上運行。

          5 結(jié) 論
          目前越來越多的汽車電子系統(tǒng)的開發(fā)借助Matlab/,并且其已變成標(biāo)準(zhǔn)的開發(fā)工具。本文提出的Sireulink環(huán)境和 OS規(guī)范。在環(huán)境下開發(fā)的算法可以結(jié)合 RTOS(本文為修改過的μC/OS-II)直接應(yīng)用到目標(biāo)硬件上。該已通過實例進行了驗證,與傳統(tǒng)比較極大地縮短了開發(fā)時間。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();