Embedded Coder為?MATLAB?Coder?產品擴展了可用于嵌入式軟件開發的功能。您可以生成具有專業人工代碼的清晰度和效率的代碼。例如,您可以:
- 生成緊湊、快速的代碼,這對實時仿真器、目標系統快速原型構建板、大規模生產中使用的微處理器以及嵌入式系統至關重要。
- 自定義生成的代碼的外觀。
- 針對特定于應用的要求對生成的代碼進行優化。
- 啟用追溯選項,幫助您驗證生成的代碼。
Embedded Coder 產品是對?MATLAB Coder?產品的擴展,提供了以下針對 C/C++ 代碼生成的選項和優化。
目的 | 工程設置 | 代碼配置對象屬性 |
控制浮點數據和運算的生成 | 僅支持純整數 | PurelyIntegerCode |
簡化生成的代碼中位于循環內的數組索引 | 簡化數組索引 | EnableStrengthReduction |
替換生成的代碼中的函數和運算符,以滿足應用程序特定的代碼要求 | 自定義代碼選項卡上的代碼替換庫 | CodeReplacementLibrary |
為函數和運算符創建和注冊應用程序特定的實現 | 不適用 | 不適用 |
指定在生成的代碼中使用單行注釋還是多行注釋 | 注釋樣式 | CommentStyle |
包含 MATLAB 源代碼作為具有可追溯性標記的注釋。在代碼生成報告中,可追溯性標記鏈接到對應的 MATLAB 源代碼 | MATLAB 源代碼作為注釋 | MATLABSourceComments |
在函數前注中生成 MATLAB 函數幫助文本 | MATLAB 函數幫助文本 | MATLABFcnDesc |
在生成的代碼中包括注釋,這些注釋包含鏈接到 MATLAB 代碼的需求匯總。在代碼生成報告中,這些注釋是指向需求編輯器中的需求的超鏈接 | 作為注釋的需求匯總 | ReqsInCode |
將 if-elseif-else 模式轉換為 switch-case 語句 | 將 if-elseif-else 模式轉換為 switch-case 語句 | ConvertIfToSwitch |
指定在生成的外部函數的聲明中包含外部關鍵字 | 在函數聲明中保留 extern 關鍵字 | PreserveExternInFcnDecls |
指定生成的代碼中的括號級別 | 圓括號 | ParenthesesLevel |
指定是否在生成的代碼中將二次冪的乘法替換為有符號的左移位 | 使用有符號左移位進行定點運算和 2 次冪的乘法 | EnableSignedLeftShifts |
指定是否允許在生成的代碼中進行有符號右移位 | 允許有符號整數右移 | EnableSignedRightShifts |
控制生成的代碼中的數據類型轉換 | 所有設置選項卡上的強制轉換模式 | CastingMode |
指定生成的代碼的縮進樣式 | 所有設置選項卡上的縮進樣式 | IndentStyle |
指定在生成的代碼中換行符之前的最大列數 | 所有設置選項卡上的列限制 | ColumnLimit |
在生成的代碼中為 MATLAB 數據類型指定自定義名稱 | 啟用自定義數據類型替換 | EnableCustomReplacementTypes |
從外部頭文件導入自定義數據類型定義 | 從外部頭文件導入自定義類型 | IsExtern |
自定義生成的 C/C++ 文件名 | 生成的源文件和頭文件名稱格式 | CustomFileNameStr |
自定義生成的全局變量標識符 | 全局變量 | CustomSymbolStrGlobalVar |
自定義生成的全局類型標識符 | 全局類型 | CustomSymbolStrType |
自定義全局類型標識符中包含的生成字段名稱 | 全局類型的字段名稱 | CustomSymbolStrField |
自定義生成的局部函數標識符 | 局部函數 | CustomSymbolStrFcn |
自定義為本地臨時變量生成的標識符 | 局部臨時變量 | CustomSymbolStrTmpVar |
自定義為常量宏生成的標識符 | 常量宏 | CustomSymbolStrMacro |
自定義為 EMX 數組類型(可嵌入式 mxArray 類型)生成的標識符 | EMX 數組類型 | CustomSymbolStrEMXArray |
自定義為 EMX 數組(可嵌入式 mxArray)工具函數生成的標識符 | EMX 數組工具函數 | CustomSymbolStrEMXArrayFcn |
自定義生成的代碼中的函數接口 | 所有設置選項卡上的需要初始化函數 | IncludeInitializeFcn |
自定義文件前注和函數前注 | 不適用 | CodeTemplate |
控制生成的代碼中全局變量的聲明和定義 | 不適用 | 不適用 |
生成靜態代碼度量報告,其中包括生成的文件信息、行數和內存使用量 | 靜態代碼度量 | GenerateCodeMetricsReport |
生成代碼替換報告,總結從所選代碼替換庫中使用的替換 | 代碼替換 | GenerateCodeReplacementReport |
在代碼生成報告中突出顯示單精度、雙精度和耗費大量資源的定點運算 | 突出顯示潛在的數據類型問題 | HighlightPotentialDataTypeIssues |
替換生成的代碼中的函數和運算符,以滿足應用程序特定的代碼要求 | 代碼替換庫 | CodeReplacementLibrary |
為函數和運算符創建和注冊應用程序特定的實現 | 不適用 | 不適用 |
在 MATLAB 源代碼和生成的 C/C++ 代碼之間交互追溯 | 啟用代碼可追溯性 | EnableTraceability |
通過執行軟件在環和處理器在環仿真驗證生成的代碼 | 不適用 | VerificationMode |
執行軟件在環或處理器在環期間調試代碼 | 調試窗格上的對 SIL 或 PIL 啟用源代碼級別調試 | SILPILDebugging |
在軟件在環和處理器在環執行期間的探查執行時間 | 調試窗格上的對 SIL/PIL 啟用入口函數執行探查 | CodeExecutionProfiling |
驗證和探查 ARM 優化的代碼 | 硬件窗格上的硬件板 | Hardware |
使用集成的工作流對生成的 C/C++ 代碼運行 Polyspace??驗證 | 不適用 | 不適用 |