0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于代码替换这个隐藏技能的介绍和分享

MATLAB 来源:djl 作者:董淑成 2019-09-16 17:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

不要对自动生成的代码做任何手工修改,凡是想在代码中实现的,一定要通过模型和相关配置实现。

是的,我依然坚持这条坚持了近10年的原则。

那么问题来了,有人说有些算法速度太慢,比如sine运算,如果使用math库里提供的sine运算,可能很多应用都接受不了,怎么破?

我们今天就来看看工具提供给我们的代码替换功能。

通常,在工程上,对于速度要求比较高的应用里,我们不会使用数学库里的sin()做正弦运算的,更多的时候,我们会使用查表的方式,把信号变化范围你的数据做成表格,做sine运算时就调用这张表格。我们这里也假设用户可以自己写一个查表函数,函数原型如下:

double mysin(double x)

也可能会有人告诉我单片机上我们也不适用double数据类型的,好吧,我这里偷懒,就不再去设置数据类型了,设置数据类型这事大家都会做。

假设有模型如下:

关于代码替换这个隐藏技能的介绍和分享

选择系统目标文件为ert.tlc,默认设置下,生成的代码如下:

testcr_Y.Out1 = sin(testcr_U.In1);

我们的目标是:

将代码中的sin()替换成mysine()。

如何操作?

1. 首先做MATLAB命令窗里运行如下命令:crtool

关于代码替换这个隐藏技能的介绍和分享

2. 在上述界面下,Tables List里面增加myTable,然后鼠标右键在myTable上选择New Entry,继续选择Math Function,然后就是做Math Function列表里选择sin,在最右侧的面板里设置Replacement prototype,比如我们这里将名字设置为mysine。

3. 做完上述设置之后,保存为myTable.m。

4. 再使用上述界面的File菜单下的Generate Registration File生成注册文件myTableReg。

5. 回到MATLAB命令窗,运行sl_refresh_customizations。

至此,我们已经创建了代码替换表,并且将其注册到MATLAB系统。

下面打开模型文件,只需做如下设置:

关于代码替换这个隐藏技能的介绍和分享

Configuration Parameters面板下选择Code Generation,然后选择Code replacement library,选中myTableReg。

现在,再去生成代码,你将得到的就是这样一行代码:

testcr_Y.Out1 = mysine(testcr_U.In1);

这里面需要注意的是路径问题不要出错,还有函数的形成以及返回值的类型要和模型里的相关模块保持一致。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7317

    浏览量

    94108
  • 信号
    +关注

    关注

    11

    文章

    2903

    浏览量

    79773
  • 代码
    +关注

    关注

    30

    文章

    4947

    浏览量

    73277
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    别只把RJ45直通头当“网线连接器”!这些隐藏场景和玩法太实用

    作为电子发烧友,我们总热衷于折腾各类电子设备,从家庭组网到设备改造,每一个小配件都能玩出不一样的花样。而RJ45直通头作为最基础的网络配件,多数人只解锁了“对接网线”这一个功能,却忽略了它在设备改造、临时组网中的隐藏玩法,今天就分享其6个实用场景,帮大家解锁新技能
    的头像 发表于 12-16 17:47 1098次阅读
    别只把RJ45直通头当“网线连接器”!这些<b class='flag-5'>隐藏</b>场景和玩法太实用

    内联函数介绍

    内联函数禁用所有的编译选项。使用__inline修饰函数导致函数在调用处直接替换为函数体。这样代码调用函数更快,但增加代码的大小,特别在函数本身比较大而且经常调用的情况下。 __inline
    发表于 12-12 07:08

    关于NFC镍锌铁氧体片的介绍

    关于NFC镍锌铁氧体片的介绍
    的头像 发表于 12-04 10:52 141次阅读
    <b class='flag-5'>关于</b>NFC镍锌铁氧体片的<b class='flag-5'>介绍</b>

    C语言的printf基本用法介绍

    个简单的例子: printf(\"C语言\"); 这个语句可以在屏幕上显示“C语言”,与puts(\"C语言\");的效果类似。 输出变量 abc 的值
    发表于 11-12 07:04

    皮线光缆的“硬核技能”:抗弯曲、耐环境、易施工

    皮线光缆能在复杂环境中稳定工作,离不开三大“硬核技能”:抗弯曲、耐环境、易施工。这些特性使其成为城市光网络建设的“首选武器”。 1. 技能一:超强抗弯曲能力 传统光纤弯曲半径需大于30mm,否则信号
    的头像 发表于 11-05 10:17 223次阅读
    皮线光缆的“硬核<b class='flag-5'>技能</b>”:抗弯曲、耐环境、易施工

    关于系统链接脚本的介绍

    起来后所处于的地址,程序中的相对寻址都会遵从此虚拟地址。 四、关于ITCM和DTCM(若使用FLASH下载模式) (1) 代码段上载到ITCM,ITCM起始地址(0x80000000)存储的代码就是主函数的入口。 (2)
    发表于 10-30 08:26

    嵌入式需要掌握哪些核心技能?

    : 1)C语言与底层编程 核心地位:C语言是嵌入式开发的基石,需精通指针操作、内存管理、位运算,直接操控硬件资源。 延伸技能:C++用于复杂项目架构设计,汇编语言优化底层性能(如启动代码、中断处理
    发表于 10-21 16:25

    Ansible代码上线项目实战案例

    在DevOps浪潮中,自动化部署已经成为每个运维工程师的必备技能。今天我将分享一个完整的Ansible代码上线项目实战案例,让你的部署效率提升10倍!
    的头像 发表于 07-24 14:03 387次阅读

    企业和个人基于业务知识和代码库增强的大模型生成代码实践

    :“这个功能之前做过类似的,你参考下历史代码。”可当他打开代码仓库,却发现注释寥寥,变量名像密码一样难懂,更找不到任何需求文档。他硬着头皮修改,结果上线后引发了线上故障——原来有个隐藏
    的头像 发表于 07-08 15:31 356次阅读
    企业和个人基于业务知识和<b class='flag-5'>代码</b>库增强的大模型生成<b class='flag-5'>代码</b>实践

    开源鸿蒙开发必备!OpenHarmony替换Full SDK全攻略

    本文介绍开源鸿蒙OpenHarmony替换FullSDK的方法,演示设备为触觉智能PurplePiOH鸿蒙开发板获取FullSD
    的头像 发表于 06-06 18:11 681次阅读
    开源鸿蒙开发必备!OpenHarmony<b class='flag-5'>替换</b>Full SDK全攻略

    AI时代:不可替代的“人类+”职业技能

    当生成式人工智能能够撰写报告、编写代码甚至设计产品时,一个根本性的焦虑开始蔓延:人类工作者是否正在被算法取代?这个问题的答案或许比简单的“是”或“否”更为复杂——AI确实在重塑职业版图,但真正的挑战
    的头像 发表于 05-20 16:13 561次阅读

    代码革命的先锋:aiXcoder-7B模型介绍

    程序代码处理的团队,也是最早推出基于深度学习的编程产品的团队,从一开始他们就抓住并专注于代码大模型这个前沿赛
    的头像 发表于 05-20 14:41 636次阅读
    <b class='flag-5'>代码</b>革命的先锋:aiXcoder-7B模型<b class='flag-5'>介绍</b>

    贴片电阻和插件电阻可以替换吗?

    贴片电阻和插件电阻在特定条件下可以相互替换,但替换时需要考虑多个因素以确保电路的性能和稳定性。以下是对贴片电阻和插件电阻替换性的详细分析: 一、可替换性分析 电路设计要求:
    的头像 发表于 04-30 15:32 967次阅读
    贴片电阻和插件电阻可以<b class='flag-5'>替换</b>吗?

    国产电压基准源替换REF3025在工业电源管理应用中的替换方案

    国产电压基准源替换REF3025在工业电源管理应用中的替换方案
    的头像 发表于 03-19 09:44 910次阅读
    国产电压基准源<b class='flag-5'>替换</b>REF3025在工业电源管理应用中的<b class='flag-5'>替换</b>方案

    晶振替换指南

    在频率相同的情况下,不同尺寸的晶振替换是可行的。凯擎小妹建议您全面考虑各项技术参数和应用要求,以确保替换后的系统可以稳定可靠的运行。
    的头像 发表于 12-23 18:07 1472次阅读
    晶振<b class='flag-5'>替换</b>指南