?找回密码
?立即注册
搜索
查看: 216|什么软件下载可以领现金红包: 1
打印 上一主题 下一主题

使用Matlab+Simulink开发Cortex-M系列嵌入式处理器应用程序

[复制链接]

238

主题

325

帖子

4652

积分

论坛元老

Rank: 8Rank: 8

积分
4652
跳转到指定楼层
1#
发表于 2019-3-11 03:34 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2017年05月07日 20:55:19 zhu210 阅读数:5671





使用Matlab+Simulink开发Cortex-M系列嵌入式处理器应用程序

文档编号

TN_AAAA_A0

关键字

Matlab, Simulink, Cortex-M, 基于模型设计, Model-Based-Design

摘要

本技术笔记对使用Matlab+Simulink开发Cortex-M系列嵌入式处理器应用程序进行说明



Mars4zhu

目 录

1 总述 1

2 ARM Cortex-M处理器的Ecoder支持包学习 1

2.1 ARM Cortex-M处理器的Ecoder支持包范例学习 1

2.1.1 arm_cortex_m_gettingstarted范例学习 1

2.1.2 arm_cortex_m_pil_block范例学习 3

2.1.3 arm_cortex_m_model_pil_block范例学习 4

2.1.4 arm_cortex_m_top_model_pil范例学习 4

2.2 ECoder的ARM Cortex-M处理器Simulink模型库 5

2.2.1 TODO: Hardware Interrupt的模型模块的使用。 5

2.3 开发一个目标处理器/目标开发板 5

3 ARM Cortex-M处理器的DSP System Toolbox支持包学习 6

3.1 TODO 6

4 版本历史(Revision History) 7

插图索引

图 11 安装好的Matlab的嵌入式处理器支持包 1

图 21? ?arm_cortex_m_gettingstarted范例的模型、设置、编译和运行 2

图 22? ?arm_cortex_m_pil_block范例模型的PIL子系统编译与复制 3

图 23? ?arm_cortex_m_pil_block范例模型编译与运行 3

图 24? ?arm_cortex_m_model_pil_block范例模型编译与运行 4

图 25??arm_cortex_m_top_model_pil范例模型编译与运行 5

图 26??arm_cortex_m_top_model_pil范例运行后生成的wrapper封装和代码覆盖运行结果 5

图 27? ?ecoder for arm_cortex_m 的Simulink模型库 5

表格索引

错误!未找到目录项。

1 总述

Matlab为嵌入式处理器应用程序的开发提供了强大的功能,包括Embedded Coder代码生成、Simulink模型转换,Processor-In-the-Loop(PIL)处理器闭环开发等。同时提供了硬件支持包Embedded Coder Support Package for ARM Cortex-M Processors以及DSP System Toolbox Support Package for ARM Cortex-M Processors,并根据流行的开发板提供了对STM32-Discovery、FRDM-K64F以及QEMU模拟器等的硬件支持包。

11 安装好的Matlab的嵌入式处理器支持包

本文主要通过Matlab相应的支持包提供的范例,学习基于Matlab+Simulink开发Cortex-M系列嵌入式处理器的应用程序的开发流程,记录学习笔记

2 ARM Cortex-M处理器的Ecoder支持包学习

Embedded Coder Support Package for ARM Cortex-M Processors提供了多个范例来演示学习如何使用Matlab+Simulink来开发ARM Cortex-M嵌入式处理器的应用程序。

2.1 ARM Cortex-M处理器的Ecoder支持包范例学习2.1.1 arm_cortex_m_gettingstarted范例学习

该范例建立一个最简单的Simulink模型,然后完成针对ARM Cortex-M处理器开发的设置,生成代码,最后运行在QEMU模拟器中。

使用Simulink打开arm_cortex_m_gettingstarted范例,设置后编译并运行。

21??arm_cortex_m_gettingstarted范例的模型、设置、编译和运行






238

主题

325

帖子

4652

积分

论坛元老

Rank: 8Rank: 8

积分
4652
2#
?楼主| 发表于 2019-3-11 03:35 PM | 只看该作者
模型生成的代码如下:

/* Model step function */

void arm_cortex_m_gettingstarted_step(void)

{

/* Outport: '/Out1' incorporates:

? ?*??Constant: '/Constant'

? ?*??Gain: '/Gain'

? ?*/

??arm_cortex_m_gettingstarted_Y.Out1 = arm_cortex_m_gettingstarted_P.Gain_Gain *

? ? arm_cortex_m_gettingstarted_P.Constant_Value;

}

/* Model initialize function */

void arm_cortex_m_gettingstarted_initialize(void)

{

/* Registration code */

/* initialize error status */

??rtmSetErrorStatus(arm_cortex_m_gettingstarted_M, (NULL));

/* external outputs */

??arm_cortex_m_gettingstarted_Y.Out1 = 0.0;

}

/* Model terminate function */

void arm_cortex_m_gettingstarted_terminate(void)

{

/* (no terminate code required) */

}

停止使用QEMU仿真运行Matlab模型命令为:codertarget.arm_cortex_m.stopQemu

2.1.2 arm_cortex_m_pil_block范例学习
arm_cortex_m_pil_block范例模型演示了如何使用PIL,即通过PC软件仿真和硬件处理器仿真进行两者的闭环控制,可以直接对比PC仿真与硬件处理器仿真的差别。

该范例首先需要编译PIL子系统,并将编译后的生成的PIL模块复制到原模型中然后进行PIL仿真。



图 22??arm_cortex_m_pil_block范例模型的PIL子系统编译与复制




图 23??arm_cortex_m_pil_block范例模型编译与运行

从图中可以看出PC仿真和PIL仿真的数值误差为0,说明了PIL仿真的正确性。

2.1.3 arm_cortex_m_model_pil_block范例学习
arm_cortex_m_model_pil_block范例使用单个模块的子系统设置为PIL方式并分别运行仿真的方式,无需额外生成PIL模块并复制。



图 24??arm_cortex_m_model_pil_block范例模型编译与运行

2.1.4 arm_cortex_m_top_model_pil范例学习
arm_cortex_m_top_model_pil范例演示了在顶层模型中设置PIL仿真模式的方式。该仿真方式将整个模型生成一个wrapper封装并编译运行。



图 25 arm_cortex_m_top_model_pil范例模型编译与运行



图 26 arm_cortex_m_top_model_pil范例运行后生成的wrapper封装和代码覆盖运行结果
---------------------
作者:zhu210
来源:CSDN
原文:https://blog.csdn.net/zhu210/article/details/71373364
版权声明:本文为博主原创文章,转载请附上博文链接!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|众创论坛

GMT+8, 2019-9-29 02:45 PM , Processed in 0.121329 second(s), 18 queries .

Powered by Discuz! X3.4

? 2001-2013 Comsenz Inc.

快速什么软件下载可以领现金红包 返回顶部 返回列表