小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 dudubao821 2019-10-18

Embedded Coder? 生成的代碼需要 MathWorks? 提供的支持文件。要將生成的代碼轉移到另一個開發(fā)環(huán)境(如專用編譯系統(tǒng))中,您必須轉移這些支持文件。您可以使用 packNGo 實用工具將這些文件打包成一個 zip 文件。該實用工具會查找您編譯可執(zhí)行映像文件所需的文件并將這些文件打包。該實用工具使用工具來自定義代碼生成后的編譯過程,其中包括 buildinfo_data 結構體和 packNGo 函數(shù)。這些文件包括您在 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 文件中的文件數(shù)量取決于 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,其中包含一個簡單的主函數(shù),該主函數(shù)只執(zhí)行基本操作來運行代碼。

查看 example_main.c。

文件:

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

  • 包括聲明外部數(shù)據(jù)的文件。

  • 定義 extern 數(shù)據(jù)。

  • 初始化數(shù)據(jù)。

  • 調用仿真硬件。

  • 調用算法函數(shù)。

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

匹配系統(tǒng)接口

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

連接輸入數(shù)據(jù)

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

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

查看 defineImportedData.c

查看 rtwdemo_PCG_Eval_P5_Private.h。

連接輸出數(shù)據(jù)

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

查看 rtwdemo_PCG_Eval_P5.h。

訪問其他數(shù)據(jù)

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

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

  • 局部參數(shù)

  • 時間

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

Data Type      Data Name     Data Purpose
Constants      |model_cP|    Constant parameters
Constants      |model_cB|    Constant block I/O
Output         |model_U|     Root and atomic subsystem input
Output         |model_Y|     Root and atomic subsystem output
Internal data  |model_B|     Value of block output
Internal data  |model_D|     State information vectors
Internal data  |model_M|     Time and other system level data
Internal data  |model_Zero|  Zero-crossings
Parameters     |model_P|     Parameters

匹配函數(shù)調用接口

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

調用函數(shù) PI_Cntrl_Reusable 需要混合使用單獨的、非結構化的全局變量和 Simulink? Coder? 數(shù)據(jù)結構體。這些變量由人工代碼定義。結構體類型在 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.c、ert_main.crt_logging.c,它們由 example_main.c 替換。

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

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

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多