<?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 assembler code se_ with syntax error in S32 Design Studio</title>
    <link>https://community.nxp.com/t5/S32-Design-Studio/assembler-code-se-with-syntax-error/m-p/874311#M4523</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear NXP support,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried to compile FreeRTOS in S32 DS with&amp;nbsp;GHS&amp;nbsp;compiler.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As "kregs" is a special VLE constraint and GHS compiler cannot be aware of it. So I changed&amp;nbsp; "=kregs" (ulCriticalNesting) to&amp;nbsp; "=e" (ulCriticalNesting) and&amp;nbsp;enable&amp;nbsp;enable option "-gnu_asm_se_vle_register".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Increment critical nesting count */&lt;BR /&gt; __asm__ volatile&lt;BR /&gt; (&lt;BR /&gt; "mfsprg %0, 1 \n\t" // get critical nesting count from SPRG1&lt;BR /&gt; "se_addi %0, 1 \n\t" // increment&lt;BR /&gt; "mtsprg 1, %0 \n\t" // store to SPRG1&lt;BR /&gt; // "=kregs" (ulCriticalNesting)&lt;BR /&gt; : "=e" (ulCriticalNesting)&lt;BR /&gt; );&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;static portFORCE_INLINE UBaseType_t portDECREMENT_CRITICAL_NESTING( void )&lt;BR /&gt;{&lt;BR /&gt; UBaseType_t ulCriticalNesting;&lt;/P&gt;&lt;P&gt;/* Decrement critical nesting count */&lt;BR /&gt; __asm__ volatile&lt;BR /&gt; (&lt;BR /&gt; "mfsprg %0, 1 \n\t" // get critical nesting count from SPRG1&lt;BR /&gt; "se_subi %0, 1 \n\t" // decrement&lt;BR /&gt; "mtsprg 1, %0 \n\t" // store to SPRG1&lt;BR /&gt; //: "=kregs" (ulCriticalNesting)&lt;BR /&gt; : "=e" (ulCriticalNesting)&lt;BR /&gt; );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But then all VLE half-word instructions (the ones that begin with se_) are considered as&amp;nbsp;"syntax error".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How to fix this error? Attached is this project.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/68514iCF6893390D559A04/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/68515i96605B605EEE8628/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All&amp;nbsp;options as below:&lt;/P&gt;&lt;P&gt;-preprocess_assembly_files --gnu_asm -G -O0 -DSTART_FROM_FLASH -DTURN_ON_CPU0 -DDISABLE_SWT0 -DSEMIHOSTING -DCPU_MPC5744P -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317/Generated_Code" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317\SDK\rtos\FreeRTOS_C55" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317\SDK\rtos\FreeRTOS_C55\Source\portable\GCC\PowerPC_Z4" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317\SDK\rtos\FreeRTOS_C55\Source\portable\MemMang" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317\SDK\rtos\FreeRTOS_C55\Source\portable\GCC\PowerPC_Z4\hw" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317\SDK\rtos\FreeRTOS_C55\Source\include" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317/include" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317/Sources" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5741P/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5747C/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744P/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5748G/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746G/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/common" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5745B/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5748G/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744C/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5741P/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746B/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5748C/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5743P/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5747G/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5745C/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746C/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744P/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746B/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5742P/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5745C/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744B/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5747G/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744B/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5748C/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5747C/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5742P/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744C/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5745B/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5743P/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746C/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/drivers/inc" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746G/include" -gnu_asm_se_vle_registers -cpu=ppc5744pz425 -vle&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 20 Mar 2019 09:52:55 GMT</pubDate>
    <dc:creator>hanlingyun</dc:creator>
    <dc:date>2019-03-20T09:52:55Z</dc:date>
    <item>
      <title>assembler code se_ with syntax error</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/assembler-code-se-with-syntax-error/m-p/874311#M4523</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear NXP support,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried to compile FreeRTOS in S32 DS with&amp;nbsp;GHS&amp;nbsp;compiler.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As "kregs" is a special VLE constraint and GHS compiler cannot be aware of it. So I changed&amp;nbsp; "=kregs" (ulCriticalNesting) to&amp;nbsp; "=e" (ulCriticalNesting) and&amp;nbsp;enable&amp;nbsp;enable option "-gnu_asm_se_vle_register".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Increment critical nesting count */&lt;BR /&gt; __asm__ volatile&lt;BR /&gt; (&lt;BR /&gt; "mfsprg %0, 1 \n\t" // get critical nesting count from SPRG1&lt;BR /&gt; "se_addi %0, 1 \n\t" // increment&lt;BR /&gt; "mtsprg 1, %0 \n\t" // store to SPRG1&lt;BR /&gt; // "=kregs" (ulCriticalNesting)&lt;BR /&gt; : "=e" (ulCriticalNesting)&lt;BR /&gt; );&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;static portFORCE_INLINE UBaseType_t portDECREMENT_CRITICAL_NESTING( void )&lt;BR /&gt;{&lt;BR /&gt; UBaseType_t ulCriticalNesting;&lt;/P&gt;&lt;P&gt;/* Decrement critical nesting count */&lt;BR /&gt; __asm__ volatile&lt;BR /&gt; (&lt;BR /&gt; "mfsprg %0, 1 \n\t" // get critical nesting count from SPRG1&lt;BR /&gt; "se_subi %0, 1 \n\t" // decrement&lt;BR /&gt; "mtsprg 1, %0 \n\t" // store to SPRG1&lt;BR /&gt; //: "=kregs" (ulCriticalNesting)&lt;BR /&gt; : "=e" (ulCriticalNesting)&lt;BR /&gt; );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But then all VLE half-word instructions (the ones that begin with se_) are considered as&amp;nbsp;"syntax error".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How to fix this error? Attached is this project.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/68514iCF6893390D559A04/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/68515i96605B605EEE8628/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All&amp;nbsp;options as below:&lt;/P&gt;&lt;P&gt;-preprocess_assembly_files --gnu_asm -G -O0 -DSTART_FROM_FLASH -DTURN_ON_CPU0 -DDISABLE_SWT0 -DSEMIHOSTING -DCPU_MPC5744P -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317/Generated_Code" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317\SDK\rtos\FreeRTOS_C55" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317\SDK\rtos\FreeRTOS_C55\Source\portable\GCC\PowerPC_Z4" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317\SDK\rtos\FreeRTOS_C55\Source\portable\MemMang" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317\SDK\rtos\FreeRTOS_C55\Source\portable\GCC\PowerPC_Z4\hw" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317\SDK\rtos\FreeRTOS_C55\Source\include" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317/include" -I"C:\Users\Administrator\workspaceS32DS.Power.2017.R1\MPC5744P_GHS_SDK_20190317/Sources" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5741P/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5747C/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744P/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5748G/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746G/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/common" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5745B/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5748G/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744C/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5741P/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746B/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5748C/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5743P/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5747G/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5745C/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746C/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744P/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746B/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5742P/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5745C/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744B/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5747G/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744B/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5748C/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5747C/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5742P/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5744C/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5745B/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5743P/include" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746C/startup" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/drivers/inc" -I"C:\NXP\S32DS_Power_v2017.R1\eclipse\../S32DS/S32_SDK_MPC574xx_EAR_0.8.2/platform/devices/MPC5746G/include" -gnu_asm_se_vle_registers -cpu=ppc5744pz425 -vle&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Mar 2019 09:52:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/assembler-code-se-with-syntax-error/m-p/874311#M4523</guid>
      <dc:creator>hanlingyun</dc:creator>
      <dc:date>2019-03-20T09:52:55Z</dc:date>
    </item>
  </channel>
</rss>

