九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
在 Simulink 環(huán)境之外編譯集成的代碼

Embedded Coder? 生成的代碼需要 MathWorks? 提供的支持文件。要將生成的代碼轉移到另一個開發(fā)環(huán)境(如專用編譯系統(tǒng))中,您必須轉移這些支持文件。您可以使用 packNGo 實用工具將這些文件打包成一個 zip 文件。該實用工具會查找您編譯可執(zhí)行映像文件所需的文件并將這些文件打包。該實用工具使用工具來自定義代碼生成后的編譯過程,其中包括 buildinfo_data 結構體和 packNGo 函數。這些文件包括您在 Model Configuration Parameters 對話框的 Code Generation > Custom Code 窗格中標識的外部文件。該實用工具將 buildinfo MAT 文件保存在 model_ert_rtw 文件夾中。

打開示例模型 rtwdemo_PCG_Eval_P5。

該模型配置為在代碼生成后運行 packNGo。

從整個模型生成代碼。

要手動生成 zip 文件,請執(zhí)行下列操作:

  1. 加載文件 buildInfo.mat(位于 rtwdemo_PCG_Eval_P5_ert_rtw 子文件夾中)。

  2. 在命令提示符下,輸入命令 packNGo(buildInfo)。

zip 文件中的文件數量取決于 Embedded Coder? 的版本以及您使用的模型的配置。編譯器可能需要 zip 文件中的部分文件。編譯的可執(zhí)行文件的大小 (RAM/ROM) 取決于鏈接過程。鏈接器很可能只包含必要的目標文件。

將生成的代碼集成到現(xiàn)有系統(tǒng)中

此示例說明如何將生成的代碼集成到現(xiàn)有代碼庫中。該示例使用 Eclipse? IDE 和 Cygwin?/gcc 編譯器。所需的集成任務對于集成環(huán)境是通用的。

集成環(huán)境概述

完整的嵌入式控制系統(tǒng)由多個硬件和軟件組件組成??刂扑惴ㄖ皇且环N類型的組件。其他組件可以是:

  • 操作系統(tǒng) (OS)

  • 調度層

  • 物理硬件 I/O

  • 低級硬件設備驅動程序

通常,您不會在這些組件中使用生成的代碼。但是,生成的代碼包含用于連接這些組件的接口。MathWorks? 為許多常見的嵌入式控制器提供了硬件接口模塊庫。有關示例,請參閱 Embedded Targets 模塊庫。

此示例提供了說明如何編譯完整系統(tǒng)的文件。主文件是 example_main.c,其中包含一個簡單的主函數,該主函數只執(zhí)行基本操作來運行代碼。

查看 example_main.c。

文件:

  • 定義函數接口(函數原型)。

  • 包括聲明外部數據的文件。

  • 定義 extern 數據。

  • 初始化數據。

  • 調用仿真硬件。

  • 調用算法函數。

函數執(zhí)行順序與測試框架模型中和 rtwdemo_PCG_Eval_P5.h 中的子系統(tǒng)執(zhí)行順序相匹配。如果在 example_main.c 中更改執(zhí)行順序,可執(zhí)行映像文件產生的結果會與仿真結果不同。

匹配系統(tǒng)接口

要進行集成,需要對生成的代碼和現(xiàn)有系統(tǒng)代碼的數據函數接口進行匹配。在此示例中,example_main.c 文件通過 #include 語句和 extern 聲明導入和導出數據。該文件還從生成的代碼中調用函數。

連接輸入數據

系統(tǒng)有三個輸入信號:pos_rqst、fbk_1fbk_2。生成的代碼通過直接引用導入的全局變量(存儲類 ImportedExtern)訪問兩個反饋信號。代碼通過導入的指針(存儲類 ImportedExternPointer)訪問位置信號。

人工文件 defineImportedData.c 定義變量和指針。生成的代碼不定義變量和指針,因為它們由人工代碼定義。但是,生成的代碼在文件 rtwdemo_PCG_Eval_P5_Private.h 中聲明導入的數據 (extern)。在實際系統(tǒng)中,數據通常來自其他軟件組件或硬件設備。

查看 defineImportedData.c。

查看 rtwdemo_PCG_Eval_P5_Private.h。

連接輸出數據

在此示例中,您不需要直接訪問系統(tǒng)的輸出數據。示例 測試生成的代碼 顯示如何將輸出數據保存到一個標準的日志文件。您可以通過引用文件 rtwdemo_PCG_Eval_P5.h 來訪問輸出數據。

查看 rtwdemo_PCG_Eval_P5.h

訪問其他數據

生成的代碼包含存儲常用數據的幾個結構體,這些數據包括:

  • 模塊狀態(tài)值(積分器、傳遞函數)

  • 局部參數

  • 時間

下表列出了常用數據結構體。根據模型的配置,生成的代碼中將顯示這些結構體的某種組合。數據在文件 rtwdemo_PCG_Eval_P5.h 中進行聲明,但在此示例中,您不會訪問這些數據。

Data Type      Data Name     Data Purpose
Constants      |model_cP|    Constant parametersConstants      |model_cB|    Constant block I/OOutput         |model_U|     Root and atomic subsystem inputOutput         |model_Y|     Root and atomic subsystem outputInternal data  |model_B|     Value of block outputInternal data  |model_D|     State information vectorsInternal data  |model_M|     Time and other system level dataInternal data  |model_Zero|  Zero-crossingsParameters     |model_P|     Parameters

匹配函數調用接口

默認情況下,代碼生成器生成的函數有一個 void Func(void) 接口。如果將模型或原子子系統(tǒng)配置為生成可重入代碼,則代碼生成器會創(chuàng)建更復雜的函數原型。在本示例中,example_main 函數使用有效的輸入參數調用生成的函數。

調用函數 PI_Cntrl_Reusable 需要混合使用單獨的、非結構化的全局變量和 Simulink? Coder? 數據結構體。這些變量由人工代碼定義。結構體類型在 rtwdemo_PCG_Eval_P5.h 中定義。

在 Eclipse? 環(huán)境中編譯工程

本示例使用 Eclipse? IDE 和 Cygwin? GCC 調試器編譯嵌入式系統(tǒng)。示例提供了針對這兩個程序的安裝文件。軟件組件和版本號為:

  • Eclipse? SDK 3.2

  • Eclipse? CDT 3.3

  • Cygwin?/GCC 3.4.4-1

  • Cygwin?/GDB 20060706-2

要安裝和使用 Eclipse? 及 GCC,請參閱 安裝和使用 Cygwin 及 Eclipse。

您可以通過點擊以下超鏈接為此示例安裝文件:

設置編譯文件夾。

或者,通過執(zhí)行下列操作手動安裝文件:

  1. 創(chuàng)建編譯文件夾 (Eclipse_Build_P5)。

  2. 將文件 rtwdemo_PCG_Eval_P5.zip 解壓縮到編譯文件夾中。

  3. 刪除文件 rtwdemo_PCG_Eval_P5.cert_main.crt_logging.c,它們由 example_main.c 替換。

您可以使用 Eclipse? 調試器來詳細了解和評估生成的 C 代碼的執(zhí)行行為。請參閱示例 安裝和使用 Cygwin 及 Eclipse。

要使用輸入數據運行模型,請參閱 測試生成的代碼。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
史上最全系列之開發(fā)環(huán)境搭建之NDK
Android上使用OpenCL調用GPU加速|GPU世界論壇
萬字長文丨大白話帶你由淺入深Python編程語言
C 語言簡單編程速成
編寫零漏洞代碼所需的編碼準則
精通 Groovy
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服