向NXP库中添加新的函数模块

  • 一、环境
  • 二、库添加模块
    • 1.打开文件夹
    • 2.创建文件
    • 3.添加S-Function
  • 三、浏览器添加模块

一、环境

Windows10、MATLAB R2022b、安装NXP的S32K1XX系列工具包

二、库添加模块

1.打开文件夹

在文件系统中找到安装工具包的位置,用文件资源管理器打开。
在这里插入图片描述
找到你需要修改的模块(路径一般为C:\Users\Administrator\AppData\Roaming\MathWorks\MATLAB Add-Ons\Toolboxes\NXP_MBDToolbox_S32K1xx\mbdtbx_s32k\blocks)
在这里插入图片描述

2.创建文件

进入对应的模块文件夹后,新建两个文件。修改后缀名。分别为.tlc文件(用于调用NXP驱动库的脚本语言,及函数的实现)、.c文件(封装模块的内部参数配置,如模块的输出个数、输入个数、是否为离散型等信息)
.tlc代码,实现开启或者关闭全局中断

%assign result = FEVAL(function_name, arg1, arg2, ..., argN)
//功能:调用其它函数
//function_name:调用函数名字
//arg1、arg2...:参数1、参数2...
%implements Sys_EnableIRQGlobal "C"%% Copyright (c) 2022 NXP.
%% All rights reserved.%function Outputs(block, system) Output%if FEVAL("mbd_s32k_is_codegen_compatible", CompiledModel.Name)%assign blockPath = LibGetBlockPath(block)%assign sdk_params = FEVAL ("get_param", blockPath,"sys_enableirqglobal"){%assign sys_enable = sdk_params%if FEVAL("strcmp","%<sys_enable>","enable")INT_SYS_EnableIRQGlobal();%elseINT_SYS_DisableIRQGlobal();%endif}%endif
%endfunction

.c代码

/* File: Sys_EnableIRQGlobal.c */
#define S_FUNCTION_NAME  Sys_EnableIRQGlobal
#define S_FUNCTION_LEVEL 2#include "simstruc.h"static void mdlInitializeSizes(SimStruct *S) {ssSetNumSFcnParams(S, 0);           // No parametersif (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) {return;                         // Parameter mismatch}if (!ssSetNumInputPorts(S, 0)) return;if (!ssSetNumOutputPorts(S, 0)) return;// ssSetNumInputPorts(S, 0);           // No input port// ssSetInputPortWidth(S, 0, 0);       // Scalar input// ssSetInputPortDirectFeedThrough(S, 0, 0); // No direct feedthrough// ssSetNumOutputPorts(S, 0);          // No output port// ssSetOutputPortWidth(S, 0, 0);      // Scalar output// ssSetNumContStates(S, 0);           // No continuous state// ssSetNumSampleTimes(S, 1);          // One sample time
}
static void mdlInitializeSampleTimes(SimStruct *S) {
}static void mdlOutputs(SimStruct *S, int_T tid) {
}static void mdlTerminate(SimStruct *S) {
}
// static void mdlInitializeSampleTimes(SimStruct *S) {
//     ssSetSampleTime(S, 0, CONTINUOUS_SAMPLE_TIME); // Continuous sample time
//     ssSetOffsetTime(S, 0, 0.0);
// }// static void mdlOutputs(SimStruct *S, int_T tid) {
//     real_T *x = ssGetContStates(S);     // Continuous state
//     real_T *u = ssGetInputPortSignal(S, 0); // Input signal
//     real_T *y = ssGetOutputPortSignal(S, 0); // Output signal//     *y = *x;                            // Output is the state
// }// static void mdlDerivatives(SimStruct *S) {
//     real_T *x_dot = ssGetdX(S);         // Derivative of state
//     real_T *u = ssGetInputPortSignal(S, 0); // Input signal//     *x_dot = *u;                        // Derivative equals input
// }#ifdef  MATLAB_MEX_FILE
#include "simulink.c"
#else
#include "cg_sfun.h"
#endif

然后在matlab命令行mex编译.c文件(没得MinGW64自行下载)。
在这里插入图片描述

3.添加S-Function

在任意地方,选择lpuart模块右键,跳转至库链接
在这里插入图片描述
解锁库,并添加S-Function
在这里插入图片描述
双击写函数名和参数
在这里插入图片描述

右键编辑封装
在这里插入图片描述
在这里插入图片描述
然后再将库锁定

三、浏览器添加模块

锁定完后,刷新库就会有,移植可能会丢失,需要自行解决,目前未找到解决办法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92366.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92366.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/92366.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用ProxySql实现MySQL的读写分离

ProxySQL简介1、ProxySQL是一款开源的使用C编写的MySQL集群代理中间件&#xff1b;2、用于在MySQL数据库和客户端之间进行负载均衡、查询缓存、故障转移和查询分发&#xff1b;3、它可以作为中间层插入到应用程序和数据库之间&#xff1b;4、特点是高效灵活&#xff0c;使用简单…

WiFi 核心概念与实战用例全解

&#x1f4d6; 推荐阅读&#xff1a;《Yocto项目实战教程:高效定制嵌入式Linux系统》 &#x1f3a5; 更多学习视频请关注 B 站&#xff1a;嵌入式Jerry 1. WiFi基础与协议 WiFi&#xff08;Wireless Fidelity&#xff09;是基于IEEE 802.11协议族的无线局域网&#xff08;WLAN…

面向远程智能终端的超低延迟RTSP|RTMP视频SDK架构与实践指南

引言&#xff1a;遥操作时代&#xff0c;视觉链路已成“主控神经元” 从工业巡检到应急救援&#xff0c;从城市安防到边境监控&#xff0c;远程操控正成为智能终端与人机协同的重要落点。而在这些场景中&#xff0c;“视觉”不再只是用来观看的工具&#xff0c;而是贯穿感知、…

C++中的继承:从基础到复杂

目录 前言 1. 继承的基本概念 2. 继承方式与访问控制 3. 派生类与基类的对象转换 4. 继承中的作用域 5. 派生类的默认成员函数 6. 继承中的特殊关系 6.1 继承与友元 6.2 继承与静态成员 7. 复杂的菱形继承问题 8. 继承与组合的选择 9. 常见面试题 总结 前言 继承…

Eyevinn 彻底改变开源部署模式

该咨询公司借助Akamai云平台&#xff0c;为其创新的开源平台和可持续收益分成模式提供强大支持。 "时间就是金钱&#xff0c;我们通过Akamai云平台快速将开源云平台投入生产。" ——Eyevinn Technology研发副总裁 Jonas Birm实现可持续视频流媒体服务 自2013年以来&…

17day-人工智能-机器学习-分类算法-KNN

1. 什么是knn算法knn算法全名叫做k-近邻算法&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;&#xff0c;看到名字是不是能想到是算距离的&#xff0c;第一个k是指超参数的意思&#xff0c;就是可以认为设置的意思&#xff0c;这里是指最近的k个样本。2. 为什…

12-netty基础-手写rpc-编解码-04

netty系列文章&#xff1a; 01-netty基础-socket02-netty基础-java四种IO模型03-netty基础-多路复用select、poll、epoll04-netty基础-Reactor三种模型05-netty基础-ByteBuf数据结构06-netty基础-编码解码07-netty基础-自定义编解码器08-netty基础-自定义序列化和反序列化09-n…

解决 Windows 下的“幽灵文件”——记一次与带空格的 .gitignore 文件的艰难斗争

引言 你是否遇到过这样的情况&#xff1a;一个文件明明躺在你的文件夹里&#xff0c;ls 或 dir 命令都能清楚地看到它&#xff0c;但无论你用什么方法尝试删除&#xff0c;系统都冷酷地告诉你“找不到文件”&#xff1f; 就在今天&#xff0c;我就遇到了这样一个“幽灵”般的 .…

(易视宝)易视TV is-E4-G-全志A20芯片-安卓4-烧写卡刷工具及教程

&#xff08;易视宝&#xff09;易视TV is-E4-G-全志A20芯片-安卓4-烧写卡刷工具及教程PhoenixCard_V309烧录步骤&#xff1a;1、将TF或SD卡插入计算机&#xff0c;打开软件&#xff1b;2、选择固件所在目录&#xff1b;3、烧写模式选“卡量产”4、点击“烧录”开始量产&#x…

(数据结构)顺序表实现-增删查改

1.线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时…

【面试八股总结】线程/进程同步问题

一、同步与互斥 在线程并发执行的过程中&#xff0c;进程/线程之间存在协作的关系&#xff0c;例如有互斥、同步的关系。为了实现进程/线程间正确的协作&#xff0c;操作系统必须提供实现进程协作的措施和方法&#xff0c;主要的方法有两种&#xff1a; 锁&#xff1a;加锁、解…

大语言模型提示工程与应用:提示工程入门指南

提示工程入门 学习目标 在本课程中&#xff0c;我们将学习提示工程。 相关知识点 提示工程 学习内容 1 提示工程 提示工程是一门新兴学科&#xff0c;专注于设计和优化提示词以高效利用语言模型完成多样化任务。掌握提示工程能帮助开发者更深入理解大语言模型(LLM)的能力…

PostgreSQL 多级依赖血缘系统的设计与落地

一、业务背景&#xff1a;三类指标与四种状态指标类型定义规则依赖关系原子指标单表聚合&#xff08;SELECT WHERE GROUP&#xff09;无派生指标在原子/派生指标上加 WHERE、改 GROUP依赖 1~N 个父指标复合指标多个原子/派生指标做加减运算依赖 1~N 个父指标状态说明已保存草…

阿里云百炼平台创建智能体-上传文档

整体思路是&#xff1a; 1创建ram用户&#xff0c;授权 2上传文件获取FileSession 3调用智能体对话&#xff0c;传入FileSession 接下来每个步骤的细节&#xff1a; 1官方不推荐使用超级管理员用户获得accessKeyId和accessKeySecret&#xff0c;所以登录超级管理员账号创建…

剪映里面导入多张照片,p图后如何再导出多张照片?

剪映普通版本暂时没发现可以批量导出图片。这里采用其他方式实现。先整体导出视频。这里前期要注意设置帧率&#xff0c;一张图片的时长。 参考一下设置&#xff0c;帧率设置为30&#xff0c;图片导入时长设置为1s&#xff0c;这样的话&#xff0c;方便后期把视频切割为单帧。导…

怎么查看Linux I2C总线挂载了那些设备?

1. 根据系统启动查看设备树节点文件&#xff08;系统运行后的&#xff09; 比如&#xff1a;要查看I2C2i2c2: i2cfeaa0000 {compatible "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";reg <0x0 0xfeaa0000 0x0 0x1000>;clocks <&cru CLK_…

bat脚本实现获取非微软官方服务列表

Get-CimInstance -ClassName Win32_Service |Where-Object { $_.State -eq Running -and $_.StartMode -ne Disabled } | ForEach-Object {$isMicrosoft $false$signerInfo 无可执行路径if ($_.PathName) {# 提取可执行文件路径&#xff08;处理带引号/参数的路径&#xff09…

小程序难调的组件

背景。做小程序用到了自定义表单。前后端都是分开写的&#xff0c;没有使用web-view。所以要做到功能对称时间选择器。需要区分datetime, year, day等类型使用uview组件较方便 <template><view class"u-date-picker" v-if"visible"><view c…

从零构建TransformerP2-新闻分类Demo

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 有很多很多不足的地方&#xff0c;欢迎评论交流&#xff0c;感谢您的阅读和评论&#x1f604;。 目录引言1 一个完整的Transformer模型2 需要准备的“工…

qt qml实现电话簿 通讯录

qml实现电话簿&#xff0c;基于github上开源代码修改而来&#xff0c;增加了搜索和展开&#xff0c;效果如下 代码如下 #include <QGuiApplication> #include <QQmlApplicationEngine>int main(int argc, char *argv[]) {QCoreApplication::setAttribute(Qt::AA_…