SPMA078 March   2021 TM4C1290NCPDT , TM4C1290NCPDT , TM4C1290NCZAD , TM4C1290NCZAD , TM4C1292NCPDT , TM4C1292NCPDT , TM4C1292NCZAD , TM4C1292NCZAD , TM4C1294KCPDT , TM4C1294KCPDT , TM4C1294NCPDT , TM4C1294NCPDT , TM4C1294NCZAD , TM4C1294NCZAD , TM4C1297NCZAD , TM4C1297NCZAD , TM4C1299KCZAD , TM4C1299KCZAD , TM4C1299NCZAD , TM4C1299NCZAD , TM4C129CNCPDT , TM4C129CNCPDT , TM4C129CNCZAD , TM4C129CNCZAD , TM4C129DNCPDT , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XKCZAD , TM4C129XNCZAD , TM4C129XNCZAD

 

  1.   Trademarks
  2. 1Introduction
    1. 1.1 Definitions
  3. 2Theory of Operation
    1. 2.1 Normal Use
    2. 2.2 Normal Endurance
    3. 2.3 High Endurance Use
    4. 2.4 Data Integrity
    5. 2.5 CRC Module
  4. 3Software Description
    1. 3.1 Environment
    2. 3.2 Files
    3. 3.3 Functions
      1. 3.3.1  FeeInit
      2. 3.3.2  FeeCheckDatasetValid
      3. 3.3.3  FeeFormat
      4. 3.3.4  FeeRead
      5. 3.3.5  FeeWrite
      6. 3.3.6  FeeGetStatus
      7. 3.3.7  FeeGetJobResults
      8. 3.3.8  FeeGetDatasetCounter
      9. 3.3.9  FeeGetVersionInformation
      10. 3.3.10 FeeMainFunction
  5. 4Execution Time
    1. 4.1 Read Time
    2. 4.2 Write Time
      1. 4.2.1 Write Time When no Erase is Required
      2. 4.2.2 Write Time when Sector Copy is Required
      3. 4.2.3 Write Time when Sector Copy is Required and Copy Sector is Full
      4. 4.2.4 Write Time with Interrupts
  6. 5Examples
    1. 5.1 Polling Fee Example
    2. 5.2 Interrupt Fee Example
    3. 5.3 Import, Program and Run Examples
      1. 5.3.1 To Import the Project into CCS, First Select "File" → "Import"
      2. 5.3.2 Select "CCS Projects" to Import the Example, Then Click "Next"
      3. 5.3.3 Provide the Path to Either the Unzipped Project by Selecting the First Radio Button or Import the Sip File Directly by Selecting the Second Radio Button. Click the "Copy Projects Into Workspace".
      4. 5.3.4 After the Project Path is Provided, it Will Show up as a Discovered Project. Click the "Finish" Button to Complete the Import.
      5. 5.3.5 Program the Example into the Flash Memory and Start Executing the Example
      6. 5.3.6 Configure the Serial Terminal Window
      7. 5.3.7 Run the Example
  7. 6Summary

Interrupt Fee Example

In both examples, when neither switch is depressed, the LEDs alternate at a rate of about ten times per second. This is accomplished with a simple software loop. When a switch is depressed, extra time is required to update the FEE dataset and output the value on the UART. This is usually not noticed by the casual observer. However, periodically the data sector and the copy sector must be erased. As seen in Section 4.2.3 this can add 90 ms or more. This delay can be minimized by using interrupts instead of polling to complete the EEPROM programming and to send the data out the UART.

To use EEPROM interrupts in the FEE driver define the symbol EEPROM_INTERRPTS. You can add this definition in the file feeConfig.h, or add it to Code Composer Studio’s predefined symbols section. This causes fee.c to enable the EEPROM interrupt after each attempt to write to the EEPROM and disable the interrupt in FeeMainFunction(). The EEPROM module will generate interrupts on completion of either a read or a write to the EEPROM. The interrupt on the read is not necessary because the read value is returned immediately. By enabling and disabling the EEPROM interrupt the FEE driver avoids the unnecessary interrupts on EEPROM reads.

In the example "FeeExampleInt", the file main.c also includes a flash interrupt service routine, FlashIntRoutine(). This routine is statically added to the vector table by adding it to the statup_ccs.c file. The flash interrupt service routine checks that the source of the flash interrupt is from the EEPROM module and then calls FeeMainFunction().

In this example UART0 is also serviced by interrupts. This is done by defining the symbol “UART_BUFFERED” in Code Composer Studio’s predefined symbols section and statically adding the function UARTStdioIntHandler() to startup_ccs.c.