quasar_memory.h

The memory module contains all functionalities related to the flash memory.

Copyright

Copyright (C) 2026 SPARK Microsystems International Inc. All rights reserved.

License

This source code is proprietary and subject to the SPARK Microsystems Software EULA found in this package in file EULA.txt.

Author

SPARK FW Team.

Defines

QUASAR_MEMORY_COUNTER (__COUNTER__ - QUASAR_MEMORY_COUNTER_BASE)

Create a local counter macro.

QUASAR_MEMORY_GENERATE_ERR_CODE (-(QUASAR_MEMORY_COUNTER + 1))

Automatically increase error count each time invoked. Starts at -(0 + 1) = -1.

Typedefs

typedef enum quasar_memory_error quasar_memory_error_t

Memory error status.

Enums

enum [anonymous]

Values:

enumerator QUASAR_MEMORY_COUNTER_BASE = __COUNTER__
enum quasar_memory_error

Memory error status.

Values:

enumerator QUASAR_MEM_ERR_NONE = 0

No error was detected.

enumerator QUASAR_MEM_ERR = QUASAR_MEMORY_GENERATE_ERR_CODE

Write flash error.

enumerator QUASAR_MEM_ERR_BUSY = QUASAR_MEMORY_GENERATE_ERR_CODE

Flash is busy.

enumerator QUASAR_MEM_ERR_TIMEOUT = QUASAR_MEMORY_GENERATE_ERR_CODE

Flash write/read timeout.

enumerator QUASAR_MEM_ERR_ARGUMENT = QUASAR_MEMORY_GENERATE_ERR_CODE

Flash function argument error.

enumerator QUASAR_MEM_ERR_UNKNOWN = QUASAR_MEMORY_GENERATE_ERR_CODE

There is an unknown error occurring.

Functions

quasar_memory_error_t quasar_memory_read(uint32_t flash_address, const void *read_buffer, uint32_t buffer_size)

Read data from the flash memory and put it in a buffer.

Parameters:
  • flash_address[in] Flash memory address to write.

  • read_buffer[in] The read data buffer.

  • buffer_size[in] The size of the buffer to be read.

Returns:

The quasar error code.

quasar_memory_error_t quasar_memory_write(uint32_t flash_address, const void *write_buffer, uint32_t buffer_size)

Write a buffer containing data to the flash memory.

Note

The block must be previously erased.

Parameters:
  • flash_address[in] Flash memory address to write.

  • write_buffer[in] The write data buffer.

  • buffer_size[in] The size of the buffer to be written.

Returns:

The quasar error code.

quasar_memory_error_t quasar_memory_erase(uint32_t address)

Erase memory blocks of the MCU’s flash memory.

Note

The state of an erased block is undefined. A block must be erased before being programmed.

Parameters:

address[in] The address of the flash memory.

Returns:

The quasar error code.

quasar_memory_error_t quasar_memory_invalidate_cache(void)

Invalidate the cache (syncs the cache).

Returns:

The quasar error code.