![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2837x
Quikk
这个作者很懒,什么都没留下…
展开
-
2837xd 代码生成——总结篇
2837xd 代码生成——总结篇1 代码生成的产生2 代码生成流程3 代码生成的一点补充 代码生成是一个很庞大的体制,花了好久大致理清楚了调理。本文也会就之前没有提到的Simulink Coder进行实测解释用法。1 代码生成的产生 代码生成技术的产生是近年来,不断流行的MBD(model basic design)进行催生演化出来的重要的环节。目前越来越多的算法需要通过CAE进行分析,然后开发产品。如何能够快速将设计的model转变成产品成为了软件工程师攻克的主要方向之一,如果能够从模型直接生成代码原创 2020-08-07 11:36:14 · 1551 阅读 · 1 评论 -
2837xd 代码生成——补充(3)
2837xd 代码生成——补充(3)6 自定义驱动模块7 创建库文件8 模型脚本化配置总结6 自定义驱动模块利用S-Function可以快速的生成自定义的模块,下面进行基本的概述:1)编制以下的m脚本:%结构体初始化def= legacy_code('initialize');%.c和.h文件路径def.IncPaths={'I:\matla_HIL\Mangerfz'};def.SrcPaths={'I:\matla_HIL\Mangerfz'};%驱动源代码及头文件def.Sou原创 2020-08-06 09:06:17 · 1897 阅读 · 1 评论 -
2837xd 代码生成——补充(2)
2837xd 代码生成——补充(2)5 基于模型的代码生成基本流程(MDB)5.1 编译流程5.1.1 TLC语言5.2 系统默认ert.tlc生成代码结构5.3 优化代码生成5.4 不同的Storage Class 生成区别5.5 数据类型别名5.6 实例(Clark变换)5.7 带有预处理的C代码生成5.8 枚举变量类型创建5 基于模型的代码生成基本流程(MDB)首先搭建如下的Simulink模型:因为代码生成一般只支持离散定步长,所以解析器需要进行相应的设置。其基本设置过程都与之前所述的设置原创 2020-08-05 09:55:44 · 1080 阅读 · 0 评论 -
2837xd 代码生成——补充(1)
2837xd 代码生成——补充(1)1 代码生成补充2 Matlab-Coder代码生成3 Simulink Function代码生成4 模型的快速测试1 代码生成补充 GPIODATA读取,需要利用Memory Copy模块: 在TI官方手册中,GPIO被分为A-F六组,每组对应关系分别如下:端口管脚备注PortAGPIO0 ---- GPIO31PortBGPIO32---- GPIO63PortCGPIO64 ---- GPIO95Por原创 2020-08-04 12:04:24 · 945 阅读 · 0 评论 -
2837xd 代码生成——StateFlow(4)
2837xd 代码生成——StateFlow(4)16 Chart调试16.1 设置断点类型:16.2 断点管理:17 Watch Data18 调用Work Space变量19 StateFlow 调用c代码20 2837d使用Chart进行构建模型搭建实例16 Chart调试 在Animation中可以进行设置调试过程的转移速度。16.1 设置断点类型:1)chart只能打上进入时的断点:打上断点后,左下角会有相应的标识。2)State打断点,有三种类型:I、进入State II原创 2020-07-31 17:18:04 · 1231 阅读 · 0 评论 -
2837xd 代码生成——StateFlow(3)
2837xd 代码生成——StateFlow(3)11 True Table12 复数的使用13 输出size改变的数据14 隐式事件15 结构体操作11 True Table 在Chart中加入True Table模型。然后在真值表中进行加入相应的元素:真值表分为条件表和动作表,如条件表D1所示意思为,当shift==1时,执行动作1。而D3所示为只要shift不为1或者2都执行第三个动作。然后需要在Model Explorer中添加相应的输入和输出变量,再此之前要把True Table的名原创 2020-07-30 18:03:28 · 1211 阅读 · 0 评论 -
2837xd 代码生成——StateFlow(2)
2837xd 代码生成——StateFlow(2)3 Matlab-Function4 Graphical Function5 Simulink Function6 内部转移(历史节点)7 Box模块8 自循环9 枚举类型10 矩阵3 Matlab-Function StateFlow模块也可以调用Matlab-Function的功能,点击左侧栏的Matlab-Function图标,构建以下的函数模型: 双击Matlab-Function,可以直接进行相关的函数定义。函数定义方式参照,m语言的函原创 2020-07-29 17:47:39 · 1883 阅读 · 0 评论 -
2837xd 代码生成——StateFlow(1)
2837xd 代码生成——StateFlow(1)1 Chart模块2 模型实例搭建2.1 汽车状态判断2.2 媒体播放状态检测2.3 2837xd流水灯联机调试 在Command Window中键入sf可以进入,也可以通过Simulink库中的StateFlow子库进入. StateFlow有限状态机,再使用matlab时,可能有所感觉:一个简单的if语句或者++操作需要构建的过于复杂。但是引入状态机可以大大减少这种情况。 进入库函数模块可以看到这三个元件都是状态机的模块,一个个学习:先看C原创 2020-07-23 12:43:54 · 1890 阅读 · 0 评论 -
2837xd代码生成模块学习(4)——idle_task、Simulink Coder
2837xd代码生成模块学习(4)——idle_task、Simulink Coder模块1 idle_task2 Simulink Coder3 优先级设置1 idle_task idle_task模块位于C2000支持包库的Scheduling子类中,形象地说就是实现了我们在书写程序中的while(1)模块。其设置如下图:图中第二个属性是抢占标志,意思是当标志为1时,允许外部中断来打破原有的执行(即在执行子函数时,允许中断)。模型框架如下:这里设置了两个idle_task,一个抢占标志为原创 2020-07-20 12:24:17 · 1316 阅读 · 0 评论 -
2837xd代码生成模块学习(3)——IIC、eCAN、SCI、Watchdog、eCAP模块
模块学习1 IIC 模块1.1 模型功能2 eCAN模块2.1 实验结果3 SCI模块3.1 实验结果4 看门狗模块5 eCAP模块5.1 APWM模式5.2 eCAP模式1 IIC 模块1.1 模型功能 实现向地址0x50的从机写入数据(100 ,1),然后检测当写入数据发生变化时,就开始从(从机地址为0x50)的空间读取刚刚写入的数据。 可以看到上图中主要分为三大部分:1.全局变量的定义。2.写入数据。3.读取数据。1.全局变量的定义使用的是Data Store Memory模块,与之对原创 2020-07-19 20:35:05 · 2792 阅读 · 6 评论 -
2837xd代码生成模块学习(2)——ADC、ePWM模块、Timer0
2837xd代码生成模块学习(2)——ADC、ePWM模块、Timer01 ADC模块2 Timer0中断3 ePWM模块配置模型链接:1 ADC模块模型结构:以上结构完成了经过ADC采集,进行输出采集到的电压的过程。1)ADC采集模块2)SCI_A的采集配置见文章(链接)3)Configuration Parameters中配置ADC(根据需要进行配置) 这里说一下,2837x的ADC采集较28335的ADC有所改动。总体来说我感觉是更加方便使用,具体的用法建议参考用户手册或者T原创 2020-07-17 13:14:17 · 3363 阅读 · 6 评论 -
2837xd代码生成模块学习(1)——GPIO模块
2837xd代码生成模块学习(1)——GPIO模块1 基础模块2 DSP代码生成库2.1 GPIO_OUT2.2 GPIO_IN2.3 GPIO_INT 上部分主要看的官方例程,对程序运行和模型基本构架有了一个框架式的认识,下一部分主要是对c2000库中的每个模块结合自己的认识进行自己搭建模型,达到学习模块的效果。模型链接:1 基础模块这里仅仅放一张图,有需求自行进行深入学习即可:2 DSP代码生成库2.1 GPIO_OUT 从Library中进入相应硬件的元件页面(这里选的是2837原创 2020-07-16 19:57:22 · 1892 阅读 · 1 评论 -
Matlab代码生成之SIL/PIL测试
Matlab代码生成之SIL/PIL测试一、SIL与PIL测试流程二、Top Model的SIL/PIL仿真三、基于模型的SIL(PIL)测试四、基于SIL(PIL)控制模块测试一、SIL与PIL测试流程1.SIL(Software in the Loop),使用SIL可以在PC端进行测试生成的代码。 PIL(Processor in the Loop),使用PIL可以在实际目标硬件或指令集模拟器 上运行源代码进行测试。 测试标准:将PIL(SIL)结果与正常模型测试结果进行对比,可原创 2020-07-15 11:29:55 · 5953 阅读 · 0 评论 -
Matlab生成dsp程序——官方例程学习(6)
Matlab生成dsp程序——官方例程学习(6)IPC通信一、主要目的二、程序分析1. CPU1程序三、生成代码中结构体记录官方链接:官方链接ccs程序即模型:程序与程序中有我看的时候的中文标注,可能看起来更容易一点。IPC通信一、主要目的这个例程是使用IPC进行2837xD的两个核的通信,CPU1分别启用了四个IPC通道进行数据传输。这里应该使用的是寄存器传输(看到程序后发现这里是重新封装了IPC,还是用的内存共享,而且封装的较为巧妙建议阅读一程序中的**IPCInit()**函数),一次传送原创 2020-07-14 17:05:00 · 1846 阅读 · 0 评论 -
Matlab生成dsp程序——官方例程学习(2)
Matlab生成dsp程序——官方例程学习(2)一、主要功能二、CAN总线三、2837x关于CAN说明四、生成程序五、总结 这次学习的是官方例程中的Asynchronous Scheduling,emm因为我也是一边学习一边记录,所以现在也没办法解释整个框架的结构啥的。后面我会一步一步看,慢慢分析的。例子官网连接:官网例程链接一、主要功能 定时器或ePWM模块用于配置定时器中断。定时器中断是根据定时器周期触发的,当收到消息时会触发eCAN消息接收中断。硬件中断块(图中的蓝色模块)触发定时原创 2020-07-07 15:05:56 · 3351 阅读 · 1 评论 -
Matlab生成dsp程序——环境搭建(c2000系列[F28335、F2837x]都适用)
一、环境配置(28377D的操作是一模一样就是硬件设置的时候需要选择28377d进行相应的设置)1)matlab与ccs联合编译需要安装对应的matlab版本和ccs版本,且只有2016a以上的matlab支持c2000系列。具体对应关系参照:http://software-dl.ti.com/ccs/esd/documents/ccs_matlab.html2)matlab版本确定之后,还需要安装有关于ccs的相关软件:I、TI Code Composer Studio xxxx(对应原创 2020-07-03 20:38:34 · 15918 阅读 · 13 评论 -
Matlab生成dsp程序——官方例程学习
Matlab生成dsp程序——官方例程学习写在下面的话ADC-PWM例子学习一、基本功能二、生成代码分析三、总结写在下面的话 还是很建议大家多去学习官方例程的,真的能够收获到很多很多东西的!例程和ccs程序我也会打包上传的!官方链接:MW官方例程ADC-PWM例子学习一、基本功能 ADC采集到的模拟电压控制PWM波形的占空比(周期不发生改变)。当处理器收到ADC中断(ADCINT)时,触发中断服务程序(ISR)并执行子系统(ADC-PWM子系统)。ADC-PWM子系统由ADC与EPWM原创 2020-07-03 20:28:17 · 7860 阅读 · 3 评论 -
DSP2837d双核调试
DSP2837d双核调试一、下载程序二级目录三级目录一、下载程序 双核程序一直运行不对,起初以为是程序原因,后来发现是烧录程序的方式有问题。开始是先DEBUG cpu1的程序,再DEBUG cpu2的程序,发现无论如何程序都没有办法正常运行,在若干次尝试后发现。 看上如可以发现,两个单独Debug,两个核运行的都是一个程序。这时需要单独各cpu1烧录称程序(因情况而定)。具体过程如下:1.选中CPU1核。2.给CPU1重新下载他自己的程序点击OK,烧录程序即可。3.最后的效果看到原创 2020-06-28 21:14:40 · 3606 阅读 · 0 评论 -
2837xD之CPU2使用外设
2837xD之CPU2使用外设一、文章目的1.主要准备二、代码阅读1.CUP1代码CPU2中的代码三、总结四、致谢一、文章目的上一篇文章主要是解决了2837xD之间的IPC交互问题,但是需要的目标是CPU2调用串口等通信功能进行信息发送到上位机的交互。因此本文主要是学习利用CPU2来驱动外设的主要流程。1.主要准备因为手上没有2837xD的开发板,本次实验还是以学习例程为主(有点难受)。。。二、代码阅读代码目的:CPU1进行时钟初始化与GPIO初始化,CPU2进行驱动外设(ADC与EPWM)原创 2020-06-25 20:13:23 · 2367 阅读 · 0 评论 -
2837xD之IPC通信(共享内存)
IPC通信(共享内存)IPC通信基本原理程序部分一、CPU1程序注释二、CPU1主程序部分三、CPU2主程序部分致谢IPC通信基本原理IPC通信是TI公司的一种双核通信方式,主要有:1.共享内存(Message RAM) 2.共享寄存器(Message register) 3.IPC lite 等等。本次分析的是TI公司的例程(基于2837xD)。程序部分一、CPU1程序注释例程目标:// //##############################################原创 2020-06-22 17:08:26 · 4975 阅读 · 8 评论