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

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

3天内不再提示

关于自动生成的代码支持的硬件平台介绍

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

扫码添加小助手

加入工程师交流群

自动生成的代码支持哪些硬件平台?前面我们提到了Target Support Package,今天我们再来看看另外两处引发这个问题的地方。

M配置参数中的硬件实施

硬件实施(Hardware Implementation)设置里给出了代码生成支持的各种处理器,如下图所示,我们可以选择Freescale的MPC 55xx系列的单片机,也可以选择Infineon的TriCore等等,从这个列表来看,基本上涵盖了我们平时可以接触到的大多数单片机。

关于自动生成的代码支持的硬件平台介绍

不过,产品开发过程中,不少公司会跟半导体公司同步,使用半导体公司开发过程中的最新单片机,也有的时候,我们在使用一些比较小众的单片机,这样一来,这个列表就可能难以做到面面俱到。所以就有用户做翻遍了这个列表依然没有找到自己使用的芯片之后,会跟我们抱怨代码生成不支持他们使用的单片机。

我们来仔细看一下这个列表,在我们选中一款处理器之后Device details下面都有哪些内容,首先是Number of bits,这里给出了各种数据类型对应的字长,比如char,short,float,double,pointer等,不同的单片机这些数据可能是不同的,比如,对于C语言中的数据类型char,多数情况下都会定义为8个位,而TI的C2000系列的MCU却把char定义为16个位。long就更是多种多样了,有的处理器里被定义为32bits,也有的被定义为64bits,TI的C6000 DSP里long是40bits。代码生成之后,在rtwtypes.h文件里会有这些基本数据类型的定义。如下所示:

typedef signed char int8_T;

typedef unsigned charuint8_T;

typedef shortint16_T;

typedef unsigned shortuint16_T;

typedef intint32_T;

typedef unsigned intuint32_T;

typedef floatreal32_T;

typedef doublereal64_T;

Largest atomic size,最大原子尺寸,定义了整型的最大原子尺寸,同时也给出是否支持浮点类型以及单精度、双精度浮点的选项。

还有一些,类似于字节顺序之类的选项,用以选择Little Endian还是Big Endian。

如果能从上述列表中找到我们正在使用的处理器,在代码生成之前有必要将这个选项设置成跟我们一致的处理器。如果这个列表中找不到呢?是否就意味着代码生成不支持你们的处理器呢?

答案是否定的,我们可以注意一下,在Device vendor下拉菜单的最下面可以找到Custom Processor选项,我们已经知道,针对不同的处理器,在生成的代码里,有必要做出区分的也就是各种类型的字长、是否支持浮点等设置,既然如此,对于列表中不存在的处理器,只需要在选中Custom Processor之后做一些相关设置即可。

如下图,在选择了Custom Processor之后,前面我们提到的各种信息都变成可编辑状态。

通过人为设置这些选项,可以满足那些列表中不存在的处理器的要求,所以从这个意义上来讲,代码生成工具支持所有处理器,即便是在现有列表里找不到的处理器,也可以通过自己定制的方式定制字长等信息,实现对这款处理器的支持。

关于自动生成的代码支持的硬件平台介绍

M配置参数中的代码替换选项

在配置参数里,还有一个可能引起用户困惑的地方,那就是代码替换选项(Code Replacement)。在有些版本的MATLAB里面,配置参数:

Configuration Parameters > Code Generation > Interface > Code replacement library

选项里,也列出了不少处理器,下图是来自于MATLAB R2016b的选项。

这里我们看到了一些ARM处理器,TI的某些处理器等等:

关于自动生成的代码支持的硬件平台介绍

这个选项的目的是为了实现代码优化,比如,通常我们做除法运算都是通过除法运算符“/”实现,x/y实现x除以y的运算,而有的半导体厂商可能通过专门的除法运算接口,比如divide(x, y),通过这个接口运算,编译之后的代码在速度上可能会比x/y更快。

半导体公司如果提供类似一些指令级的优化,通常可以通过代码替换的方式实现,以刚才提到的除法运算为例,如果半导体公司对某些运算做了优化,并封装成库文件的形式,在代码生成之后,生成的代码里就没有“/”实现的除法运算,而是通过divide()实现。

除了半导体公司可能提供这类优化之外,用户也可以自己做类似的优化,对于一些运算量很大的运算,我们经常使用查表的方式实现,比如,算法中有sine运算,但速度可能难以满足我们的要求,在工程上,我们通常使用查表的方式实现sine运算,我们也可以通过制作代码替换库,并让算法代码中不出现标准数学库里的sin()运算,而是my_sine()等自己定义的由查表实现的运算。

当然,如果我们对速度没有要求,我们可以无视这个代码替换选项。

不管替换与否,我们不难看出:

从这个层面上,代码生成工具也是支持所有处理器的。

很多人关心生成的代码是否支持某某处理器的疑问,基本上是来自于上述三个原因吧。

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

    关注

    68

    文章

    20149

    浏览量

    247204
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    不只有AI协作编程(Vibe Coding):生成式系统级芯片(GenSoC)将如何把生成式设计推向硬件层面

    但是否能将这种生成式的、目标驱动的方法从软件层向下延伸呢?这一理念是否可以直接应用于硬件本身呢?通过GenSoC,开发者可用自然语言或高级模型描述系统行为,XMOS的工具链将自动生成
    的头像 发表于 11-07 14:04 286次阅读

    2025支持AI 驱动数字化转型的低代码开发平台有哪些

    在数字化转型的浪潮中,低代码开发平台凭借其快速开发、降低技术门槛等优势,成为企业构建数字化应用的核心工具。2025年,随着AI技术深度融合与国产化替代加速,低代码平台已从“效率工具”升
    的头像 发表于 10-31 13:18 146次阅读

    代码开发平台推荐:2025国内低代码开发平台排名TOP10

    代码开发平台排行榜 在企业数字化转型的浪潮中,低代码开发平台正逐渐成为企业实现高效开发和快速迭代的重要工具。随着技术的不断进步和市场需求的持续增长,低
    的头像 发表于 10-28 10:22 312次阅读

    语法纠错和testbench的自动生成

    。 语法纠错 在vscode的拓展中,输入Verilog查找如下插件: 安装完该插件后就支持了语法高亮和自动补全等功能,但是要实现自动纠错还需要安装ctags。这在该扩展的细节中有
    发表于 10-27 07:07

    使用Simulink自动生成浮点运算HDL代码(Part 1)

    引言 想要实现浮点运算功能,如果自己写Verilog代码,需要花费较多的时间和精力。好在Simulink HDL Coder工具箱提供了自动代码生成技术。下图展示了HDL Coder如
    发表于 10-22 06:48

    工业物联网平台有哪些低代码应用

    在工业物联网领域,低代码平台通过可视化开发、模块化组件和预置模板,显著降低了开发门槛和周期,同时支持灵活扩展与集成。以下是工业物联网平台中低代码
    的头像 发表于 09-24 14:49 418次阅读

    HarmonyOSAI编程编辑区代码生成

    CodeGenie提供Inline Edit能力,支持在编辑窗口中通过自然语言进行问答,基于上下文智能生成代码片段,提升代码可读性。 当前有以下两种方式唤醒Inline Edit对话框
    发表于 08-20 15:24

    360环视技术推荐的硬件平台支持多摄像头与三屏异显的理想选择

    硬件平台选型360环视的落地并不简单。它不仅需要多个高清摄像头的数据输入,还需要稳定的图像处理能力、强大的AI推理能力,以及足够多的视频输出接口支持显示需求。很多开发者在选型时会遇到一些挑战,比如:l
    发表于 07-30 17:32

    主流机器视觉软件开发平台介绍及对比?

    Vision Builder AI模块,支持拖拽式配置与代码生成。 深度适配 NI 硬件(如 CompactRIO、PXI),实现硬实时控制(延迟低至 10 μs)
    的头像 发表于 07-14 09:44 1757次阅读
    主流机器视觉软件开发<b class='flag-5'>平台</b><b class='flag-5'>介绍</b>及对比?

    什么是零代码平台

    )也能轻松构建跨系统、跨设备的自动化流程,而我们的平台,正是这样一款深耕工业自动化领域的零代码解决方案—— 不仅具备上述核心能力,更针对工业场景强化了设备兼容性与流程可靠性:
    发表于 07-12 20:28

    手动添加cubeMX的软件自动生成代码后,编译出现’rtthread.elf’:No Such File 的错误怎么解决?

    手动添加cubeMX的软件自动生成代码后,编译出现’rtthread.elf’:No Such File 的错误。
    发表于 06-12 07:46

    西门子Veloce硬件辅助验证平台升级

    西门子数字化工业软件日前宣布扩展其 Veloce™ 硬件辅助验证平台支持 1.6 Tbps 以太网。作为西门子软件/硬件和系统验证平台的核
    的头像 发表于 02-10 10:13 1056次阅读

    超详细!FMU生成器用户手册来啦~

    FMU生成器是TSMaster中用于将模型打包生成FMU文件的一个工具,目前支持FMI3.0和FMI2.0版本,FMU类型仅支持Co-Simulation(CS),即联合仿真FMU。本
    的头像 发表于 01-17 20:02 1635次阅读
    超详细!FMU<b class='flag-5'>生成</b>器用户手册来啦~

    STM32CubeMX生成代码,是怎样的HAL架构?

    需要注意,CubeMX只是一个初始化工具,它只是帮你完成了HAL库外设和时钟的初始化,具体程序的编写还需要查阅HAL库的说明,使用相关函数实现你想实现的功能。CubeMX生成代码包含了丰富的注释
    的头像 发表于 01-01 21:01 1240次阅读
    STM32CubeMX<b class='flag-5'>生成</b>的<b class='flag-5'>代码</b>,是怎样的HAL架构?

    SRIO介绍及xilinx的vivado 2017.4中生成srio例程代码解释

    介绍 本处将从SRIO的数据流,数据协议,常用FPGA支持模式,以及IP例程中的时钟大小计算等部分介绍SRIO的情况。 3.1 SRIO的数据流 SRIO通过生成IP后,通常情况下主要
    的头像 发表于 12-10 16:24 4473次阅读
    SRIO<b class='flag-5'>介绍</b>及xilinx的vivado 2017.4中<b class='flag-5'>生成</b>srio例程<b class='flag-5'>代码</b>解释