工具/软件:Code Composer Studio
您好!
在我的代码中 、.intvecs 存储器部分链接到闪存。 在初始化期间、矢量表没有复制到 RAM。 例如,我也可以使用 C2000系列中的 MCU,其中 memcpy ((void *) 0x000D00,&PieVectTableInit……) 用于复制中断矢量表。 在这种情况 下、中断表位于 RAM 中、因此必须对其进行复制才能正常运行、而在 TM4C129表中、中断表位于片上闪存0x0000.0000的开头。
TM4C129是否支持一些允许从闪存快速执行中断例程的优化预取机制? 数据表提到了向量表位置引入偏移的可能性、但是、TivaWare 示例(我特别查看 enet_lwip)不使用偏移选项、这意味着从闪存中提取 ISR。
/*内存中的段分配*/ 段 { .intvecs:> app_base .text:> FLASH .const:> FLASH .cinit:>闪存 .pinit:> FLASH init_array:> FLASH .vtable:> RAM_base .data :> SRAM .bss:> SRAM .sysmem:> SRAM .stack:> SRAM }
在 startup_ccs.c 中定义的矢量表链接到.intvecs 段:
#pragma DATA_SECTION (g_pfnVectors、".intvecs")
我将感谢您对经验丰富的用户的深入了解。
谢谢你