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.

[参考译文] TMS570LS0432:生成一个监控器调用异常

Guru**** 2460850 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/651498/tms570ls0432-generate-a-supervisor-call-exception

器件型号:TMS570LS0432
主题中讨论的其他器件:HALCOGEN

您好!

我是软件验证项目的一部分、该项目使用 Hercules 微处理器作为我们工作的一部分、我们需要验证软件在任何情况下是否会触发异常处理程序表。 根据 TRM SPNU517b、该表如下所示:

0x00000000复位

0x00000004未定义指令

0x00000008软件中断

0x0000000C 预取中止

0x00000010数据中止

0x00000014保留供将来使用

0x00000018 IRQ

0x0000001C FIQ

由于软件的开发方式、我们收到了软件的更新/更改、 首先、我们在 CCS 中查看 SVC 指令集的反汇编代码在 PC 中运行程序、验证地址0x00000008是否已命中、但是对于最新版本的软件、 反汇编 代码中没有 SVC 指令、我们也是 对于如何生成主管例外、没有明确的想法、如果有人能够解释这是怎么可能的、我会很感激 。

此致。

注意:我们不允许修改代码以进行验证。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Andy:

    HALCoGen 中的 FreeRTOS 提供了 SWI 处理程序的示例代码:

    sys_intvec.asm 中的代码:
    ;------------------------------------------------------------------
    ;中断向量

    resetEntry
    b _c_int00
    UndefEntry
    b 未定义尝试
    b vPortSWI
    PrefetchEntry
    B prefetchEntry
    b _dabort
    b 相位中断
    LDR PC、[PC、#-0x1b0]
    LDR PC、[PC、#-0x1b0]


    os_portasm.asm 中的代码:
    ;------------------------------------------------------------------
    ; SWI 处理程序,保护模式函数的接口

    .def vPortSWI
    asmfunc
    vPortSWI
    stmfd sp!、{r11、r12、lr}
    夫人 R12、spsr
    数 R12、R12、#0x20
    ldrbne R12、[LR、#-2]
    ldrbeq R12、[LR、#-4]
    LDR R14、表
    LDR R12、[r14、R12、LSL #2]
    Blx R12.
    mfldd sp!、{r11、r12、pc}^


    .word 跳线表

    跳线表
    word 门户网站 ;0- vPortYield 处理器
    .word swiraisePrivilege ;1-提升权限
    word swiPortEnterCristical ;2-虚拟肠道危急
    word swiPortExitCritical ;3-虚拟端口严重
    word swiPortTaskUsesFPU ;4- vPortTaskUsesFPU
    .word swiPortDisableInterrupts ;5- vPortDisableInterrupts
    .word swiPortEnableInterrupts ;6- vPortEnableInterrupts
    endasmfunc