5.4. FLS Module

5.4.1. Acronyms and Definitions

Abbreviation/Term

Explanation

AUTOSAR

Automotive Open System Architecture

RTE

Runtime Environment

BSW

Basic Software

MCAL

Micro Controller Abstraction Layer

MCU

Micro Controller Unit

API

Application Programming Interface

DET

Default Error Tracer

HW

Hardware

SW

Software

FLS

Flash Driver

MCU

Micro Controller Unit

OS

Operating System

5.4.2. Introduction

This document describes MCAL FLS Driver functionality and configuration details as per AUTOSAR version 4.3.1 .

Supported AUTOSAR Release

4.3.1

Supported Configuration Variants

Pre-Compile, Post-build

Vendor ID

FLS_VENDOR_ID (44)

Module ID

FLS_MODULE_ID (92)

The Flash Driver provides services for reading, writing, erasing memory and and a configuration interface for setting / resetting the write / erase protection of internal data flash.

  • Perform storage mode applications:

    • Read from flash.

    • Write to flash.

    • Erase flash.

    • Compare and Blank Check flash memory location.

FLS in AUTOSAR architecture

Fig. 5.9 FLS in AUTOSAR architecture

5.4.3. Functional Overview

The Flash Driver provides services for reading, writing, erasing the internal data flash memory on F29x device.

The Flash driver updates the wait states based on the MCU system cycle, and enable the sector protection. Before each flash write and erase, the driver grabs the flash semaphore, and release it after the job is done or failed.

The Fls_Erase, FLs_Write, Fls_Read, FLs_Compare, and Fls_BlankCheck are performed asynchronously within the FLS module’s main function. All others (Fls_Cancel, Fls_GetStatus, Fls_GetJobResult) are the synchronous functions of this module.

5.4.4. Hardware Features

5.4.4.1. Hardware Features Supported

The features of data flash include:

  1. One dedicated data Flash bank housed in Flash Controller 1 (FLC1), optimized for data bus read accesses

  2. The Flash Controller can program or erase a Data Flash bank while simultaneously reading from the other Program Flash banks

  3. Tight integration with the Safety and Security Unit (SSU) for security management and access control for Flash program, erase and read operations

  4. 128-bit-wide Flash programming, with configurable programming options

  5. Multiple sectors, with the ability to erase individual/specific sectors while leaving others programmed

  6. Code prefetch, block cache and data cache mechanisms for enhanced read performance for program code and data

  7. Configurable wait states to achieve the best performance at a given clock frequency

  8. Safety Features

    • ECC error detection in address bits, with reporting to the Error Signaling Module (ESM)

    • Supports ECC bits for single error correction and double error detection (SECDED)

  9. Integrated Flash program and erase state machines in the Flash Controller modules:

    • Simple Flash API algorithms

    • Fast erase and program times (refer to the device data manual for details)

  10. Automatic arbitration of data accesses between multiple initiators (CPUs, HSM, RTDMA and debugger accesses)

5.4.4.1.1. Hardware Features Not Supported

None

5.4.4.2. Non compliance

Below AUTOSAR requirements are not supported for Mcu Driver :
SWS_Fls_00155 : The function Fls_SetMode shall set the FLS module’s operation mode to the given “Mode” parameter.

Rejection Reason : No SPI interface/ No external flash

SWS_Fls_00156 : If development error detection for the module Fls is enabled: the function Fls_SetMode shall check that the FLS module is currently not busy. If this check fails, the function Fls_SetMode shall reject the set mode request and raise the development error code FLS_E_BUSY.

Rejection Reason : No SPI interface/ No external flash

SWS_Fls_00187 : The function Fls_SetMode shall be pre-compile time configurable On/Off by the configuration parameter FlsSetModeApi.

Rejection Reason : No SPI interface/ No external flash

5.4.5. Source files

Static source C Files are defined below

📦f29h85x_mcal
┣ 📂build
┣ 📂docs
┣ 📂drivers
┃ ┣ 📂BSW_Stubs
┃ ┣ 📂Can
┃ ┣ 📂Cdd_Adc
┃ ┣ 📂Cdd_Sent
┃ ┣ 📂Cdd_Xbar
┃ ┣ 📂Dio
┃ ┣ 📂Fls
┃ ┃ ┣ 📂include
┃ ┃ ┃ ┣ 📜Fls.h : Contains the APIs of the FLS driver to be used by upper layers.
┃ ┃ ┃ ┣ 📜Fls_Ctrl.h : Contains internal function declarations.
┃ ┃ ┃ ┗ 📜Fls_Priv.h : Contains the private function declarations.
┃ ┃ ┣ 📂src
┃ ┃ ┃ ┣ 📜Fls.c : Contains the implementation of the API’s for Fls driver.
┃ ┃ ┃ ┣ 📜Fls_Priv.c : Contains private function definitions which will interact with Flash APIs.
┃ ┃ ┃ ┗ 📜Fls_Ac.c : Contains internal functions definitions which will directly interact with hardware registers.
┃ ┃ ┗ 📜CMakeLists.txt
┃ ┣ 📂Gpt
┃ ┣ 📂hw_include
┃ ┣ 📂Lin
┃ ┣ 📂Mcal_Lib
┃ ┣ 📂Mcu
┃ ┣ 📂Port
┃ ┣ 📂Spi
┃ ┣ 📂Wdg
┣ 📂examples
┣ 📂plugins
┣ 📂CMakeLists.txt
┗ 📜CMakePresets.json

Plugin files are defined below in the table.

Plugin Files

Description

Fls_Cfg.h

Contains the Precompile switches

Fls_PBcfg.c

Contains all Post-Build Configured parameters

Fls_Cfg.c

Contains all Pre-Compile Configured parameters

FLS header file include structure

Fig. 5.10 FLS header file include structure

5.4.6. Module requirements

5.4.6.1. Memory Mapping

The driver follows the AUTOSAR memory mapping strategy. All memory sections should be stored in memory as per AUTOSAR specifications, considering initialization policy, alignment requirements, safety classification, and core scope where applicable.

Reference memory map files can be found at:

{MCAL_INSTALL_PATH}\drivers\BSW_Stubs\MemMap\include

The memory sections are organized according to AUTOSAR specifications to ensure proper placement of code and data in different memory regions based on their usage and access patterns.

5.4.6.2. Scheduling

Schedule Function API

Description

Fls_MainFunction

This function shall perform the processing of the flash read, write, erase, blank check and compare jobs.

5.4.6.3. Error handling

5.4.6.3.1. Development Error Reporting

The Fls Driver will report development errors on enabling FLS_DEV_ERROR_DETECT == STD_ON in Fls_Cfg.h.

The errors reported to DET module are described in the following table:

Type of Error

Related Error code

Value (Hex)

API service called with wrong parameter

FLS_E_PARAM_CONFIG

0x01

API service called with wrong parameter

FLS_E_PARAM_ADDRESS

0x02

API service called with wrong parameter

FLS_E_PARAM_LENGTH

0x03

API service called with wrong parameter

FLS_E_PARAM_DATA

0x04

API service used without module initialization

FLS_E_UNINIT

0x05

API called when module is busy

FLS_E_BUSY

0x06

API called with a Null Pointer

FLS_E_PARAM_POINTER

0x0A

API called with a mismatch in erase type and length provided

FLS_E_PARAM_ALIGNMENT

0x0C

The run time errors reported to DET module are described in the following table:

Type of Error

Related Error code

Value (Hex)

Erase verification (blank check) failed

FLS_E_VERIFY_ERASE_FAILED

0x07

Write verification (compare) failed

FLS_E_VERIFY_WRITE_FAILED

0x08

Timeout supervision (flash erase/write timeout check with published max times)

FLS_E_TIMEOUT

0x09

AUTOSAR requires that API functions check the validity of their parameters. The check in the below table shows the various Development Error Reporting: Assignment of checks to services are internal parameter checks of the API functions. These checks are for development error reporting and can be enabled or disabled. The following table shows which parameter checks are performed on which services:

5.4.6.4. Error Code

Check Services

FLS_E_PARAM_CONFIG

FLS_E_PARAM_ADDRESS

FLS_E_PARAM_LENGTH

FLS_E_PARAM_DATA

FLS_E_UNINIT

FLS_E_BUSY

FLS_E_PARAM_POINTER

Fls_Init

x

x

Fls_Erase

x

x

x

x

Fls_Read

x

x

x

x

x

Fls_Write

x

x

x

x

x

Fls_Compare

x

x

x

x

x

Fls_BlankCheck

x

x

x

x

Fls_GetJobResult

x

Fls_GetVersionInfo

x

Fls_MainFunction

x

Fls_Cancel

x

5.4.7. Used resources

5.4.7.1. Interrupt Handling

There is no hardware interrupt in Fls.

5.4.7.2. Instance support

CPU instances

supported

CPU 1

YES

CPU 2

NO

CPU 3

NO

5.4.7.3. Hardware-Software Mapping

Below image shows Fls driver Hardware-Software mapping. For more information related to HW/SW mapping, refer the F29 Reference Manual.

Fls HW/SW Mapping

Fig. 5.11 Fls HW/SW Mapping

5.4.8. Integration description

5.4.8.1. Dependent modules

5.4.8.1.1. DEM

FLS Production errors are reported to DEM ( Diagnostic Event Manager ) Module. The Fls module reports production errors to the Diagnostic Event Manager.

5.4.8.1.2. MCU

The hardware of the internal Fls hardware unit depends on the system clock, pre-scaler(s) and PLL. The FLS driver module will not take care of setting the registers that configure the clock, pre-scaler(s) and PLL (e.g. switching on/off the PLL) in its init functions. The MCU module must do this.

5.4.8.1.3. OS

The FLS driver uses timer and therefore there is a dependency on the OS, which configures the timer.

5.4.8.1.4. SchM

If multiple AUTOSAR runnables have access to the same Data Store Memory block, the exported AUTOSAR specification enforces data consistency by using an AUTOSAR exclusive area. With this specification, the runnables have mutually exclusive access to the per-instance memory global data, which prevents data corruption. Beside the OS, the BSW Scheduler provides functions that FLS module calls at begin and end of critical sections. This implementation requires 1 level of exclusive access to guard critical sections.

The data consistency mechanism that has to be applied to an ExclusiveArea might be domain, ECU or even project specific. The decision which mechanism has to be applied by RTE / Basic Software Scheduler is taken during ECU integration by setting the Exclusive Area configuration parameter RteExclusiveAreaImplMechanism. This parameter is an input for RTE generator. For FLS Module, data consistency and exclusive access to critical sections are required for the following sections as shown in the table below:

Exclusive Area Functions used

FLS Function calling Exclusive Area

Need for Exclusive Area

Recommended Exclusive Area Mapping

FLS_EXCLUSIVE_AREA_0

Fls_Erase
Fls_Write

To protect against multiple access for shared resources

OS_RESOURCE : If the FLS APIs are only called from pre-emptible task context, its recommended to use this mechanism as it takes care of resource access protection and task priority management.
None: If FLS APIs are only called from non pre-emptible task context or during init, its recommended to use this mechanism as multiple access protection to shared resource is not needed.

5.4.8.1.5. MemIf

This implementation depends on MemIf module and uses its imported types such as MemIf_JobResultType, MemIf_ModeType and MemIf_StatusType.

5.4.8.1.6. Fee

This implementation depends on Fee module for callback notification to notify the module environment about job end and job error.

5.4.8.1.7. DET

The module FLS depends on the DET (by default) in order to report development errors. Detection and reporting of development errors can be enabled or disabled by the switch FLS_DEV_ERROR_DETECT = STD_ON in the Fls_Cfg.h

In development mode, the Fls module reports development error through the Det_ReportError function of module DET.

The following table represents the service IDs:

Service ID

Code

Service

FLS_SID_INIT

0x00

Fls_Init

FLS_SID_ERASE

0x01

Fls_Erase

FLS_SID_WRITE

0x02

FLS_Write()

FLS_SID_CANCEL

0x03

FLS_Cancel()

FLS_SID_GET_STATUS

0x04

FLS_GetStatus()

FLS_SID_GET_JOB_RESULT

0x05

Fls_GetJobResult()

FLS_SID_READ

0x07

FLS_Read()

FLS_SID_COMPARE

0x08

FLS_Compare()

FLS_SID_GET_VERSION_INFO

0x10

Fls_GetVersionInfo()

FLS_SID_BLANK_CHECK

0x0A

FLS_BlankCheck()

FLS_SID_MAIN_FUNCTION

0x06

FLS_MainFunction()

5.4.8.2. Multi-core and Resource allocator

The FLS module is not managed by the Resource Allocator. The Flash controller on F29H85x is a system-level peripheral that is not represented in the Resource Allocator configuration. The FLS MCAL driver can access Data Flash only from CPU1. No Resource Allocator instance allocation is needed for the FLS module.

5.4.9. Configuration

The Fls can be configured as Post-Build or Pre-Compile variant, using EB tresos tool.

Variants

Configured Files

PostBuild

Fls_PBcfg.c , Fls_Cfg.h

Pre-Compile

Fls_Cfg.c , Fls_Cfg.h

The generated configuration files should not be modified manually. The config tool Elektrobit Tresos should be used to modify the configuration files.

5.4.9.1. Configuration Parameters

5.4.9.1.1. FlsConfigSet

Container for runtime configuration parameters of the flash driver.

5.4.9.1.1.1. FlsAcErase

Item

Name

FlsAcErase

Description

Address offset in RAM to which the erase flash access code shall be loaded.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

100

Max-value

4294967295

Min-value

0

5.4.9.1.1.2. FlsAcWrite

Item

Name

FlsAcWrite

Description

Address offset in RAM to which the write flash access code shall be loaded.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

16

Max-value

4294967295

Min-value

0

5.4.9.1.1.3. FlsCallCycle

Item

Name

FlsCallCycle

Description

Cycle time of calls of the flash driver’s main function (in seconds).

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

0.01

Max-value

100.0

Min-value

0.0

5.4.9.1.1.4. FlsDefaultMode

Item

Name

FlsDefaultMode

Description

This parameter is the default FLS device mode after initialization.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

MEMIF_MODE_SLOW

Range

MEMIF_MODE_FAST
MEMIF_MODE_SLOW

5.4.9.1.1.5. FlsJobEndNotification

Item

Name

FlsJobEndNotification

Description

Mapped to the job end notification routine provided by some upper layer module, typically the Fee module.

Multiplicity-Configuration-Class

Post-Build Time

VARIANT-POST-BUILD

Pre-Compile Time

VARIANT-PRE-COMPILE

Origin

AUTOSAR_ECUC

Post-build-variant-multiplicity

true

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

NULL_PTR

5.4.9.1.1.6. FlsJobErrorNotification

Item

Name

FlsJobErrorNotification

Description

Mapped to the job error notification routine provided by some upper layer module, typically the Fee module.

Multiplicity-Configuration-Class

Post-Build Time

VARIANT-POST-BUILD

Pre-Compile Time

VARIANT-PRE-COMPILE

Origin

AUTOSAR_ECUC

Post-build-variant-multiplicity

true

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

NULL_PTR

5.4.9.1.1.7. FlsMaxReadFastMode

Item

Name

FlsMaxReadFastMode

Description

The maximum number of bytes to read or compare in one cycle of the flash driver’s job processing function in fast mode.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

16

Max-value

4294967295

Min-value

0

5.4.9.1.1.8. FlsMaxWriteFastMode

Item

Name

FlsMaxWriteFastMode

Description

The maximum number of bytes to read or compare in one cycle of the flash driver’s job processing function in fast mode.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

16

Max-value

4294967295

Min-value

0

5.4.9.1.1.9. FlsMaxReadNormalMode

Item

Name

FlsMaxReadNormalMode

Description

The maximum number of bytes to read or compare in one cycle of the flash driver’s job processing function in normal mode.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

16

Max-value

4294967295

Min-value

0

5.4.9.1.1.10. FlsMaxWriteNormalMode

Item

Name

FlsMaxWriteNormalMode

Description

The maximum number of bytes to write in one cycle of the flash driver’s job processing function in normal mode. It must be 8 bytes or 16 bytes

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

16

Max-value

16

Min-value

8

5.4.9.1.1.11. FlsProtection

Item

Name

FlsProtection

Description

Erase/write protection settings. Only relevant if supported by hardware. Currently, not supported by Hardware.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

0

Max-value

4294967295

Min-value

0

5.4.9.1.1.12. Fls_CMDWEPROTA

Item

Name

Fls_CMDWEPROTA

Description

Erase/write protection settings. CMDWEPROTA controls program/erase protection for first 32 sectors. Each bit allows users to enable/disable protection for each sector. Eg: Bit 0 allows protection configuration for Sectors 0. A value of 0 disables protection and a value of 1 enables protection from program/erase

Origin

Texas Instruments

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

0

Max-value

4294967295

Min-value

0

5.4.9.1.1.13. Fls_CMDWEPROTB

Item

Name

Fls_CMDWEPROTB

Description

Erase/write protection settings. CMDWEPROTB controls program/erase protection for sectors 32 to 255. Each bit allows users to enable/disable protection for a group of eight sectors. Note - The first 4 bit fields are reserved (bits 0-3) and protection of bit 4 and above would begin at sector 32. Eg: Bit 4 allows protection configuration for Sectors 32-39. A value of 0 disables protection and a value of 1 enables protection from program/erase

Origin

Texas Instruments

Post-Build-Variant-Value

true

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

0

Max-value

4294967295

Min-value

0

5.4.9.1.1.14. FlsExternalDriver

This container is present for external Flash drivers only. Internal Flash drivers do not use the parameter listed in this container, hence its multiplicity is 0 for internal drivers. Currently, not supported as only internal flash is present.

5.4.9.1.1.15. FlsSpiReference

Item

Name

FlsSpiReference

Description

Reference to SPI sequence (required for external Flash drivers).

Multiplicity-Configuration-Class

Post-Build Time

VARIANT-POST-BUILD

Pre-Compile Time

VARIANT-PRE-COMPILE

Origin

AUTOSAR_ECUC

Post-build-variant-multiplicity

false

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

5.4.9.1.1.16. FlsSectorList

List of flashable sectors and pages.

5.4.9.1.1.17. FlsSector

Configuration description of a flashable sector

5.4.9.1.1.18. FlsNumberOfSectors

Item

Name

FlsNumberOfSectors

Description

Number of continuous sectors with identical values for FlsSectorSize and

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

1

Max-value

65535

Min-value

0

5.4.9.1.1.19. FlsPageSize

Item

Name

FlsPageSize

Description

Size of one page of this sector.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

256

Max-value

4294967295

Min-value

0

5.4.9.1.1.20. FlsSectorSize

Item

Name

FlsSectorSize

Description

Size of this sector.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

2048

Max-value

4294967295

Min-value

0

5.4.9.1.1.21. FlsSectorStartaddress

Item

Name

FlsSectorStartaddress

Description

Start address of this sector.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

0

Max-value

4294967295

Min-value

0

5.4.9.1.2. FlsGeneral

Container for general parameters of the flash driver. These parameters are always pre-compile.

5.4.9.1.2.1. FlsAcLoadOnJobStart

Item

Name

FlsAcLoadOnJobStart

Description

The flash driver shall load the flash access code to RAM whenever an erase or write job is started and unload (overwrite) it after that job has been finished or canceled.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

false

5.4.9.1.2.2. FlsBaseAddress

Item

Name

FlsBaseAddress

Description

The flash memory start address (see also SWS_Fls_00208 and SWS_Fls_00209).

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

281018368

Max-value

4294967295

Min-value

0

5.4.9.1.2.3. FlsTotalSize

Item

Name

FlsTotalSize

Description

The total amount of flash memory in bytes (see also SWS_Fls_00208 and SWS_Fls_00209).

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

262144

Max-value

4294967295

Min-value

0

5.4.9.1.2.4. FlsNumBanks

Item

Name

FlsNumBanks

Description

The number of banks present in the current device.

Origin

Texas Instruments

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

1

Max-value

4294967295

Min-value

0

5.4.9.1.2.5. FlsSectorSizeInBytes

Item

Name

FlsSectorSizeInBytes

Description

The flash memory’s sector size in bytes.

Origin

Texas Instruments

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

2048

Max-value

4294967295

Min-value

0

5.4.9.1.2.6. FlsBlankCheckApi

Item

Name

FlsBlankCheckApi

Description

Compile switch to enable/disable the Fls_BlankCheck function.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

false

5.4.9.1.2.7. FlsCancelApi

Item

Name

FlsCancelApi

Description

Compile switch to enable and disable the Fls_Cancel function.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

5.4.9.1.2.8. FlsCompareApi

Item

Name

FlsCompareApi

Description

Compile switch to enable and disable the Fls_Compare function.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

false

5.4.9.1.2.9. FlsDevErrorDetect

Item

Name

FlsDevErrorDetect

Description

Switches the development error detection and notification on or off.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

5.4.9.1.2.10. FlsDriverIndex

Item

Name

FlsDriverIndex

Description

Index of the driver, used by FEE.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

0

Max-value

254

Min-value

0

5.4.9.1.2.11. FlsEraseVerificationEnabled

Item

Name

FlsEraseVerificationEnabled

Description

Compile switch to enable erase verification.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

false

5.4.9.1.2.12. FlsGetJobResultApi

Item

Name

FlsGetJobResultApi

Description

Compile switch to enable and disable the Fls_GetJobResult function.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

5.4.9.1.2.13. FlsGetStatusApi

Item

Name

FlsGetStatusApi

Description

Compile switch to enable and disable the Fls_GetStatus function.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

5.4.9.1.2.14. FlsSetModeApi

Item

Name

FlsSetModeApi

Description

Compile switch to enable and disable the Fls_SetMode function.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

false

5.4.9.1.2.15. FlsTimeoutSupervisionEnabled

Item

Name

FlsTimeoutSupervisionEnabled

Description

Compile switch to enable timeout supervision.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

false

5.4.9.1.2.16. FlsVersionInfoApi

Item

Name

FlsVersionInfoApi

Description

Pre-processor switch to enable / disable the API to read out the modules version information.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

true

5.4.9.1.2.17. FlsWriteVerificationEnabled

Item

Name

FlsWriteVerificationEnabled

Description

Compile switch to enable write verification.

Origin

AUTOSAR_ECUC

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

false

5.4.9.1.2.18. FlsWaitStates

Item

Name

FlsWaitStates

Description

defines the number of random access wait states. When CPU performs a read access to Flash, data is returned after (RWAIT + 1) SYSCLK cycles.

Origin

Texas Instruments

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Default-value

3

Max-value

3

Min-value

1

5.4.9.1.2.19. FlsCpuClockRef

Item

Name

FlsCpuClockRef

Description

Reference to the CPU clock configuration, which is set in the MCU driver configuration

Origin

Texas Instruments

Post-Build-Variant-Value

false

Value-Configuration-Class

Post-Build-Time

VARIANT-POST-BUILD

Pre-Compile-Time

VARIANT-PRE-COMPILE

Refer AUTOSAR_SWS_FlashDriver section: 10 Configuration specification for configuration parameters details

5.4.9.2. Steps To Configure Fls Module

  1. Open EB Tresos configurator tool and load Mcu, Os, Dem and Fls modules.

  2. Open Mcu and Dem Module to Configure Clock and Dem Error for Mcu and Fls.

  3. Open FLS module plugin, Select the Config Variant (Pre-compile/Post-Build).

  4. In FLS module plugin configure required parameters.

  5. Save the configuration and generate the configuration.

5.4.9.2.1. Standard Configuration

Standard Parameters

Description

Default Value

Range

Unit

FlsJobEndNotification

Mapped to the job end notification routine provided by some upper layer module, typically the Fee module.

NA

NA

FUNCTION-NAME

FlsJobErrorNotification

Mapped to the job error notification routine provided by some upper layer module, typically the Fee module.

NA

NA

FUNCTION-NAME

FlsMaxReadNormalMode

The maximum number of bytes to read or compare in one cycle of the flash driver’s job processing function in normal mode.

16

0 .. 4294967295

INTEGER

FlsMaxWriteNormalMode

The maximum number of bytes to write in one cycle of the flash driver’s job processing function in normal mode.

16

0 .. 4294967295

INTEGER

FlsNumberOfSectors

Number of continuous sectors with identical configuration

128

0..65535

INTEGER

FlsPageSize

Size of one page of this sector.

NA

0 .. 4294967295

INTEGER

FlsSectorSize

Size of this sector.

2048

0 .. 4294967295

INTEGER

FlsSectorStartaddress

Start address of this sector.

0

0 .. 4294967295

INTEGER

FlsBlankCheckApi

Compile switch to enable/disable the Fls_BlankCheck function.

FALSE

TRUE

FALSE

BOOLEAN

FlsCancelApi

Compile switch to enable and disable the Fls_Cancel function. Cancel API currently not supported.

TRUE

TRUE

FALSE

BOOLEAN

FlsCompareApi

Compile switch to enable and disable the Fls_Compare function.

TRUE

TRUE

FALSE

BOOLEAN

FlsDevErrorDetect

Switches the development error detection and notification on or off.

FALSE

TRUE

FALSE

BOOLEAN

FlsDriverIndex

Index of the driver, used by FEE.

0

0..254

INTEGER

FlsEraseVerificationEnabled

Compile switch to enable erase verification. Currently not supported.

FALSE

TRUE

FALSE

BOOLEAN

FlsGetJobResultApi

Compile switch to enable and disable the Fls_GetJobResult function.

TRUE

TRUE

FALSE

BOOLEAN

FlsGetStatusApi

Compile switch to enable and disable the Fls_GetStatus function.

TRUE

TRUE

FALSE

BOOLEAN

FlsSetModeApi

Compile switch to enable and disable the Fls_SetMode function. Not relevant as only one mode supported.

FALSE

TRUE

FALSE

BOOLEAN

FlsTimeoutSupervisionEnabled

Compile switch to enable timeout supervision. Currently, not supported.

FALSE

TRUE

FALSE

BOOLEAN

FlsUseInterrupts

Job processing triggered by hardware interrupt.

FALSE

TRUE

FALSE

BOOLEAN

FlsVersionInfoApi

Pre-processor switch to enable / disable the API to read out the modules version information.

FALSE

TRUE

FALSE

BOOLEAN

5.4.9.2.2. IP Specific Configuration

Standard Parameters

Description

Default Value

Range

Unit

FlsMemMapMode

This parameter is used to specify if the flash read operation should occur using the external flash memory map.

TRUE

TRUE

FALSE

BOOLEAN

FlsOsCounterRef

This parameter contains a reference to the OsCounter, which is used by the FLS driver.

FlsDefaultOSCounterId

Default Os Counter Id if node reference to OsCounter ref FlsOsCounterRef is not set

0

0..16

INTEGER

FlsDeviceVariant

Select required Device Variant

ENUMERATION

FlsBaseAddress

The flash memory start address (see also SWS_Fls_00208 and SWS_Fls_00209).

3321888768

0..4294967295

INTEGER

FlsTotalSize

The total amount of flash memory in bytes (see also SWS_Fls_00208 and SWS_Fls_00209).

1073741824

0 .. 4294967295

INTEGER

FlsWriteVerificationEnabled

Compile switch to enable write verification. Currenly, not supported.

FALSE

TRUE

FALSE

BOOLEAN

FlsErasedValue

The contents of an erased flash memory cell.

255

0 .. 4294967295

INTEGER

FlsEraseTime

Maximum time to erase one complete flash sector.

1000

0..INFINITY

FLOAT

FlsExpectedHwId

Unique identifier of the hardware device that is expected by this driver (the device for which this driver has been implemented).

23322

STRING

FlsSpecifiedEraseCycles

Number of erase cycles specified for the flash device (usually given in the device data sheet).

0

0..4294967295

INTEGER

FlsWriteTime

Maximum time to program one complete flash page.

1000

0..INFINITY

FLOAT

FlsEnableRegisterReadbackApi

Switch to indicate that the Fls_RegisterReadBack is supported

FALSE

TRUE

FALSE

BOOLEAN

5.4.10. Examples

5.4.10.1. Overview of Fls_App_Example

  • Purpose

    • Comprehensive flash memory driver test application that validates all FLS (Flash Driver) operations through automated testing

  • Loop Iterations

    • Executes 500 test iterations (loopCount 0-499)

    • Each iteration advances the test address by 4096 bytes, wrapping around when reaching device memory limits

    • Address wrap around occurs at 0x1FFFF (128KB Data Flash) for F29P32x devices, 0x3FFFF (256KB Data Flash) for F29H85x devices, Resets to address 0x0 after exceeding the limit

  • Tests Per Iteration: 66 total tests

    • 26 fixed tests on the test address

      • 1 Sector Erase

      • 1 Blank Check

      • 6 Incremental Writes (8, 8, 16, 16, 32, 32 bytes at varying offsets)

      • 6 Compare operations (after each incremental write)

      • 3 Bulk operations (Erase, Write 4096 bytes, Read 4096 bytes)

      • 2 Compare operations (write/read verification)

      • 1 Bank Erase

      • 1 Blank Check (after bank erase)

      • 1 Write (after bank erase)

      • 1 Read (after bank erase)

      • 2 Compare operations (after bank erase)

      • 1 Cancel test (intentional failure)

    • 40 configuration tests (8 tests × 5 sector configurations from FLS_NUMBER_OF_SECTOR_CFG)

      • Per sector: Read, Sector Erase, BlankCheck, Write, Bank Erase, Write, Read, Compare

  • Total test executions

    • 66 tests × 500 iterations

  • Flash Operations (per iteration)

    • Sector Erase - Fls_SetEraseType(FLS_SECTOR_ERASE) + Fls_Erase() to erase 4096-byte test sector

    • Blank Check - Fls_BlankCheck() to verify sector is properly erased

    • Incremental Writes - Multiple Fls_Write() calls with varying sizes (8, 16, 32 bytes) at different offsets, each followed by Fls_Compare() for verification

    • Bulk Operations - Full sector Fls_Erase(), Fls_Write() (4096 bytes), and Fls_Read() with Fls_Compare() verification

    • Bank Erase - Fls_SetEraseType(FLS_BANK_ERASE) + Fls_Erase() to test bank-level erase, followed by Fls_BlankCheck(), Fls_Write(), Fls_Read(), and Fls_Compare()

    • Cancel Test - Fls_Erase() immediately followed by Fls_Cancel() to verify job cancellation mechanism (expects one intentional error per iteration)

    • Configuration Loop - Iterates through all configured flash sectors performing complete sequences: Fls_Read(), Fls_Erase(), Fls_BlankCheck(), Fls_Write(), and Fls_Compare() with both sector and bank erase modes

  • Additional APIs Used

    • Fls_GetJobResult() - Queries job completion status after operations

    • Fls_GetStatus() - Checks driver idle state before starting tests

  • Test Counters

    • Fls_passCnt - Increments on each successful job completion via callback; rolls over at 1000

    • Fls_errCnt - Increments on each job failure via callback; rolls over at 1000

    • Expected behavior: One error per iteration due to intentional Fls_Cancel() test

    • Overall Pass Criteria: Fls_errCnt == 500 (one error per iteration for 500 iterations)

  • Callback Functionality

    • Fee_JobEndNotification() - Invoked on successful job completion; sets Fls_JobDoneSuccess flag and increments Fls_passCnt

    • Fee_JobErrorNotification() - Invoked on job failure; sets Fls_JobDoneError flag and increments Fls_errCnt

    • FlsApp_main_handling() - Polls Fls_MainFunction() cyclically until callbacks signal completion via flags

  • Test Data

    • Uses alternating 0xAA/0xBB pattern in 4096-byte transmit buffer for write verification

5.4.10.2. Overview of Fls_Fapi_App_Example

  • Purpose

    • Illustrate integration of the standalone Flash API library (for Code or Data Flash programming) with the FLS driver

    • Flash API library operations are performed, then Fls_App operations (identical to above), and once again Flash API library operations

5.4.10.3. Setup required

  • Connect the hardware and power up

  • Launch a Serial terminal (at 115200 baud) with the COM port that is connected to the MCU

5.4.10.4. How to run

  • Open CCS and Import Fls_App_Example

  • Build project then debug project

5.4.10.4.1. Sample Log of Fls_App_Example

FLS Example: Sample Application - STARTS !!!
APP_NAME : Variant - Pre Compile being used !!!
FLS MCAL version info:3.2.0
FLS MCAL Module/Driver:92.44 
FLS_APP: Configured operation on flash is from 0x0 address offset till 4096 bytes!!
FLS_APP: Perform ERASE, WRITE, READ, BLANKCHECK, CANCEL, COMPARE, etc
FLS_APP: Sector Erasing 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Get Job Result Passed, check done through Fls_GetJobResult API()
FLS_APP: Blank Checking 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Writing 8-bytes, 16 bytes, 32 bytes, ... 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: erase 2 sectors
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Writing 2 sectors
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Reading 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Write Compare 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Read Compare 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Perform FLS_BANK_ERASE 
FLS_APP: Bank Erasing 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Get Job Result Passed, check done through Fls_GetJobResult API()
FLS_APP: Blank Checking 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Writing 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Reading 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Write Compare 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Read Compare 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: 
FLS_APP: Job Cancel 
FLS_APP:         1. Erasing 
FLS_APP:         2. Canceling 
FLS_APP: Job Ends: Error
FLS_APP: Job Canceled (SUCCESS) ! 
FLS_APP: 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: 
FLS_APP: ---------- FLS Sample application Done !! ----------  
FLS_APP: Tests Passed: 65 (wraps at 1000)   Tests Failed: 1 (wraps at 1000, 1 expected per loop from Fls_Cancel)   Loop: 0 
.
.
FLS_APP: ---------- FLS Sample application Done !! ----------  
FLS_APP: Tests Passed: 403 (wraps at 1000)   Tests Failed: 499 (wraps at 1000, 1 expected per loop from Fls_Cancel)   Loop: 498 
FLS_APP: 
FLS_APP: Configured operation on flash is from 0x2b000 address offset till 4096 bytes!!
FLS_APP: Perform ERASE, WRITE, READ, BLANKCHECK, CANCEL, COMPARE, etc
FLS_APP: Sector Erasing 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Get Job Result Passed, check done through Fls_GetJobResult API()
FLS_APP: Blank Checking 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Writing 8-bytes, 16 bytes, 32 bytes, ... 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: erase 2 sectors
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Writing 2 sectors
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Reading 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Write Compare 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Read Compare 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Perform FLS_BANK_ERASE 
FLS_APP: Bank Erasing 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Get Job Result Passed, check done through Fls_GetJobResult API()
FLS_APP: Blank Checking 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Writing 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Reading 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Write Compare 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Read Compare 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: 
FLS_APP: Job Cancel 
FLS_APP:         1. Erasing 
FLS_APP:         2. Canceling 
FLS_APP: Job Ends: Error
FLS_APP: Job Canceled (SUCCESS) ! 
FLS_APP: 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: Job Processing in Progress.
FLS_APP: Job Ends: SUCCESS
FLS_APP: Job Ends: SUCCESS 
FLS_APP: 
FLS_APP: ---------- FLS Sample application Done !! ----------  
FLS_APP: Tests Passed: 468 (wraps at 1000)   Tests Failed: 500 (wraps at 1000, 1 expected per loop from Fls_Cancel)   Loop: 499 
FLS_APP: 
FLS_APP: 
FLS_APP: ========== OVERALL TEST SUMMARY ==========
FLS_APP: OVERALL RESULT: PASS
FLS_APP: Error count matches expected value (500 errors for 500 iterations)
FLS_APP: ===========================================
FLS_APP:

5.4.10.4.2. Sample Log of Fls_Api_App_Example

FLS Example: Sample Application - STARTS !!!
APP_NAME : Variant - Pre Compile being used !!!
FLS MCAL version info:3.2.0
FLS MCAL Module/Driver:92.44 
Flash API based Flash operations completed successfully.
FLS_FAPI_APP: Configured operation on flash is from 0x0 address offset till 4096 bytes!!
FLS_FAPI_APP: Perform ERASE, WRITE, READ, BLANKCHECK, CANCEL, COMPARE, etc
FLS_FAPI_APP: Sector Erasing 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Get Job Result Passed, check done through Fls_GetJobResult API()
FLS_FAPI_APP: Blank Checking 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Writing 8-bytes, 16 bytes, 32 bytes, ... 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: erase 2 sectors
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Writing 2 sectors
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Reading 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Write Compare 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Read Compare 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Perform FLS_BANK_ERASE 
FLS_FAPI_APP: Bank Erasing 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Get Job Result Passed, check done through Fls_GetJobResult API()
FLS_FAPI_APP: Blank Checking 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Writing 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Reading 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Write Compare 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Read Compare 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: 
FLS_FAPI_APP: Job Cancel 
FLS_FAPI_APP:    1. Erasing 
FLS_FAPI_APP:    2. Canceling 
FLS_FAPI_APP: Job Ends: Error
FLS_FAPI_APP: Job Canceled (SUCCESS) ! 
FLS_FAPI_APP: 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: 
FLS_FAPI_APP: ---------- FLS Sample application Done !! ----------  
FLS_FAPI_APP: Tests Passed: 65 (wraps at 1000)   Tests Failed: 1 (wraps at 1000, 1 expected per loop from Fls_Cancel)   Loop: 0 
.
.
FLS_FAPI_APP: ---------- FLS Sample application Done !! ----------  
FLS_FAPI_APP: Tests Passed: 403 (wraps at 1000)   Tests Failed: 499 (wraps at 1000, 1 expected per loop from Fls_Cancel)   Loop: 498 
FLS_FAPI_APP: 
FLS_FAPI_APP: Configured operation on flash is from 0x2b000 address offset till 4096 bytes!!
FLS_FAPI_APP: Perform ERASE, WRITE, READ, BLANKCHECK, CANCEL, COMPARE, etc
FLS_FAPI_APP: Sector Erasing 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Get Job Result Passed, check done through Fls_GetJobResult API()
FLS_FAPI_APP: Blank Checking 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Writing 8-bytes, 16 bytes, 32 bytes, ... 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: erase 2 sectors
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Writing 2 sectors
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Reading 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Write Compare 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Read Compare 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Perform FLS_BANK_ERASE 
FLS_FAPI_APP: Bank Erasing 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Get Job Result Passed, check done through Fls_GetJobResult API()
FLS_FAPI_APP: Blank Checking 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Writing 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Reading 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Write Compare 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Read Compare 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: 
FLS_FAPI_APP: Job Cancel 
FLS_FAPI_APP:    1. Erasing 
FLS_FAPI_APP:    2. Canceling 
FLS_FAPI_APP: Job Ends: Error
FLS_FAPI_APP: Job Canceled (SUCCESS) ! 
FLS_FAPI_APP: 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: Job Processing in Progress.
FLS_FAPI_APP: Job Ends: SUCCESS
FLS_FAPI_APP: Job Ends: SUCCESS 
FLS_FAPI_APP: 
FLS_FAPI_APP: ---------- FLS Sample application Done !! ----------  
FLS_FAPI_APP: Tests Passed: 468 (wraps at 1000)   Tests Failed: 500 (wraps at 1000, 1 expected per loop from Fls_Cancel)   Loop: 499 
FLS_FAPI_APP: 
FLS_FAPI_APP: 
FLS_FAPI_APP: ========== OVERALL TEST SUMMARY ==========
FLS_FAPI_APP: OVERALL RESULT: PASS
FLS_FAPI_APP: Error count matches expected value (500 errors for 500 iterations)
FLS_FAPI_APP: ===========================================
FLS_FAPI_APP: 
Flash API based Flash operations completed successfully.

5.4.10.5. File Structure

📦f29h85x_mcal
┣ 📂build
┣ 📂docs
┣ 📂drivers
┣ 📂examples
┃ ┣ 📂AppUtils
┃ ┣ 📂Can
┃ ┣ 📂Cdd_Adc
┃ ┣ 📂Cdd_Sent
┃ ┣ 📂Cdd_Xbar
┃ ┣ 📂DeviceSupport
┃ ┣ 📂Dio
┃ ┣ 📂Fls
┃ ┃ ┗ 📂Fls_App_Example
┃ ┃ ┃ ┣ 📂CCS
┃ ┃ ┃ ┃ ┗ 📜Fls_App_Example.projectspec
┃ ┃ ┃ ┣ 📂Fls_Example_Config
┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┣ 📜Dem.xdm
┃ ┃ ┃ ┃ ┃ ┣ 📜EcuM.xdm
┃ ┃ ┃ ┃ ┃ ┣ 📜fls.xdm: Generated EB Tresos config file in .xdm format
┃ ┃ ┃ ┃ ┃ ┣ 📜Mcu.xdm
┃ ┃ ┃ ┃ ┃ ┣ 📜Os.xdm
┃ ┃ ┃ ┃ ┣ 📂include
┃ ┃ ┃ ┃ ┃ ┣ 📜Dem_Cfg.h
┃ ┃ ┃ ┃ ┃ ┣ 📜EcuM_Cfg.h
┃ ┃ ┃ ┃ ┃ ┣ 📜Fls_Cbk.h : defines callback notification functions.
┃ ┃ ┃ ┃ ┃ ┣ 📜Fls_Cfg.h : Contains the generated pre-compiler configuration header.
┃ ┃ ┃ ┃ ┃ ┣ 📜Mcu_Cfg.h
┃ ┃ ┃ ┃ ┃ ┣ 📜Os_Cfg.h
┃ ┃ ┃ ┃ ┣ 📂src
┃ ┃ ┃ ┃ ┃ ┣ 📜Dem_Cfg.c
┃ ┃ ┃ ┃ ┃ ┣ 📜EcuM_Cfg.c
┃ ┃ ┃ ┃ ┃ ┣ 📜Fls_Cfg.c : Contains the pre-build configuration parameters.
┃ ┃ ┃ ┃ ┃ ┣ 📜Mcu_PBcfg.c
┃ ┃ ┃ ┃ ┃ ┣ 📜Os_Cfg.c
┃ ┃ ┃ ┃ ┗ 📜CMakeLists.txt
┃ ┃ ┃ ┣ 📜CMakeLists.txt
┃ ┃ ┃ ┗ 📜Fls_App_Example.c
┃ ┣ 📂Gpt
┃ ┣ 📂Mcu
┃ ┣ 📂Port
┣ 📂plugins
┣ 📂tests
┣ 📜CMakeLists.txt
┗ 📜CMakePresets.json

5.4.11. References

AUTOSAR_SWS_FlashDriver
Technical Reference Manual