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.

[参考译文] AM2634:AM2634矢量大小

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1519243/am2634-am2634-vectors-size

器件型号:AM2634

工具/软件:

你(们)好

最近、我们的工程在开发过程中遇到了问题、涉及软件矢量表的大小。 现在、我来说明一下这个问题。

由于我们需要使用 MPU、因此需要修改矢量表中 SVC 的中断服务函数。 因此、我们会将矢量表从 SDK 矢量表切换到 MCAL 矢量表。

如下图所示、在交换机之后、发现生成的 RPRC 文件的头数据还有 48个字节。这导致我们的版本号向后移动、这对我们软件的升级产生了影响。

对于这个问题、我比较了映射文件、发现它们之间存在显著差异。

下图是使用 SDK 矢量生成的映射文件。

下图是使用 MCAL 矢量生成的映射文件。

从映射文件中可以看出、矢量的大小增加了48个字节。

为了确保我们的升级功能与前一个版本保持一致、我想将矢量的大小调整为0x40。 我应该如何继续?

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

    您好、

    Unknown 说:
    由于我们需要使用 MPU、因此需要修改矢量表中 SVC 的中断服务函数。 因此、我们会将矢量表从 SDK 矢量表切换到 MCAL 矢量表。

    很抱歉耽误您的回复。 您能否详细说明一下为什么要将 SDK 矢量表与 MCAL 矢量表切换在一起?

    谢谢。此致、

    Nikhil Dasan

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

    因为我们需要包含 MPU 的函数、所以我们必须修改 SVC 中断服务处理函数。我们无法修改 SDK 的矢量、因为它已打包为一个库。 因此、我们切换到 MCAL。 我们切换到 MCAL 矢量。

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

    您好、

    MCAL 的初始化矢量位于 {MCAL}\mcal\examples\Utils\clang\sys_intvecs.asm 中

    您是否尝试过修改相同的内容?

    对于 SDK、您可以在中找到相同的代码  C:\ti\mcu_plus_sdk_am263x_10_02_00_13\source\kernel\nortos\dp\r5\HwiP_armv7r_vectors_nortos_asm.S

    谢谢。此致、

    Nikhil Dasan

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

    我尝试根据 SDK 的方法修改 MCAL 的矢量表、但失败了。

    我根据下图所示的 SDK 编写方法修改了 MCAL 的矢量表、但 CCS 报告了错误。

    以下是我的更改要点。

    ① 我根据 SDK 的编写方法修改了 MCAL 的矢量表。

    ② 我将_sysFiqEntry_从 sys_intvecs.asm 移到了 sys_startup.asm。

    ③ 修改命令

    按照上述步骤进行修改后、CCS 编译报告了错误、如下图所示。

    我不确定我的修改是否正确。 您能直接向我提供该矢量表的修订版本吗?

    谢谢。

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

    您好、

    由于我们需要合并 MPU 的函数、因此必须修改 SVC 中断服务处理函数。我们无法修改 SDK 的矢量、因为它已打包为一个库。 [/报价]

    关于 SDK 软件包中的修改、我看到也可以修改相同的内容、并且可以立即重建库? 即

    对 svc 处理程序"Hwip_svc_handler "进行更改、然后重新构建 nortos.am263x.r5f.ti-arm-clang.release.lib?

    我是否在这里遗漏了一些关于为什么我们需要去为 mcal 所需的额外努力?

    另外、对于与 MPU 相关的更改、不能更改 boot_armv7r_asm.S 中调用的__ mpu_init 中  的 MPU 更改、这将进一步调用 mpuP_armv7r.c 中的 mpuP_init () API  

    谢谢。此致、

    Nikhil Dasan