<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Custom simulink block for MPC574xR in Model-Based Design Toolbox (MBDT)</title>
    <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/1685363#M8350</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/50705"&gt;@Daniel_Popa&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;We want to build custom block for s32k148 nxp controller. I follow the steps what you given before for MPC series but I'm not able to build it like it generate multiple errors. I don't know how to write TLC file and what kind of files required to design custom block. please suggest me complete steps for this.&lt;/P&gt;</description>
    <pubDate>Tue, 11 Jul 2023 04:48:08 GMT</pubDate>
    <dc:creator>saurabhkulkarni123</dc:creator>
    <dc:date>2023-07-11T04:48:08Z</dc:date>
    <item>
      <title>Custom simulink block for MPC574xR</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835076#M2656</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Has anyone tried to make simulink block for MPC574xR? NXP has not yet released for this controller (maybe they would do so in 2019). So I was wondering if someone has tried this? If yes, could you please share your insights/direction?&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I am currently stuck without RappID initialisation block for MPC574xR and also looking into atleast step-1 which is GPIO pin toggle.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Nov 2018 10:28:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835076#M2656</guid>
      <dc:creator>raghurajappa</dc:creator>
      <dc:date>2018-11-14T10:28:46Z</dc:date>
    </item>
    <item>
      <title>Re: Custom simulink block for MPC574xR</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835077#M2657</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/raghurajappa"&gt;raghurajappa&lt;/A&gt;‌,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First of all, sorry for the delayed answer. We don't have any plans to release a MPC574xR toolbox yet. If you are having trouble with setting up peripherals/clocks etc, you can post your questions on the&amp;nbsp;&lt;A href="https://community.nxp.com/space/11363"&gt;MPC5xxx&lt;/A&gt;&amp;nbsp; community.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps,&lt;/P&gt;&lt;P&gt;Razvan.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Nov 2018 10:27:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835077#M2657</guid>
      <dc:creator>constantinrazva</dc:creator>
      <dc:date>2018-11-20T10:27:18Z</dc:date>
    </item>
    <item>
      <title>Re: Custom simulink block for MPC574xR</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835078#M2658</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Razvan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am aware that NXP is not planning on releasing MPC574xR toolbox yet. But if I could get some support with the toolchain for this, it would helpful as we (our team) are planning on making custom blocks by ourselves for this microcontroller.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The goal is to get from C code (drivers) to Simulink blocks to C code to be flashed on the MPC5745R microcontroller. I can see that the RappID is not available for this microcontroller. I can also see that as a consequence, most likely FreeMaster would also not be available.&amp;nbsp;&lt;BR /&gt;But at this moment, how can I make this workflow happen?? (C to simulink to C for this controller). We're willing to make the developmental efforts ourselves. But I am stuck with get this workflow clear in my head. Does it mean, that we need to develop our own tool to flash (from Simulink), to debug in SIL/PIL mode?&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I just need help in getting the workflow clear and if possible a small example of a single GPIO pin toggle or something.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Kind Regards,&lt;BR /&gt;Raghu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 Nov 2018 11:58:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835078#M2658</guid>
      <dc:creator>raghurajappa</dc:creator>
      <dc:date>2018-11-23T11:58:12Z</dc:date>
    </item>
    <item>
      <title>Re: Custom simulink block for MPC574xR</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835079#M2659</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Raghu,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To get from C-code to Simulink blocks/models, we are using TLC (Target Language Compiler - see the pdf attached).&lt;/P&gt;&lt;P&gt;To create a custom block is quite easy. Let us suppose you wish to build your own Simulink Library with custom blocks for a specific processor.&lt;/P&gt;&lt;P&gt;STEP1: Create a Simulink Library model&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;IMG alt="pastedImage_1.png" src="https://community.nxp.com/t5/image/serverpage/image-id/77825i7D16361E510A8CEF/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;STEP2:&amp;nbsp;Create a slblocks.m file in the same folder to describe various parameters of the library. This is how you make it visible in Simulink Standard Libraries list. Let us presume you want Simulink to display your collection of blocks as "CustomMBDT" library&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;% SLBLOCKS Defines the block library for a specific Toolbox or Blockset.
function blkStruct = slblocks

&amp;nbsp;&amp;nbsp;&amp;nbsp; blkStruct.Name = ['Custom MBDT' sprintf('\n')]; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; blkStruct.OpenFcn = 'CustomMBDT';
&amp;nbsp;&amp;nbsp;&amp;nbsp; blkStruct.MaskDisplay = '';
&amp;nbsp;&amp;nbsp;&amp;nbsp; Browser(1).Library = 'CustomMBDT';
&amp;nbsp;&amp;nbsp;&amp;nbsp; Browser(1).Name&amp;nbsp;&amp;nbsp;&amp;nbsp; = 'CustomMBDT';
&amp;nbsp;&amp;nbsp;&amp;nbsp; Browser(1).IsFlat&amp;nbsp; = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Browser(1).Choice&amp;nbsp; = 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; blkStruct.Browser = Browser;
end&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;This is how it will look:&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;IMG alt="pastedImage_2.png" src="https://community.nxp.com/t5/image/serverpage/image-id/77871iD0698510A78D09AB/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_2.png" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STEP3: Add a standard S-function Simulink block into your customMBDT.mdl file&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;IMG alt="pastedImage_3.png" src="https://community.nxp.com/t5/image/serverpage/image-id/77888iCD960B7013874868/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_3.png" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now comes the tricky parts: you need to create your own User Interface and Custom Code when this S-function block is used in a model.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STEP4: Create or associate a S-Function Level 2 file with your block. This will tell Simulink what are the inputs/outputs and&amp;nbsp;other various parameters of your block.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_4.png"&gt;&lt;IMG alt="pastedImage_4.png" src="https://community.nxp.com/t5/image/serverpage/image-id/77945i64BF27F11D3DA76A/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_4.png" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;E.g.: supposing i want to create a Simulink block that allow to read a GPIO. The block has no input ports but it has 1 output ports which i'll define as Boolean.&lt;/P&gt;&lt;PRE class="language-cpp line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;static&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;mdlInitializeSizes&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;SimStruct &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/*------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Number of expected parameters
&amp;nbsp;&amp;nbsp;&amp;nbsp; --------------------------------------*/&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumSFcnParams&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/*-----------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Parameter mismatch will be reported by Simulink
&amp;nbsp;&amp;nbsp;&amp;nbsp; --------------------------------------------------------*/&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;ssGetNumSFcnParams&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;!=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;ssGetSFcnParamsCount&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/*-------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set the input/Output ports
&amp;nbsp;&amp;nbsp;&amp;nbsp; ---------------------------*/&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumInputPorts&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Define 0 Inputs required */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumOutputPorts&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="comment token"&gt;/* Define 1 outputs required */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetOutputPortWidth&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetOutputPortDataType&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; SS_BOOLEAN&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/*---------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set Work Sizes
&amp;nbsp;&amp;nbsp;&amp;nbsp; -------------------------------------------*/&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumSampleTimes&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumRWork&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumPWork&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumModes&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumNonsampledZCs&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumIWork&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/*------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set the number of states
&amp;nbsp;&amp;nbsp;&amp;nbsp; --------------------------------*/&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumContStates&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetNumDiscStates&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;/*---------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Other OPtions for Code Generation
&amp;nbsp;&amp;nbsp;&amp;nbsp; ------------------------------------------*/&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;ssSetOptions&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;S&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; SS_OPTION_USE_TLC_WITH_ACCELERATOR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS_OPTION_SFUNCTION_INLINED_FOR_RTW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS_OPTION_WORKS_WITH_CODE_REUSE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS_OPTION_DISALLOW_CONSTANT_SAMPLE_TIME &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS_OPTION_RUNTIME_EXCEPTION_FREE_CODE&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS_OPTION_CAN_BE_CALLED_CONDITIONALLY&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS_OPTION_CALL_TERMINATE_ON_EXIT&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STEP5: create a MEX file from the c file used as S-Function. You can used the default LCC compiler to create the mex file: &lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;mex myfile.c&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;STEP6: attached a TLC file with the same name as the S-Function so that you can inject whatever code you wish when the block is used. It is very impfrtant that the TLC file has the same name as the S-function C file and also to contain the syntax as first line below.&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;%implements io_input "C"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% function executes once per block type before code generation begins
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%function BlockTypeSetup(block, system) void
&amp;nbsp;&amp;nbsp;&amp;nbsp; %%user include files
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&amp;lt;LibAddToCommonIncludes("pins.h")&amp;gt;
%endfunction&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Inside this file, you can have any function supported by the TLC (see the attachment). It allows you to add include files, inject code in various places in the Simulink generated files, etc.&lt;/P&gt;&lt;P&gt;E.g. If you need to call your custom driver implemented in C:&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% function executes at each step
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%function Outputs(block, system) Output
&amp;nbsp;&amp;nbsp; %assign pinInfo = FEVAL("io_pin_info", block.Name)
&amp;nbsp;&amp;nbsp; %with pinInfo.user_config
&amp;nbsp;&amp;nbsp; /* GPI%&amp;lt;port&amp;gt;%&amp;lt;pin&amp;gt; signal update */
&amp;nbsp;&amp;nbsp; %&amp;lt;LibBlockOutputSignal(0,"","",0)&amp;gt; = (PINS_DRV_ReadPins(%&amp;lt;pt&amp;gt;) &amp;gt;&amp;gt; %&amp;lt;pin&amp;gt;) &amp;amp; 0x01;
&amp;nbsp;&amp;nbsp; %endwith
%endfunction
&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;STEP7:&amp;nbsp;build your own User Interface to allow custom code customization. Use right click on the block and select Edit Mask to implement your own user interface.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_8.png"&gt;&lt;IMG alt="pastedImage_8.png" src="https://community.nxp.com/t5/image/serverpage/image-id/77991i68E7DECD5053AED3/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_8.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This will show something like this:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_9.png"&gt;&lt;IMG alt="pastedImage_9.png" src="https://community.nxp.com/t5/image/serverpage/image-id/77900i841B86652A62D037/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_9.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;STEP8. Save the block into the Simulink custom library model you have created at step 1 and you should have your own block that allows you to call your custom code into the Simulink environment.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_10.png"&gt;&lt;IMG alt="pastedImage_10.png" src="https://community.nxp.com/t5/image/serverpage/image-id/78019i71D5A8F797A9968C/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_10.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This is the basic flow that allows you to call any custom code into a Simulink environment. You can find attached an example for this part.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;In respect with the other questions:&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I can see that the RappID is not available for this microcontroller.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;We can't help you with that. You need to contact the S32Design Studio team via a NXP Official Support and ask for that support to be enabled.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I can also see that as a consequence, most likely FreeMaster would also not be available.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;FreeMASTER should not be an issue. The FreeMASTER embedded driver can be easily ported on any MPC platform.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;(C to simulink to C for this controller). We're willing to make the developmental efforts ourselves. But I am stuck with get this workflow clear in my head. Does it mean, that we need to develop our own tool to flash (from Simulink), to debug in SIL/PIL mode?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;The easiest way to do that, would be to start from an NXP existing toolbox like MPC574xP since it contains all the additional TLC files for e200 code generation. You will face some issues since not all the m-file are available for end-user but starting from MPC574xP should give you an idea about what you need to change or implement by yourself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this help!&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2020 14:14:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835079#M2659</guid>
      <dc:creator>Daniel_Popa</dc:creator>
      <dc:date>2020-11-02T14:14:09Z</dc:date>
    </item>
    <item>
      <title>Re: Custom simulink block for MPC574xR</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835080#M2660</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can someone share converted sample model for Matlab 2017a?&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Jul 2019 15:20:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835080#M2660</guid>
      <dc:creator>erinctopdemir</dc:creator>
      <dc:date>2019-07-03T15:20:14Z</dc:date>
    </item>
    <item>
      <title>Re: Custom simulink block for MPC574xR</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835081#M2661</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Erinc,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can convert it by yourself. Just open the *.mld file as a text file and change the model version to a &lt;A href="https://en.wikipedia.org/wiki/Simulink" rel="nofollow noopener noreferrer" target="_blank"&gt;8.9&lt;/A&gt;&amp;nbsp;and then save.&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;Library {
 Name "CustomMBDT"
 Version 9.2
 SavedCharacterEncoding "windows-1252"
 DiagnosticSuppressor "on"&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps!&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Jul 2019 15:31:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/835081#M2661</guid>
      <dc:creator>Daniel_Popa</dc:creator>
      <dc:date>2019-07-03T15:31:57Z</dc:date>
    </item>
    <item>
      <title>Re: Custom simulink block for MPC574xR</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/1685363#M8350</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/50705"&gt;@Daniel_Popa&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;We want to build custom block for s32k148 nxp controller. I follow the steps what you given before for MPC series but I'm not able to build it like it generate multiple errors. I don't know how to write TLC file and what kind of files required to design custom block. please suggest me complete steps for this.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Jul 2023 04:48:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Custom-simulink-block-for-MPC574xR/m-p/1685363#M8350</guid>
      <dc:creator>saurabhkulkarni123</dc:creator>
      <dc:date>2023-07-11T04:48:08Z</dc:date>
    </item>
  </channel>
</rss>

