Tool/software: Code Composer Studio
HI,
In my code the .intvecs memory section is linked to FLASH. There is no copying of the vector table to RAM during initialization. For example I do work also with MCUs from C2000 family where the memcpy((void *)0x000D00, &PieVectTableInit ....) is used to copy the interrupt vector table. In this case interrupt table is located in RAM so it has to be copied for proper operation, whereas, in case of TM4C129 table is located at the beginning of on-chip Flash memory 0x0000.0000.
Does TM4C129 support some optimized pre-fetch mechanism which allows for fast execution of interrupt routines from Flash? Datasheet mentions possibility of introducing offset to the vector table location, however, TivaWare examples (I look at enet_lwip in particular) do not use the offset option what means that ISR are fetched from flash memory.
/* Section allocation in memory */ SECTIONS { .intvecs: > APP_BASE .text : > FLASH .const : > FLASH .cinit : > FLASH .pinit : > FLASH .init_array : > FLASH .vtable : > RAM_BASE .data : > SRAM .bss : > SRAM .sysmem : > SRAM .stack : > SRAM }
The vector table defined in startup_ccs.c is linked to .intvecs section:
#pragma DATA_SECTION(g_pfnVectors, ".intvecs")
I will appreciate insight of experienced users.
Thank you