.. _sec-flash-vector-table:

Flash Vector Table
==================

This table contains the reset value of the stack pointer, and the start 
addresses, also called exception vectors, for all exception handlers. 
The first 15 exception vectors are necessary system exceptions, followed
by a variable number of Interrupt Request (IRQ) vectors. The location of 
this table is fixed to address 0x00000000. At bootup time, the RTOS kernel 
will run a first function to initialize the :term:`Hwi` module.

.. ifconfig:: device == 'cc23xx'

    For more information about the vector table format, please refer to
    `Cortex-M0 Vector Table
    <https://developer.arm.com/documentation/dui0497/a/the-cortex-m0-processor/exception-model/vector-table>`__.


For more information on the kernel boot process and first functions, please see
:ref:`sec-freertos-overview`.

.. _ccfg:

Customer Configuration (CCFG) Table
===================================

The CCFG is placed at the end of the last flash page and lets the
customer configure various chip and system parameters in the Customer
Configuration (CCFG) table. The CCFG table is defined in ccfg.c in the provided examples. 
Parameters can be determined in the SysConfig (\*.syscfg) file through
the *TI Devices* |rarr| *Device Configuration* options.
The last (sizeof(ccfg_t)) bytes of the CCFG sector are reserved by the system for the
CCFG table. By default, the linker allocates the unused flash of the last flash
page to the application image for code and data use.

See the |TRM| for details on CCFG fields and related configuration options,
including how to set the CCFG to disable access to internal flash memory
contents.

.. note::

  The CCFG cannot be relocated, and must reside at the end of the last page of
  flash. Consult the |TRM| for more information.

.. note::

  If SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N is set to 0 it's not possible to do mass erase.