<?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: Kinetis driver error kl c90tfs help me. in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-driver-error-kl-c90tfs-help-me/m-p/235445#M5400</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Erase the whole chip and try again by disableinterrupts before calling initeeprom.&lt;/P&gt;&lt;P&gt;If error still happends, check whether sectorAddress is within the flash area. Reading of non-existing address will cause fault interrupt.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Jun 2013 15:53:24 GMT</pubDate>
    <dc:creator>DerekLau</dc:creator>
    <dc:date>2013-06-24T15:53:24Z</dc:date>
    <item>
      <title>Kinetis driver error kl c90tfs help me.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-driver-error-kl-c90tfs-help-me/m-p/235444#M5399</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi I'm using the kl05 kinetis the TSS library and want to emulate the EEPROM using the c90tfs driver. When I call the function FSL_InitEeprom () generates an interrupt me of&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PE_ISR (Cpu_ivINT_Hard_Fault)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; / * This code can be changed using the CPU component property "Build Options / Unhandled int code" * /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PE_DEBUGHALT ();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp; Specifically there is the interruption in the line 392 of the file "ee_high_level.c"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; / * If it is not first time initialization * /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; / * Check if the current field has been Identified active * /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (EE_ERASED_STATE_32 == g_currentActiveSector)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; / * If the current active has not been Identified industry,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then the first turn before the alternative is the current active industry sectors * /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sectorAddress = PREV_SECTOR (altSectorAddress);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;----&amp;gt; here --- &amp;gt;&amp;gt;&amp;gt; sectorStatus = READ32 (sectorAddress);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; / * The first turn before the alternative sector, the industries is the latest Active field * /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (EE_SECTOR_STATUS_ACTIVE! = sectorStatus)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&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; sectorAddress = PREV_SECTOR (sectorAddress);&lt;/P&gt;&lt;P&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; sectorStatus = READ32 (sectorAddress);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_currentActiveSector = sectorAddress;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_freeSpaceAddress = sectorAddress + EE_SECTOR_SIZE - EE_SECTOR_WASTE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my master code is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main (void)&lt;/P&gt;&lt;P&gt;/ * lint-restore Enable MISRA rule (6.3) checking. * /&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; / * Variable local Write your definition here * /&lt;/P&gt;&lt;P&gt;&amp;nbsp; / / Delay_ms (500) / / DELAY MANDATORY for stability&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; / *** Processor Expert internal initialization. DO NOT REMOVE THIS CODE! *** /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PE_low_level_init ();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; / *** End of Processor Expert internal initialization. *** /&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; / * Write your code here * /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; / * For example: for (;;) {} * /&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; UINT32 fnSize = 0x200;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; UINT32 fnSrc = (UINT32) FSL_FlashCommandSequence - 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; UINT32 fnDest = (UINT32) __ram_for_command_sequence_func;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CopyToRAM (fnDest, fnSize, fnSrc);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; / / Assign value to the global function pointer for FlashCommandSequence. / /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; / / The EED will use this pointer whenever service calls FlashCommandSequence it. / /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; g_pFlashCommandSequence = (pFLASHCOMMANDSEQUENCE) (fnDest + 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; returnCode = FSL_DeinitEeprom ();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (EE_OK! = returnCode)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ErrorTrap ();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; returnCode = FSL_InitEeprom () ;/ / FSL_DeinitEeprom ();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (EE_OK! = returnCode) {ErrorTrap ();}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; WaitEepromReady ();&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Jun 2013 15:13:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-driver-error-kl-c90tfs-help-me/m-p/235444#M5399</guid>
      <dc:creator>alejandro_df</dc:creator>
      <dc:date>2013-06-24T15:13:05Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis driver error kl c90tfs help me.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-driver-error-kl-c90tfs-help-me/m-p/235445#M5400</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Erase the whole chip and try again by disableinterrupts before calling initeeprom.&lt;/P&gt;&lt;P&gt;If error still happends, check whether sectorAddress is within the flash area. Reading of non-existing address will cause fault interrupt.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Jun 2013 15:53:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-driver-error-kl-c90tfs-help-me/m-p/235445#M5400</guid>
      <dc:creator>DerekLau</dc:creator>
      <dc:date>2013-06-24T15:53:24Z</dc:date>
    </item>
  </channel>
</rss>

