请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C1294NCPDT 大家好、
当我在 CCS 下调试代码时、我进入 SVCall 异常、但我不知道我是如何触发它的
SVCall 异常的常见原因是什么?
谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
当我在 CCS 下调试代码时、我进入 SVCall 异常、但我不知道我是如何触发它的
SVCall 异常的常见原因是什么?
谢谢!
swupdate.h 调用 SVC。 如果 ROM_UpdateEMAC 未定义,则 SoftwareUpdateBegin()调用地址0x2C。 如果您在 statup_ccs.c 中查看 g_pfnVectors、您将看到第11个函数(0x2C/4 = 11)被称为 SVCall 处理程序。
我在 Tiva ROM 用户指南中找不到与 SVC 相关的内容。 您能否详细说明一下这是什么?
编辑:我可以在同一个文件中看到、这只是一个 while (1)循环。 我对 SVC 的含义仍然有点模糊
很高兴为您提供帮助。 我找到了 Charles 在引导加载程序中的含义。 引导加载程序的 statup_ccs.s 是一个汇编文件、但您可以获得以下列表:
向量: .ref __stack_top .word __stack_top ;;偏移00:初始堆栈指针 .word ResetISR - 0x20000000 ;;偏移04:重置处理程序 .word NmiSR - 0x20000000 ;;偏移08: NMI 处理程序 .word FaultISR - 0x20000000 ;;偏移0C:硬故障处理程序 .word IntDefaultHandler ;;偏移10:MPU 故障处理程序 .word IntDefaultHandler ;;偏移14:总线故障处理程序 .word IntDefaultHandler ;;偏移量18:用法故障处理程序 .word 0 ;偏移1C:保留 .word 0 ;;偏移20:保留 .word 0 ;;偏移24:保留 .word 0 ;;偏移28:保留 .word UpdateHandler - 0x20000000 ;;偏移2C:SVCall 处理程序
基于一些谷歌搜索、SVC 似乎与 SWI 同义。 我假设 TI 使用了该术语来专门指引导加载程序中断向量。