公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,

我正在使用 Tasking 编译器的 TC299 入门套件(三板)。

我的应用程序可以正常运行,直到我按下 Triboard 上的 PORST 按钮。 这会导致第一个计时器中断以某种方式失败;我没有处理 STM 中断,而是得到一个带有 Tin=1 的系统总线和外围设备陷阱,"程序获取同步错误。"

中断处理程序与一些在中断失败之前成功执行的非中断处理函数放在同一个链接器部分中。

我还验证了在程序到达 main () 之前,零和非零的初始化数据已正确初始化。

BOOTCFG 的 4 个 DIP 开关已关闭。
启动模式标头生成已开启(Project-P > roperties-> C/C++ Build-> 内存-> 启动模式标题选项卡-> 启动模式标头 0 组-> 将 “启动模式标头配置” 设置为 “生成启动模式标头”)

是什么原因导致了这个问题?

最诚挚的问候,
亚当

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 Anupama,

感谢您的回复。 我设法解决了我的问题。 事实证明,我在 __interrupt 关键字(64 而不是 255)中使用了错误的中断号。我不太确定这究竟是如何导致程序在连接调试器的情况下成功执行的,但在 PORST 之后没有成功执行,但现在它可以按预期运行

 

干杯,

亚当

在原帖中查看解决方案

0 点赞
2 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

@adamlewis

 

你能否确认以下几点:-

 

  1. 在你闪光之后和按下 PORST 按钮之前它能正常工作吗?
  2. 你能否检查一下它在没有连接调试器的情况下能否正常工作,以及在这两种情况下都会发生 STM 中断的点在哪里?
  3. 另外,对于同步陷阱,导致陷阱的指令是精确知道的。 由于您的程序报告了同步陷阱,因此请检查以下寄存器,以了解哪个指令会导致陷阱:
    1. PSTR(程序同步错误陷阱寄存器)
    2. 退货地址寄存器 A [11]。

请参阅第 " 6.2.3 节 有关 A11 的详细信息,请"在 aurix_tc3xx_architure_ vol1-userManual 中返回地址 (RA)。

 

最诚挚的问候,
Anupama。

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 Anupama,

感谢您的回复。 我设法解决了我的问题。 事实证明,我在 __interrupt 关键字(64 而不是 255)中使用了错误的中断号。我不太确定这究竟是如何导致程序在连接调试器的情况下成功执行的,但在 PORST 之后没有成功执行,但现在它可以按预期运行

 

干杯,

亚当

0 点赞