<?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>LPC Microcontrollers中的主题 LPC55S69 TrustZone</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-TrustZone/m-p/1270008#M44833</link>
    <description>&lt;P&gt;Hi All :&lt;/P&gt;&lt;P&gt;I’m trying to use the non-Secure SysTick Timer in Non-Secure project of trustzone example “Hello World” from SDK_2.9.0_LPCXpresso55s69 (MCUXpresso IDE project) with my LPCXpresso55s69 board.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The System Tick Configuration (non-secure) “TZ_SysTick_Config_NS” runs successfully in non-secure world. (hello_world_ns.c )&amp;nbsp;&lt;/P&gt;&lt;P&gt;After trustzone example “Hello World” runs completely, nothing happened to the Handler function “SysTick_Handler” which added in non-sercure world. (hello_world_ns.c ) &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The same result presented if I try to copy and add another vector table initialization e.g.,&amp;nbsp;“g_pfnVectors_ns” in starup code for secure &amp;amp; non-secure project (~\lpcxpresso55s69_hello_world_s\startup\startup_lpc55s69_cm33_core0.c&amp;nbsp; &amp;amp; ~\lpcxpresso55s69_hello_world_ns\startup\startup_lpc55s69_cm33_core0.c )&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Non-secure vector base address specify to start address of non-secure world in secure project. ( hello_world_s.c )&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="347"&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set non-secure vector table */&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB_NS-&amp;gt;VTOR = NON_SECURE_START;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As we know, there are three system tick timers (SysTick timer) are present in the LPC55S69. Two inside the CPU0 (Secured and Non-Secured), and one inside the CPU1 (Non-Secured).&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can I use non-Secure SysTick Timer for my non-Secure application in non-Secure world?&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ref :&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;“The vector base address is banked between Secure and Non-secure state. VTOR_S contains the Secure vector base address, and VTOR_NS contains the Non-secure vector base address. These registers can be programmed by software, and also initialized at reset by the system” ( &lt;A href="https://developer.arm.com/documentation/100230/0002/functional-description/programmers-model/exceptions/exception-handling-and-prioritization" target="_blank" rel="noopener"&gt;https://developer.arm.com/documentation/100230/0002/functional-description/programmers-model/exceptions/exception-handling-and-prioritization&lt;/A&gt; )&amp;nbsp;&lt;/LI&gt;&lt;LI&gt;“two system tick timers in CPU0 in lpc55s69”&amp;nbsp;&lt;A href="https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FLPC-Microcontrollers%2Ftwo-system-tick-timers-in-CPU0-in-lpc55s69%2Fm-p%2F1001461&amp;amp;data=04%7C01%7CKen.Tseng%40wpi-group.com%7C1947533e9b624c0fd2c808d90a383019%7Cde047c79d4d94af391debc44b0581490%7C0%7C0%7C637552058702343942%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;amp;sdata=JMqR24R2G2Y6uq3qRqAQZ9ZjjVIKIzqztFIAGMHpFmk%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;https://community.nxp.com/t5/LPC-Microcontrollers/two-system-tick-timers-in-CPU0-in-lpc55s69/m-p/1001461&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;“The system supports two separate interrupt vector tables for secure and non-secure code execution. This interrupt assignment is controlled during Secure state code execution via the NVIC (nested vector interrupt controller).” ( &lt;A href="https://www.keil.com/pack/doc/CMSIS/Core/html/using_TrustZone_pg.html" target="_blank" rel="noopener"&gt;https://www.keil.com/pack/doc/CMSIS/Core/html/using_TrustZone_pg.html&lt;/A&gt; )&lt;/LI&gt;&lt;/OL&gt;</description>
    <pubDate>Thu, 29 Apr 2021 02:38:21 GMT</pubDate>
    <dc:creator>kentseng</dc:creator>
    <dc:date>2021-04-29T02:38:21Z</dc:date>
    <item>
      <title>LPC55S69 TrustZone</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-TrustZone/m-p/1270008#M44833</link>
      <description>&lt;P&gt;Hi All :&lt;/P&gt;&lt;P&gt;I’m trying to use the non-Secure SysTick Timer in Non-Secure project of trustzone example “Hello World” from SDK_2.9.0_LPCXpresso55s69 (MCUXpresso IDE project) with my LPCXpresso55s69 board.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The System Tick Configuration (non-secure) “TZ_SysTick_Config_NS” runs successfully in non-secure world. (hello_world_ns.c )&amp;nbsp;&lt;/P&gt;&lt;P&gt;After trustzone example “Hello World” runs completely, nothing happened to the Handler function “SysTick_Handler” which added in non-sercure world. (hello_world_ns.c ) &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The same result presented if I try to copy and add another vector table initialization e.g.,&amp;nbsp;“g_pfnVectors_ns” in starup code for secure &amp;amp; non-secure project (~\lpcxpresso55s69_hello_world_s\startup\startup_lpc55s69_cm33_core0.c&amp;nbsp; &amp;amp; ~\lpcxpresso55s69_hello_world_ns\startup\startup_lpc55s69_cm33_core0.c )&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Non-secure vector base address specify to start address of non-secure world in secure project. ( hello_world_s.c )&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="347"&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set non-secure vector table */&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB_NS-&amp;gt;VTOR = NON_SECURE_START;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As we know, there are three system tick timers (SysTick timer) are present in the LPC55S69. Two inside the CPU0 (Secured and Non-Secured), and one inside the CPU1 (Non-Secured).&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can I use non-Secure SysTick Timer for my non-Secure application in non-Secure world?&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ref :&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;“The vector base address is banked between Secure and Non-secure state. VTOR_S contains the Secure vector base address, and VTOR_NS contains the Non-secure vector base address. These registers can be programmed by software, and also initialized at reset by the system” ( &lt;A href="https://developer.arm.com/documentation/100230/0002/functional-description/programmers-model/exceptions/exception-handling-and-prioritization" target="_blank" rel="noopener"&gt;https://developer.arm.com/documentation/100230/0002/functional-description/programmers-model/exceptions/exception-handling-and-prioritization&lt;/A&gt; )&amp;nbsp;&lt;/LI&gt;&lt;LI&gt;“two system tick timers in CPU0 in lpc55s69”&amp;nbsp;&lt;A href="https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FLPC-Microcontrollers%2Ftwo-system-tick-timers-in-CPU0-in-lpc55s69%2Fm-p%2F1001461&amp;amp;data=04%7C01%7CKen.Tseng%40wpi-group.com%7C1947533e9b624c0fd2c808d90a383019%7Cde047c79d4d94af391debc44b0581490%7C0%7C0%7C637552058702343942%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;amp;sdata=JMqR24R2G2Y6uq3qRqAQZ9ZjjVIKIzqztFIAGMHpFmk%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;https://community.nxp.com/t5/LPC-Microcontrollers/two-system-tick-timers-in-CPU0-in-lpc55s69/m-p/1001461&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;“The system supports two separate interrupt vector tables for secure and non-secure code execution. This interrupt assignment is controlled during Secure state code execution via the NVIC (nested vector interrupt controller).” ( &lt;A href="https://www.keil.com/pack/doc/CMSIS/Core/html/using_TrustZone_pg.html" target="_blank" rel="noopener"&gt;https://www.keil.com/pack/doc/CMSIS/Core/html/using_TrustZone_pg.html&lt;/A&gt; )&lt;/LI&gt;&lt;/OL&gt;</description>
      <pubDate>Thu, 29 Apr 2021 02:38:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-TrustZone/m-p/1270008#M44833</guid>
      <dc:creator>kentseng</dc:creator>
      <dc:date>2021-04-29T02:38:21Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55S69 TrustZone</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-TrustZone/m-p/1270617#M44857</link>
      <description>&lt;P&gt;Hi, TZU,&lt;/P&gt;
&lt;P&gt;I attach an simple documentation, pls refer to it.&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;</description>
      <pubDate>Fri, 30 Apr 2021 02:57:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-TrustZone/m-p/1270617#M44857</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2021-04-30T02:57:30Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55S69 TrustZone</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-TrustZone/m-p/1271520#M44879</link>
      <description>&lt;P&gt;Dear Sir :&lt;/P&gt;&lt;P&gt;Thanks for your documentation for MRT0 module interrupt example in Non-secure world. ( GeneratingInterruptInNon-securityMode.pdf )&lt;BR /&gt;I’ll exercise it for Device specific interrupts with Positive IRQn values.&lt;BR /&gt;&lt;BR /&gt;By the way, the SysTick Timer uses dedicated exception vector : processor core exceptions which with negative IRQn values. e.g., Exception 15: System Tick Interrupt. SysTick_IRQn = -1&lt;BR /&gt;&lt;BR /&gt;After check the NVIC functions, nothing what I found to initial NVIC module if the processor core exceptions which with negative IRQn values.&lt;BR /&gt;&lt;BR /&gt;Do you have any idea for processor core exceptions which with negative IRQn values in Non-secure world ?&lt;BR /&gt;&lt;BR /&gt;Thanks!&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="kentseng_0-1620092937121.png" style="width: 765px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/143833i01097ECBF9C2D3E1/image-dimensions/765x535?v=v2" width="765" height="535" role="button" title="kentseng_0-1620092937121.png" alt="kentseng_0-1620092937121.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Ref : &lt;A href="https://www.keil.com/pack/doc/CMSIS/Core/html/group__NVIC__gr.html" target="_blank" rel="noopener"&gt;https://www.keil.com/pack/doc/CMSIS/Core/html/group__NVIC__gr.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 04 May 2021 01:52:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-TrustZone/m-p/1271520#M44879</guid>
      <dc:creator>kentseng</dc:creator>
      <dc:date>2021-05-04T01:52:43Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55S69 TrustZone</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-TrustZone/m-p/1272592#M44895</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Pls refer to the following figure which defines the priority of SysTick module, I copy it from the Cortex-M4 user manual.&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="xiangjun_rong_0-1620270024242.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/144011i05662CD6401A1618/image-size/medium?v=v2&amp;amp;px=400" role="button" title="xiangjun_rong_0-1620270024242.png" alt="xiangjun_rong_0-1620270024242.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 06 May 2021 03:12:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-TrustZone/m-p/1272592#M44895</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2021-05-06T03:12:15Z</dc:date>
    </item>
  </channel>
</rss>

