<?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 S32K116(EVAL) - EEE Write access / Partitioning under OpenSDA / P&amp;E in S32K</title>
    <link>https://community.nxp.com/t5/S32K/S32K116-EVAL-EEE-Write-access-Partitioning-under-OpenSDA-P-E/m-p/786278#M2529</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello NXP!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am having difficulties&amp;nbsp;when trying to debug with said debug configuration&amp;nbsp;in conjunction with EEE-Write accesses and Flash partitioning.&lt;/P&gt;&lt;P&gt;* Tested with S32 Design studio (gcc) (Issues 1 + 2) and IAR workbench (IAR compiler) (Issue 2)&lt;/P&gt;&lt;P&gt;* Used S32K116 - Example project as basis for S32DS&lt;/P&gt;&lt;P&gt;* Used&amp;nbsp;NXP flash drivers (Issues 1 + 2)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Issues:&lt;/P&gt;&lt;P&gt;1) Partitioning in SW&lt;/P&gt;&lt;P&gt;Target is empty / completly erased and You want to use NXP flash driver&amp;nbsp;FLASH_DRV_DEFlashPartition in order to partition while debugging.&lt;/P&gt;&lt;P&gt;If You do not place a breakpoint within&amp;nbsp;FLASH_DRV_DEFlashPartition(),&amp;nbsp;it breaks debugging (don't know if program counter runs amok or something else happens, but You have to leave debug session and restart it).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) Writing to EEE&lt;/P&gt;&lt;P&gt;If You do not step through every single copy-step (1/2/4 byte at a time), but try to step over&amp;nbsp;FLASH_DRV_EEEWrite() instead, debug process does not work anymore and You have to start a new debug session.&lt;/P&gt;&lt;P&gt;If I perform each indiviual 4/2/1 - byte copy steps, EEE works (Retains new data after removing power and powering on again).&lt;/P&gt;&lt;P&gt;(Read accesses to EEE work just fine)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Debugging including write access to EEE is pratically impossible this way.&lt;/P&gt;&lt;P&gt;Has anyone else&amp;nbsp;had the same experience?&lt;/P&gt;&lt;P&gt;Is it the OpenSDA/P&amp;amp;E drivers causing this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sascha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 14 Aug 2018 12:19:59 GMT</pubDate>
    <dc:creator>huffymchuf</dc:creator>
    <dc:date>2018-08-14T12:19:59Z</dc:date>
    <item>
      <title>S32K116(EVAL) - EEE Write access / Partitioning under OpenSDA / P&amp;E</title>
      <link>https://community.nxp.com/t5/S32K/S32K116-EVAL-EEE-Write-access-Partitioning-under-OpenSDA-P-E/m-p/786278#M2529</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello NXP!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am having difficulties&amp;nbsp;when trying to debug with said debug configuration&amp;nbsp;in conjunction with EEE-Write accesses and Flash partitioning.&lt;/P&gt;&lt;P&gt;* Tested with S32 Design studio (gcc) (Issues 1 + 2) and IAR workbench (IAR compiler) (Issue 2)&lt;/P&gt;&lt;P&gt;* Used S32K116 - Example project as basis for S32DS&lt;/P&gt;&lt;P&gt;* Used&amp;nbsp;NXP flash drivers (Issues 1 + 2)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Issues:&lt;/P&gt;&lt;P&gt;1) Partitioning in SW&lt;/P&gt;&lt;P&gt;Target is empty / completly erased and You want to use NXP flash driver&amp;nbsp;FLASH_DRV_DEFlashPartition in order to partition while debugging.&lt;/P&gt;&lt;P&gt;If You do not place a breakpoint within&amp;nbsp;FLASH_DRV_DEFlashPartition(),&amp;nbsp;it breaks debugging (don't know if program counter runs amok or something else happens, but You have to leave debug session and restart it).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) Writing to EEE&lt;/P&gt;&lt;P&gt;If You do not step through every single copy-step (1/2/4 byte at a time), but try to step over&amp;nbsp;FLASH_DRV_EEEWrite() instead, debug process does not work anymore and You have to start a new debug session.&lt;/P&gt;&lt;P&gt;If I perform each indiviual 4/2/1 - byte copy steps, EEE works (Retains new data after removing power and powering on again).&lt;/P&gt;&lt;P&gt;(Read accesses to EEE work just fine)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Debugging including write access to EEE is pratically impossible this way.&lt;/P&gt;&lt;P&gt;Has anyone else&amp;nbsp;had the same experience?&lt;/P&gt;&lt;P&gt;Is it the OpenSDA/P&amp;amp;E drivers causing this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sascha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Aug 2018 12:19:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K116-EVAL-EEE-Write-access-Partitioning-under-OpenSDA-P-E/m-p/786278#M2529</guid>
      <dc:creator>huffymchuf</dc:creator>
      <dc:date>2018-08-14T12:19:59Z</dc:date>
    </item>
    <item>
      <title>Re: S32K116(EVAL) - EEE Write access / Partitioning under OpenSDA / P&amp;E</title>
      <link>https://community.nxp.com/t5/S32K/S32K116-EVAL-EEE-Write-access-Partitioning-under-OpenSDA-P-E/m-p/786279#M2530</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Update:&lt;/P&gt;&lt;P&gt;I made a big mistake :S&lt;/P&gt;&lt;P&gt;I&amp;nbsp;initialized Callback part of Flash-Driver-structure NULL instead of NULL_CALLBACK. ( flashSSDConfig.CallBack = NULL instead of flashSSDConfig.CallBack = NULL_CALLBACK);&lt;/P&gt;&lt;P&gt;This should explain why my program ran into default-ISR when calling&amp;nbsp;FLASH_DRV_DEFlashPartition() and&amp;nbsp;FLASH_DRV_EEEWrite().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Still there is one main issue remaining.&lt;/P&gt;&lt;P&gt;I do not want to wait&amp;nbsp;after each write-access to EEE for the write operation to complete, which is why I only used&amp;nbsp;&lt;SPAN&gt;FLASH_DRV_EEEWrite() for testing purposes.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Meaning if You write something like this instead of using&amp;nbsp;&lt;SPAN&gt;FLASH_DRV_EEEWrite():&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Size &amp;gt; 4, address starting at FlexRAM-Startaddress&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;for(uint32_t Idx_U32 = 0; Idx_U32 &amp;lt; size; Idx_U32+=4)&lt;BR /&gt; {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;*(volatile uint32_t *)address = sourceBuffer[Idx_U32];&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;address+=4;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;-&amp;gt;&amp;nbsp;You get issues as described in this thread.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only if You wait, this will succeed.&lt;/P&gt;&lt;P&gt;for(uint32_t Idx_U32 = 0; Idx_U32 &amp;lt; size; Idx_U32+=4)&lt;BR /&gt; {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;*(volatile uint32_t *)address = sourceBuffer[Idx_U32];&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;address+=4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Wait till EEERDY bit is set&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (0U == (FTFx_FCNFG &amp;amp; FTFx_FCNFG_EEERDY_MASK))&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is this behavior intended?&lt;/P&gt;&lt;P&gt;Should You have to wait after each write access before starting the next?&lt;/P&gt;&lt;P&gt;I read through AN11983 and did not get this impression.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Aug 2018 09:19:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K116-EVAL-EEE-Write-access-Partitioning-under-OpenSDA-P-E/m-p/786279#M2530</guid>
      <dc:creator>huffymchuf</dc:creator>
      <dc:date>2018-08-18T09:19:41Z</dc:date>
    </item>
    <item>
      <title>Re: S32K116(EVAL) - EEE Write access / Partitioning under OpenSDA / P&amp;E</title>
      <link>https://community.nxp.com/t5/S32K/S32K116-EVAL-EEE-Write-access-Partitioning-under-OpenSDA-P-E/m-p/786280#M2531</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;After reading through the AN11983 once more and looking into Your example code (&lt;A href="https://community.nxp.com/docs/DOC-340114"&gt;Example: S32K144 EEEPROM usage&lt;/A&gt;&amp;nbsp;), I realized that I overlooked this info.&lt;/P&gt;&lt;P&gt;In essence: You do have to wait after every write access.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for wasting Your time.&lt;/P&gt;&lt;P&gt;I got the wrong impression that You could create (big) write jobs and let the controller handle them in the background.&lt;/P&gt;&lt;P&gt;(I previously worked with a S12XE controller, and there You could simply change EEE-RAM contents as You liked, so I expected a similar behavior here).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Aug 2018 08:56:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K116-EVAL-EEE-Write-access-Partitioning-under-OpenSDA-P-E/m-p/786280#M2531</guid>
      <dc:creator>huffymchuf</dc:creator>
      <dc:date>2018-08-20T08:56:36Z</dc:date>
    </item>
  </channel>
</rss>

