<?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>MCUXpresso GeneralのトピックRe: Is the connectivity framework panic() implementation correct?</title>
    <link>https://community.nxp.com/t5/MCUXpresso-General/Is-the-connectivity-framework-panic-implementation-correct/m-p/984320#M2758</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Stephen,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Than you for your feedback.&amp;nbsp;&lt;/P&gt;&lt;P&gt;We are checking this workaround in our stack software, however, you could implement this by your side, I will get in contact with the R&amp;amp;D team for this solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 28 Jan 2020 03:26:23 GMT</pubDate>
    <dc:creator>mario_castaneda</dc:creator>
    <dc:date>2020-01-28T03:26:23Z</dc:date>
    <item>
      <title>Is the connectivity framework panic() implementation correct?</title>
      <link>https://community.nxp.com/t5/MCUXpresso-General/Is-the-connectivity-framework-panic-implementation-correct/m-p/984319#M2757</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In the connectivity framework the implementation of panic() mixes C and assembler code like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;void panic( panicId_t id, uint32_t location, uint32_t extra1, uint32_t extra2 )
{
#if gUsePanic_c
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Save the Link Register */
&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile uint32_t savedLR = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm("push {r2}&amp;nbsp; ");
&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm("push {LR} ");
&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm("pop&amp;nbsp; {r2} ");
&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm("str&amp;nbsp; r2, [SP, #4]");
&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm("pop {r2}");

&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.id = id;
&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.location = location;
&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.extra1 = extra1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.extra2 = extra2;
&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.linkRegister = savedLR;
&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.cpsr_contents&amp;nbsp;&amp;nbsp; = 0;
...&lt;/PRE&gt;&lt;P&gt;This ASM access to this variable ("str r2, [SP, #4]") appears to make the assumption that the variable "savedLR" will be placed on the stack in a particular place, but I don't think that's necessarily the case under all optimisation levels.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example, when compiling with -oS (optimise for size) I get the following disassembly (my markup in brackets):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;00000000 &amp;lt;panic&amp;gt;:
&amp;nbsp;&amp;nbsp; 0:&amp;nbsp;&amp;nbsp; &amp;nbsp;b537&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;push&amp;nbsp;&amp;nbsp; &amp;nbsp;{r0, r1, r2, r4, r5, lr}
&amp;nbsp;&amp;nbsp; 2:&amp;nbsp;&amp;nbsp; &amp;nbsp;2500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;movs&amp;nbsp;&amp;nbsp; &amp;nbsp;r5, #0
&amp;nbsp;&amp;nbsp; 4:&amp;nbsp;&amp;nbsp; &amp;nbsp;9501&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r5, [sp, #4]
&amp;nbsp;&amp;nbsp; 6:&amp;nbsp;&amp;nbsp; &amp;nbsp;b404&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;push&amp;nbsp;&amp;nbsp; &amp;nbsp;{r2}
&amp;nbsp;&amp;nbsp; 8:&amp;nbsp;&amp;nbsp; &amp;nbsp;b500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;push&amp;nbsp;&amp;nbsp; &amp;nbsp;{lr}
&amp;nbsp;&amp;nbsp; a:&amp;nbsp;&amp;nbsp; &amp;nbsp;bc04&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pop&amp;nbsp;&amp;nbsp; &amp;nbsp;{r2}
&amp;nbsp;&amp;nbsp; c:&amp;nbsp;&amp;nbsp; &amp;nbsp;9201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r2, [sp, #4]
&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; e:&amp;nbsp;&amp;nbsp; &amp;nbsp;bc04&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pop&amp;nbsp;&amp;nbsp; &amp;nbsp;{r2}&lt;/STRONG&gt;&lt;/SPAN&gt;
&amp;nbsp; 10:&amp;nbsp;&amp;nbsp; &amp;nbsp;4c05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ldr&amp;nbsp;&amp;nbsp; &amp;nbsp;r4, [pc, #20]&amp;nbsp;&amp;nbsp; &amp;nbsp;; (28 &amp;lt;panic+0x28&amp;gt;)
&amp;nbsp; 12:&amp;nbsp;&amp;nbsp; &amp;nbsp;60e3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r3, [r4, #12]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (extra2)
&amp;nbsp; 14:&amp;nbsp;&amp;nbsp; &amp;nbsp;9b01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ldr&amp;nbsp;&amp;nbsp; &amp;nbsp;r3, [sp, #4]
&amp;nbsp; 16:&amp;nbsp;&amp;nbsp; &amp;nbsp;6020&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r0, [r4, #0]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (id)
&amp;nbsp; 18:&amp;nbsp;&amp;nbsp; &amp;nbsp;6061&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r1, [r4, #4]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (location)
&amp;nbsp; 1a:&amp;nbsp;&amp;nbsp; &amp;nbsp;60a2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r2, [r4, #8]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (extra1)
&amp;nbsp; 1c:&amp;nbsp;&amp;nbsp; &amp;nbsp;6123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r3, [r4, #16]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (linkRegister)
&amp;nbsp; 1e:&amp;nbsp;&amp;nbsp; &amp;nbsp;6165&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r5, [r4, #20]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cpsr_contents)
&amp;nbsp; 20:&amp;nbsp;&amp;nbsp; &amp;nbsp;f7ff fffe &amp;nbsp;&amp;nbsp; &amp;nbsp;bl&amp;nbsp;&amp;nbsp; &amp;nbsp;0 &amp;lt;OSA_InterruptDisable&amp;gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;20: R_ARM_THM_CALL&amp;nbsp;&amp;nbsp; &amp;nbsp;OSA_InterruptDisable
&amp;nbsp; 24:&amp;nbsp;&amp;nbsp; &amp;nbsp;46c0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nop&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; (mov r8, r8)&lt;/PRE&gt;&lt;P&gt;As I understand it the instructions at offsets 8..a (push {lr}; pop {r2}) have the effect of copying lr into r2, and the instruction at offset c (str r2, [sp, &lt;STRONG&gt;#4&lt;/STRONG&gt;]) then puts the value of r2 (which is lr) onto the stack, which is mirrored by the instruction at offset 14 (ldr r3, [sp, &lt;STRONG&gt;#4&lt;/STRONG&gt;]) which picks the lr value off the stack.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem as I see it is that the intervening instruction at offset e (pop {r2}) alters the stack pointer between the store (offset c) and the load (offset 14).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now it could be that this code accidentally works, and it could be argued that it does not matter if we clobber the stack or read duff values as the processor is going to halt soon anyway, but what would be the right way of mixing C and ASM to get access to the link register value?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm thinking that the safe way to do this is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void panic( panicId_t id, uint32_t location, uint32_t extra1, uint32_t extra2 )&lt;BR /&gt;{&lt;BR /&gt;#if gUsePanic_c&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Save the Link Register */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile uint32_t savedLR;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm("mov %0, lr\n"&lt;BR /&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; : /* outputs */&amp;nbsp;&amp;nbsp; "=r" (savedLR)&lt;BR /&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; : /* no inputs */&lt;BR /&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; : /* no clobbers */);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.id = id;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.location = location;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.extra1 = extra1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.extra2 = extra2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.linkRegister = savedLR;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; panic_data.cpsr_contents&amp;nbsp;&amp;nbsp; = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Which compiles down to:&lt;/P&gt;&lt;PRE&gt;00000000 &amp;lt;panic&amp;gt;:
&amp;nbsp;&amp;nbsp; 0:&amp;nbsp;&amp;nbsp; &amp;nbsp;b513&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;push&amp;nbsp;&amp;nbsp; &amp;nbsp;{r0, r1, r4, lr}
&amp;nbsp;&amp;nbsp; 2:&amp;nbsp;&amp;nbsp; &amp;nbsp;4674&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;mov&amp;nbsp;&amp;nbsp; &amp;nbsp;r4, lr&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; (set r4 = LR)
&amp;nbsp;&amp;nbsp; 4:&amp;nbsp;&amp;nbsp; &amp;nbsp;9401&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r4, [sp, #4]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (set stacked savedLR = r4)
&amp;nbsp;&amp;nbsp; 6:&amp;nbsp;&amp;nbsp; &amp;nbsp;4c06&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ldr&amp;nbsp;&amp;nbsp; &amp;nbsp;r4, [pc, #24]&amp;nbsp;&amp;nbsp; &amp;nbsp;; (20 &amp;lt;panic+0x20&amp;gt;)
&amp;nbsp;&amp;nbsp; 8:&amp;nbsp;&amp;nbsp; &amp;nbsp;60e3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r3, [r4, #12]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (extra2)
&amp;nbsp;&amp;nbsp; a:&amp;nbsp;&amp;nbsp; &amp;nbsp;9b01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ldr&amp;nbsp;&amp;nbsp; &amp;nbsp;r3, [sp, #4]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (set r3 = stacked savedLR) 
&amp;nbsp;&amp;nbsp; c:&amp;nbsp;&amp;nbsp; &amp;nbsp;6020&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r0, [r4, #0]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (id)
&amp;nbsp;&amp;nbsp; e:&amp;nbsp;&amp;nbsp; &amp;nbsp;6123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r3, [r4, #16]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (linkRegister)
&amp;nbsp; 10:&amp;nbsp;&amp;nbsp; &amp;nbsp;2300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;movs&amp;nbsp;&amp;nbsp; &amp;nbsp;r3, #0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    (set r3 = 0)
&amp;nbsp; 12:&amp;nbsp;&amp;nbsp; &amp;nbsp;6061&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r1, [r4, #4]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (location)
&amp;nbsp; 14:&amp;nbsp;&amp;nbsp; &amp;nbsp;60a2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r2, [r4, #8]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (extra1)
&amp;nbsp; 16:&amp;nbsp;&amp;nbsp; &amp;nbsp;6163&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;str&amp;nbsp;&amp;nbsp; &amp;nbsp;r3, [r4, #20]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cspr_contents = r3 = 0)

&lt;/PRE&gt;&lt;P&gt;Thoughts?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Jan 2020 10:50:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-General/Is-the-connectivity-framework-panic-implementation-correct/m-p/984319#M2757</guid>
      <dc:creator>stephenlangstaf</dc:creator>
      <dc:date>2020-01-21T10:50:30Z</dc:date>
    </item>
    <item>
      <title>Re: Is the connectivity framework panic() implementation correct?</title>
      <link>https://community.nxp.com/t5/MCUXpresso-General/Is-the-connectivity-framework-panic-implementation-correct/m-p/984320#M2758</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Stephen,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Than you for your feedback.&amp;nbsp;&lt;/P&gt;&lt;P&gt;We are checking this workaround in our stack software, however, you could implement this by your side, I will get in contact with the R&amp;amp;D team for this solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Jan 2020 03:26:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-General/Is-the-connectivity-framework-panic-implementation-correct/m-p/984320#M2758</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2020-01-28T03:26:23Z</dc:date>
    </item>
  </channel>
</rss>

