保护模型以隐藏内容
当您希望与第三方共享模型而不泄露知识产权时,请保护该模型。当您创建一个受保护的模型时,您可以通过将原始模型编译到模型引用中来隐藏它的实现细节。受保护的模型包括派生文件,以支持您指定的可选功能。金宝app
当您保护一个模型时,您可以允许受保护模型的用户:
打开模型的只读web视图,包括模型内容和块参数。
在加速模式(默认)、快速加速模式和正常模式下模拟模型。
为包含受保护模型的模型生成代码。
为包含受保护模型的模型生成HDL代码。要了解如何使用HDL代码生成支持创建受保护的模型,请参见金宝app创建受保护的模型来隐藏内容和生成HDL代码(高密度脂蛋白编码器)。
如果您有Embedded Coder,则通过独立接口为受保护的模型生成代码®并为模型指定一个基于ert的系统目标文件。
您可以选择对每个选项进行密码保护。如果您为这些选项之一选择密码保护,该软件将使用AES-256加密来保护支持文件。金宝app
当你创建一个受保护的模型:
默认为Simulink金宝app®在当前工作文件夹中创建并存储模型的受保护版本。受保护的模型具有与源模型相同的名称,具有
.slxp
扩展。的原始模型文件
.slx
扩展,不改变。如果你保护模型通过模型块,模型Block不会改变。受保护的模型文件由模型本身和支持文件组成,这取决于您在创建受保护的模型时所选择的选项。金宝app
使用以下选项之一创建受保护模型:
的模型块上下文菜单。
Simu金宝applink工具条模拟选项卡。要从当前模型创建受保护模型,请从保存列表中,选择保护模式。
Simu金宝applink工具条C代码选项卡。要从当前模型创建受保护模型,请从分享列表中,选择生成受保护模型。要从引用的模型创建受保护的模型,单击模型引用要保护的模型的块,然后选择从选定的模型块生成受保护的模型从分享列表。
如果您的受保护模型需要支持文件,例如基本工作区定义或数据字典,那么金宝app在共享模型时应将这些文件包含在模型中。有关更多信息,请参见包和共享受保护的模型。
属性创建只读查看、模拟或代码生成的受保护模型模型块上下文菜单。
准备父模型
配置模型块,以引用原始的引用模型。此步骤可防止模型在创建受保护模型时阻止成为受保护的引用。
打开引用要保护的模型的父模型。对于本例,打开模型
sldemo_mdlref_basic
。要运行工作流,请创建模型的本地副本
sldemo_mdlref_counter
你想要保护的。然后,您可以创建父模型的本地副本sldemo_mdlref_basic
。您必须将父模型保存在与引用模型相同的文件夹中。打开
sldemo_mdlref_basic
在本地保存的模型。确保模型块CounterA
,CounterB
,CounterC
引用sldemo_mdlref_counter
在本地保存的模型。为每一个模型块,打开块参数对话框,并指定扩展
.slx
在模型名称字段。当模型和受保护的模型都存在于同一个文件夹中时,.slxp
优先于.slx
。如果不指定扩展名,则原扩展名模型模型中的块指的是受保护的模型,而不是原始模型。点击好吧。
保护引用模型
右键单击其中任何一个模型块。从上下文菜单中选择子系统和模型参考>为所选模型块创建受保护模型。
在“创建受保护模型”对话框中,选择模拟和使用生成的代码复选框。这些选项允许受保护的模型用户模拟并为引用受保护模型的模型生成代码。如果要对受保护模型的功能进行密码保护,请输入至少四个字符的密码。每个选项可以有一个唯一的密码。
如果您有嵌入式Coder并指定基于ert的系统目标文件(例如,
ert.tlc
)为模型,则为代码接口场可见。在这个例子中,
sldemo_mdlref_basic
没有指定基于ert的系统目标文件,因此代码接口选项在“创建受保护模型”对话框中不可用。从代码接口下拉列表,选择以下选项之一:
模型参考
-通过模型引用代码接口指定代码访问,允许在模型引用层次结构中使用受保护的模型。受保护模型的用户可以从包含受保护模型的父模型生成代码。用户可以运行模型block SIL/PIL模拟与受保护的模型。顶级模特
—指定通过独立接口访问代码。受保护模型的用户可以运行模型block SIL/PIL模拟与受保护的模型。
从内容类型列表中,选择
混淆的源代码
隐藏受保护模型的源代码目的和逻辑。有关模型保护选项的详细信息,请参见内容类型。如果您有HDL Coder™,您可以选择使用生成的HDL代码复选框为引用受保护模型的模型生成HDL代码。如果希望对受保护模型的此功能进行密码保护,则必须指定至少8个字符。您不能混淆受保护模型的HDL源代码。
在这个例子中,引用的模型
sldemo_mdlref_counter
使用双
数据类型。在HDL代码生成>浮点选项卡,设置图书馆来本机浮点数
和延迟策略来零
。另请参阅创建受保护的模型来隐藏内容和生成HDL代码(高密度脂蛋白编码器)。在创建受保护的模型字段,指定受保护模型的文件夹路径。默认值为当前工作文件夹。
要为受保护的模型创建一个控制模型,请选择为受保护的模型创建控制模型复选框。当您创建受保护的模型时,驾驭模型将作为一个新的、未命名的模型打开,该模型仅包含模型引用受保护模型的块。要使用受保护的模型,请通过模型块,例如包含在线束模型中的块。有关更多信息,请参见从第三方引用受保护的模型(金宝app模型)。
要进一步定制受保护的模型,您可以:
为代码混淆指定一个自定义混淆器。看到为受保护的模型指定自定义模糊器。
指定多个代码生成目标。看到创建具有多个目标的受保护模型。
定义受保护模型的回调。看到定义受保护模型的回调。
点击创建。打开一个未命名的线束模型。您可以将控制模型与受保护的模型打包,以便与第三方共享。他们可以复制模型从控制模型到另一个模型的块,其中它是到受保护模型的接口。的模拟模式为模型Block被设置为
加速器
。不能更改模式。当您从Simulink Editor中创建受保护模型时,将生成受保护模型报告,并将其作为受金宝app保护模型的一部分。对于本例,要查看受保护的模型报告,双击受保护的模型或右键单击控制模型块上的受保护模型徽章图标并选择报告显示。
该报告包括:
一个总结,包括以下表格:
环境,提供Simulink版本和其他金宝app产品版本,以及用于创建受保护模型的平台。
金宝app支持的功能、报告
在
,从
,或开启密码保护
对于受保护的模型支持的每种可能的功能。金宝app如果为多个目标配置受保护的模型,则此表包含受支持的目标列表。金宝app许可证,列出了运行受保护模型所需的许可证。
一个接口报告,包括输入输出规范、导出功能信息、接口参数、数据存储等模型接口信息。
控件时生成报告
金宝appSimulink.ModelReference.protect
函数,设置'报告
选项真正的
。您可以测试受保护的模型,将其与原始模型进行比较。有关更多信息,请参见测试受保护模型。
受保护模型的要求和限制
当您创建一个受保护的模型时,请考虑以下需求:
你必须有一个金宝app仿真软件编码器™创建受保护模型。如果您拥有HDL Coder许可证,还可以创建受保护的模型。
该模型必须在MATLAB中可用®路径。
模型不能有未保存的更改。
该模型不能直接或间接地使用非内联s函数。
该模型使用保护期间活动的配置。您不能更改受保护模型的配置。
如果模型包含变量,那么受保护的模型只包括在保护期间活动的变量。
模型保护过程不保留回调。有关创建用于受保护模型的回调的详细信息,请参见定义受保护模型的回调
不要重命名受保护的模型或更改其后缀。如果您这样做,模型将不可用,直到恢复其原始名称和后缀。
为模型及其引用的模型使用唯一的名称。如果受保护模型引用的模型与另一个受保护模型的层次结构中的不同模型共享名称,则使用受保护模型会受到限制。如果顶级模型引用了两个具有此类命名冲突的受保护模型,则无法保护顶级模型、为顶级模型生成代码,或在软件在环(SIL)、处理器在环(PIL)或快速加速器模式中模拟顶级模型。
模型还必须满足中列出的要求模型参考要求和限制(金宝app模型)。
代码生成要求和限制
要创建支持代码生成的受保护模型,您的模型必须满足以下要求:金宝app
受保护的模型必须使用正常、加速器、软件在环(SIL)或处理器在环(PIL)模式和单个目标。
不要选择代码生成>验证>测量函数执行时间复选框。如果在保护模型时选择了此选项,软件将关闭该参数并显示警告。
受保护的引用模型必须支持在没有密码保护的情况下生成代码。金宝app
受保护的模型必须与内容类型每个受保护的引用模型的。该表提供兼容性信息。
代码生成内容类型兼容性
受保护的父模型内容类型 兼容的受保护引用模型内容类型 二进制文件
二进制文件
混淆的源代码
二进制文件
与“ObfuscateCode”
设置为“假”
二进制文件
二进制文件
与“ObfuscateCode”
设置为“假”
混淆的源代码
可读的源代码
混淆的源代码
混淆的源代码
可读的源代码
混淆的源代码
可读的源代码
当内容类型的受保护父模型和受保护引用模型不匹配时,代码生成应用内容类型这提供了更高级别的保护。例如,设置的受保护的父模型
二进制文件
生成二进制文件
对于设置为的受保护引用模型混淆的源代码
。设置的受保护的父模型可读的源代码
生成混淆的源代码
对于设置为的受保护引用模型混淆的源代码
。
要避免在包含受保护模型的模型的代码生成过程中出现错误:
受保护的模型名称必须与同一模型引用层次结构中的其他模型名称唯一。
接口必须匹配。
参数必须兼容。
嵌套的受保护模型要求和限制
如果您的受保护模型被另一个受保护模型引用,您的模型必须:
金宝app支持加速模式。您必须选择模拟在“创建保护模型”对话框或set中
“模式”
来“加速器”
或“CodeGeneration”
通过使用金宝appSimulink.ModelReference.protect
函数。使用默认值
“CodeInterface”
设置:“模型参考”
。模拟时不使用密码保护。
没有回调。
金宝app支持受保护的父模型所支持的不需要密码保护的操作。
使用一个内容类型这与内容类型如果受保护的父模型将支持代码生成,则指定受保护的父模型。金宝app获取兼容的列表内容类型选项,请参见前一节中的表格。
不引用与不同的受保护模型或另一个受保护模型的层次结构中的不同模型共享名称的模型。
如果需要保护的模型引用了受保护的模型,则受保护的引用模型必须满足上述要求。
请注意
属性创建的受保护模型使用生成的HDL代码选项允许加密,并支持从引用受保护模型的模型生成模拟和HDL代码。金宝app使用此选项,您不能混淆HDL源代码,不能进行回调,也不能使用嵌套的受保护模型。要了解有关HDL代码生成限制的更多信息,请参见HDL代码生成的受保护模型限制(高密度脂蛋白编码器)。