《基於模型的設計及其嵌入式實現(第2版)》以基於模型的設計為主綫,講述瞭M 代碼的快速編寫與調試,用戶界麵的創建,浮點Simulink/Stateflow模型的建立、調試與驗證,用戶自定義模塊的生成;詳細介紹瞭基於模型設計的全過程,主要有需求分析與跟蹤、模型的檢查與設計驗證、浮點模型到定點模型的轉換、模型嵌入式C代碼的自動生成、軟件/處理器/硬件在環測試,整個過程滿足DO 178B航空電子規範,可顯著提高工作效率、降低開發成本,並且增強瞭代碼的安全性與魯棒性,避免瞭産品開發的潛在市場風險。
本書可作為汽車電子、航天軍工、通信與電子信息、電力等領域的工程師從事嵌入式開發的技術手冊,也可作為高校電類專業嵌入式係統開發與基於模型設計的教材,還可作為學習MATLAB Simulink/Stateflow的參考書。
第1章 搭建軟件開發環境…………………………………………………………… 1
1.1 下載與安裝所需的軟件……………………………………………………… 1
1.1.1 下載開發軟件包………………………………………………………… 1
1.1.2 安裝開發軟件包………………………………………………………… 1
1.1.3 安裝更新………………………………………………………………… 4
1.2 創建一個包含DSP/BIOS的C6000DSP工程……………………………… 5
1.3 設置MATLABR2015b與CCS5.11數據鏈配置……………………… 14
1.3.1 checkEnvSetup()……………………………………………………… 14
1.3.2 xmakefilesetup ………………………………………………………… 16
1.4 有關MATLABR2015b與CCS3.3的配置問題………………………… 18
第2章 MATLAB高級應用基礎…………………………………………………… 19
2.1 MATLAB的功能簡介……………………………………………………… 20
2.1.1 函數瀏覽器……………………………………………………………… 20
2.1.2 函數提示………………………………………………………………… 21
2.1.3 目錄瀏覽器……………………………………………………………… 22
2.1.4 文件交換服務…………………………………………………………… 24
2.2 M 文件……………………………………………………………………… 26
2.2.1 M 文件結構…………………………………………………………… 26
2.2.2 清理程序………………………………………………………………… 28
2.2.3 創建M 文件…………………………………………………………… 29
2.2.4 M 腳本文件…………………………………………………………… 29
2.2.5 M 函數………………………………………………………………… 30
2.2.6 匿名函數………………………………………………………………… 34
2.3 加快M 文件的編寫………………………………………………………… 36
2.3.1 什麼是代碼檢查器……………………………………………………… 36
2.3.2 代碼檢查器的使用方法………………………………………………… 36
2.3.3 代碼檢查器實例………………………………………………………… 36
2.4 加快M 文件的調試———cell ……………………………………………… 40
2.4.1 什麼是cell……………………………………………………………… 40
2.4.2 cell的定義與刪除……………………………………………………… 40
2.4.3 cell調試實例…………………………………………………………… 42
2.4.4 應 用…………………………………………………………………… 44
2.5 數據存取……………………………………………………………………… 47
2.5.1 生成MAT文件………………………………………………………… 47
2.5.2 加載MAT文件………………………………………………………… 49
2.5.3 讀/寫音視頻文件……………………………………………………… 50
2.6 代碼效率分析………………………………………………………………… 53
2.7 MATLABCoder簡介……………………………………………………… 55
2.7.1 MATLABCoder支持/不支持生成C代碼的類型………………… 56
2.7.2 MATLABCoder的使用要求………………………………………… 57
2.7.3 EmbeddedCoder的常用命令………………………………………… 57
2.7.4 C編譯器的設置………………………………………………………… 58
2.7.5 應用實例………………………………………………………………… 59
第3章 圖形用戶界麵簡介………………………………………………………… 72
3.1 GUIDE簡介………………………………………………………………… 72
3.1.1 GUIDE界麵簡介……………………………………………………… 72
3.1.2 獲取當前圖形對象句柄的常用函數…………………………………… 75
3.1.3 Callback函數…………………………………………………………… 76
3.2 基於GUIDE工具的實例…………………………………………………… 76
3.2.1 讀取圖像的GUI實例………………………………………………… 76
3.2.2 製作及發布簡易計算器………………………………………………… 94
第4章 Stateflow 原理與建模基礎……………………………………………… 106
4.1 Stateflow概述……………………………………………………………… 107
4.1.1 狀 態………………………………………………………………… 111
4.1.2 遷 移………………………………………………………………… 114
4.1.3 事 件………………………………………………………………… 118
4.1.4 數據對象……………………………………………………………… 120
4.1.5 條件與動作…………………………………………………………… 122
4.1.6 節 點………………………………………………………………… 122
4.2 流程圖……………………………………………………………………… 128
4.2.1 手動建立流程圖……………………………………………………… 128
4.2.2 快速建立流程圖……………………………………………………… 131
4.2.3 車速控製……………………………………………………………… 132
4.3 狀態圖的層次……………………………………………………………… 136
4.3.1 曆史節點……………………………………………………………… 138
4.3.2 遷移的層次性………………………………………………………… 139
4.3.3 內部遷移……………………………………………………………… 140
4.4 並行機製…………………………………………………………………… 143
4.4.1 廣 播………………………………………………………………… 143
4.4.2 隱含事件……………………………………………………………… 149
4.4.3 時間邏輯事件………………………………………………………… 150
4.5 其他的圖形對象…………………………………………………………… 152
4.5.1 真值錶………………………………………………………………… 152
4.5.2 圖形盒………………………………………………………………… 155
4.5.3 圖形函數……………………………………………………………… 156
4.6 MATLAB函數…………………………………………………………… 157
4.6.1 建立調用MATLAB函數的Simulink模型………………………… 157
4.6.2 編寫MATLAB函數………………………………………………… 159
4.6.3 調 試………………………………………………………………… 160
4.7 Simulink函數……………………………………………………………… 163
4.7.1 Simulink函數的使用………………………………………………… 163
4.7.2 使用Simulink函數需遵循的規則…………………………………… 169
4.8 集成自定義代碼…………………………………………………………… 170
4.9 Stateflow建模實例———計時器…………………………………………… 174
第5章 Simulink建模與驗證……………………………………………………… 184
5.1 Simulink的基本操作……………………………………………………… 185
5.1.1 啓動Simulink ………………………………………………………… 185
5.1.2 Simulink模塊庫簡介………………………………………………… 186
5.1.3 模塊操作……………………………………………………………… 188
5.2 信號采樣誤差……………………………………………………………… 193
5.2.1 信號源………………………………………………………………… 193
5.2.2 MATLAB工作空間………………………………………………… 198
5.2.3 用戶自定義函數……………………………………………………… 202
5.2.4 非綫性係統…………………………………………………………… 204
5.2.5 離散模塊……………………………………………………………… 207
5.2.6 采樣誤差……………………………………………………………… 209
5.2.7 建立子係統…………………………………………………………… 211
5.2.8 封裝子係統…………………………………………………………… 212
5.2.9 數據類型匹配………………………………………………………… 215
5.2.10 模型信息……………………………………………………………… 218
5.2.11 模型元件化…………………………………………………………… 221
5.2.12 自定義模塊庫………………………………………………………… 222
5.3 音頻信號處理……………………………………………………………… 224
5.3.1 仿真環境……………………………………………………………… 224
5.3.2 基於采樣的模型……………………………………………………… 225
5.3.3 幀結構………………………………………………………………… 228
5.3.4 基於幀結構的模型…………………………………………………… 228
5.3.5 信號緩衝器…………………………………………………………… 230
5.4 視頻監控…………………………………………………………………… 232
5.4.1 原 理………………………………………………………………… 233
5.4.2 SAD子係統…………………………………………………………… 233
5.4.3 閾值比較……………………………………………………………… 234
5.4.4 視頻記錄子係統……………………………………………………… 235
5.4.5 源視頻幀計數及顯示………………………………………………… 236
5.4.6 數據讀取與顯示……………………………………………………… 237
5.4.7 實驗結果……………………………………………………………… 239
5.5 模型調試…………………………………………………………………… 241
5.5.1 圖形調試模式………………………………………………………… 241
5.5.2 命令行調試模式……………………………………………………… 244
5.5.3 調試過程……………………………………………………………… 245
5.5.4 斷點設置……………………………………………………………… 249
5.5.5 顯示仿真及模型信息………………………………………………… 253
5.6 模型檢查與驗證…………………………………………………………… 260
5.6.1 使用係統檢查器———ModelAdvisor檢查模型…………………… 260
5.6.2 建立測試用例………………………………………………………… 269
5.6.3 模型覆蓋度分析……………………………………………………… 279
5.6.4 模型效率分析………………………………………………………… 285
第6章 用戶驅動模塊的創建……………………………………………………… 289
6.1 什麼是S-Function ………………………………………………………… 289
6.1.1 S-Function的工作機製……………………………………………… 291
6.1.2 函數迴調方法………………………………………………………… 292
6.1.3 編寫C MEXS-Function …………………………………………… 295
6.1.4 Simulink引擎與CS-Function的相互作用………………………… 300
6.1.5 TLC文件……………………………………………………………… 309
6.1.6 LEVEL 2M 文件S-Function介紹……………………………… 313
6.1.7 調用仿真模型外部的C代碼和生成代碼…………………………… 324
6.2 S-FunctionBuilder………………………………………………………… 327
6.2.1 S-Function名及參數名……………………………………………… 328
6.2.2 初始化………………………………………………………………… 329
6.2.3 數據屬性……………………………………………………………… 329
6.2.4 庫文件………………………………………………………………… 332
6.2.5 輸 齣………………………………………………………………… 333
6.2.6 連續狀態求導………………………………………………………… 336
6.2.7 離散狀態更新………………………………………………………… 337
6.2.8 編譯信息……………………………………………………………… 338
6.2.9 應 用………………………………………………………………… 340
6.3 MATLABFunction模塊………………………………………………… 342
6.3.1 MATLABFunction模塊的生成方法……………………………… 343
6.3.2 集成用戶自定義的C代碼…………………………………………… 347
6.4 實 例……………………………………………………………………… 348
6.4.1 IIR濾波器…………………………………………………………… 348
6.4.2 S-Function的參數設置與封裝……………………………………… 351
6.4.3 讀取數據文件………………………………………………………… 357
第7章 嵌入式代碼的快速生成…………………………………………………… 362
7.1 利用EmbeddedCoder生成DSP目標代碼……………………………… 362
7.2 CCS5/6與MATLABR2015b的數據鏈配置…………………………… 364
7.3 TIDSP原裝闆的實時代碼生成………………………………………… 368
7.4 代碼驗證…………………………………………………………………… 375
7.5 TIC6416DSK目標闆應用例程………………………………………… 380
7.6 用戶自定義目標闆的應用………………………………………………… 401
第8章 基於模型的設計…………………………………………………………… 406
8.1 傳統設計過程與基於模型設計過程的對比……………………………… 407
8.2 DO 178B標準簡介……………………………………………………… 409
8.2.1 什麼是DO 178B標準……………………………………………… 409
8.2.2 DO 178B標準驗證要求…………………………………………… 410
8.2.3 DO 178B軟件生命周期…………………………………………… 411
8.3 基於模型設計的工作流程………………………………………………… 412
8.4 需求分析及跟蹤…………………………………………………………… 417
8.4.1 根據需求建立係統模型……………………………………………… 417
8.4.2 建立需求與模塊間的關聯…………………………………………… 418
8.4.3 一緻性檢查…………………………………………………………… 421
8.5 模型檢查及驗證…………………………………………………………… 423
8.5.1 ModelAdvisor檢查………………………………………………… 423
8.5.2 SystemTest …………………………………………………………… 424
8.5.3 DesignVerifier ……………………………………………………… 433
8.6 定點模型…………………………………………………………………… 439
8.7 軟件在環測試……………………………………………………………… 447
8.8 處理器在環測試…………………………………………………………… 448
8.9 代碼跟蹤…………………………………………………………………… 449
8.10 硬件模型…………………………………………………………………… 453
8.10.1 建立硬件模型………………………………………………………… 453
8.10.2 模塊設置……………………………………………………………… 454
8.11 代碼優化及代碼生成……………………………………………………… 457
8.11.1 子係統原子化………………………………………………………… 457
8.11.2 優化模塊庫…………………………………………………………… 460
8.11.3 指定芯片……………………………………………………………… 461
8.11.4 代碼檢查……………………………………………………………… 462
8.11.5 IDE環境下的代碼優化……………………………………………… 464
8.11.6 工程選項及代碼生成………………………………………………… 465
8.12 代碼有效性檢查原理……………………………………………………… 469
8.13 硬件在環測試……………………………………………………………… 472
8.13.1 建立PC端模型……………………………………………………… 472
8.13.2 模塊參數設置………………………………………………………… 473
8.13.3 實施硬件在環測試…………………………………………………… 476
8.13.4 代碼效率剖析………………………………………………………… 477
8.13.5 內存使用分析………………………………………………………… 478
參考文獻……………………………………………………………………………… 480
這本《基於模型的設計及其嵌入式實現(第2版)》確實是當前工程領域,特彆是涉及到復雜係統開發人員的案頭必備書。我當初購入它,是衝著它在理論與實踐之間架起的堅實橋梁去的。這本書最讓我印象深刻的是它對整個開發流程的係統性梳理,從需求捕獲到最終硬件部署,它提供瞭一套完整的、可追溯的、且高度自動化的工作流。它摒棄瞭傳統那種“編碼-調試-再編碼”的低效循環,而是將重點放在瞭係統行為的早期驗證和優化上。例如,書中對於Simulink和Stateflow等工具的深入剖析,不僅僅是教你如何操作按鈕,更是闡述瞭背後的數學原理和狀態機設計範式,這對於理解“為什麼”比“怎麼做”更為重要。我特彆欣賞它在模型抽象層次上的處理能力,能夠讓係統架構師在高層關注係統功能,而將底層代碼生成的細節交給工具鏈,極大地提升瞭開發效率和減少瞭人工引入錯誤的概率。這種自上而下的設計哲學,在麵對日益復雜的汽車電子、航空航天控製係統時,顯得尤為珍貴和實用。它不僅是一本工具手冊,更是一部指導工程思維轉變的教科書。
評分這本書在處理實時性要求和並發性問題時展現齣瞭極高的專業水準。在嵌入式領域,時間窗口的嚴格性是生死攸關的。書中對任務調度、資源競爭以及如何通過模型來直觀地錶達這些時序約束的描述,非常到位。它沒有僅僅停留在抽象的調度理論層麵,而是深入到如何通過模型來模擬和分析不同采樣率任務之間的交互延遲和抖動(Jitter)。我尤其喜歡它對“假實時”和“硬實時”係統在模型構建差異上的區分。通過對狀態圖和事件驅動建模的精妙運用,我們可以清晰地看到,哪些地方會導緻非預期的阻塞或死鎖,甚至能夠在仿真環境中重現那些在真實硬件上極難捕捉的偶發性錯誤。這種“在沙盤上解決問題”的能力,極大地降低瞭硬件調試的成本和風險。對於任何需要保證係統響應時間確定性的工程師來說,這本書在實時係統建模這一塊的論述,絕對是教科書級彆的參考資料。
評分說實話,我一開始對“基於模型的設計”這種方法論抱持著一絲懷疑態度,總覺得最終生成的代碼效率肯定不如純手工優化的C代碼。然而,這本書在闡述工具鏈的底層優化能力時,徹底扭轉瞭我的看法。它詳盡地展示瞭如何利用成熟的工具鏈(比如TargetLink或相關代碼生成器)來生成符閤MISRA C規範的高可靠性代碼,並且能夠針對特定的硬件架構進行定製化優化,這一點是普通工程師手工編寫代碼很難達到的深度和廣度。書中關於固定點運算和浮點數映射的章節尤其精彩,它用嚴謹的例子說明瞭如何在精度要求極高且資源受限的微控製器上,安全、高效地實現復雜的控製算法。這對於我們正在進行的老舊係統升級項目至關重要,因為我們必須確保新模型的性能不低於原有的匯編級優化代碼。它教會我的不是如何寫更快的代碼,而是如何讓工具生成“足夠快且絕對正確”的代碼,並將工程師從繁瑣的細節中解放齣來,專注於模型本身的邏輯驗證。這種思維的升級,纔是這本書最大的價值所在。
評分我對這本書中關於模型驗證和確認(Verification and Validation, V&V)部分的討論印象尤為深刻。過去,V&V往往是嵌入式開發後期最耗時、最痛苦的環節,通常依賴於大量的硬件在環(HIL)測試。而這本書強調瞭“在環外”(Off-line)的強大驗證能力。它細緻地介紹瞭如何構建強大的、高覆蓋率的測試場景,包括邊界條件、異常輸入以及故障注入,並將其完全嵌入到模型環境中進行自動化執行。書中關於參數掃描和敏感性分析的章節,為我們理解模型魯棒性提供瞭新的視角。我們不再需要等到硬件齣來纔能發現某個設計參數的微小變化會導緻係統失穩。通過在仿真階段就對模型進行“壓力測試”,我們可以提前識彆設計中的薄弱環節,並進行主動優化。這是一種從被動應對錯誤到主動預防錯誤的轉變,它本質上提升瞭整個産品的質量基綫,讓最終交付的産品更加健壯和可靠。
評分從技術文檔的角度來看,這本書的組織結構清晰得令人贊嘆,但其內容的深度又遠超一般的使用手冊。我發現它在處理模型文檔化和可追溯性方麵提供的解決方案非常實用。在很多工業項目中,需求變更是傢常便飯,如何證明生成的代碼確實滿足瞭最初的需求規格,是審計和閤規性的核心難題。這本書詳細介紹瞭如何將需求直接鏈接到模型中的特定模塊或測試用例上,實現端到端的全生命周期追溯。這不僅僅是一個流程上的優化,更是對工程嚴謹性的一種承諾。我個人嘗試著在我的團隊中推行這種雙嚮鏈接的文檔策略,效果立竿見影,大大減少瞭後期版本迭代時的溝通成本和遺漏風險。它不僅僅是告訴你“應該”這麼做,而是提供瞭“如何”實現這一目標的可操作性框架,並且提供瞭大量的案例來佐證這種方法的有效性,這使得學習麯綫雖然陡峭,但每一步的攀登都充滿瞭收獲感。
評分書很好,隻是買瞭這麼久沒怎麼看。沒起到買的作用啊。
評分第一頁有點開膠,懶得換瞭。
評分書很好,隻是買瞭這麼久沒怎麼看。沒起到買的作用啊。
評分書很好,隻是買瞭這麼久沒怎麼看。沒起到買的作用啊。
評分書不錯,隻是沒怎麼看
評分書很不錯,就是和其他幾本略有重閤的地方
評分東西很不錯,物流小哥辛苦瞭
評分書很不錯,就是和其他幾本略有重閤的地方
評分書很好,隻是買瞭這麼久沒怎麼看。沒起到買的作用啊。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有