工具/软件:TI C/C++编译器
您好!
我们将 IAR 7.12 C 用于我们的一个使用 MSP430F6734A 的项目、该项目具有96 KB 的闪存。
和为大型代码模型配置的 IAR C 编译器。
出于诊断目的、在中断例程内、我需要存储将在 ISR 之后执行的代码的地址。
该值(ISR 之前的程序计数器)在跳转到 ISR 例程之前被 MSP430自动推送到某个位置、并在 ISR 例程之后自动弹出。
我需要 C 变量中的32位值、如何获取它?
uint32_t program_counter_was;
void func1 (void)
{
.
}
void func2 (void)
{.}
void main (void)
{
...
__enable_interrupt ();
while (true)
{
func1();
func2();
.}
}
#pragma vector = Port1_vector /* 0xFFDE 端口1 */
__interrupt void Port1_ISR (void)
{...
program_counter_was =?? //此处,我需要存储将在 ISR
之后执行的代码的地址}
#pragma vector = RTC_vector
__interrupt void RTC_ISR (void)
{...
program_counter_was =?? //此处,我需要存储将在 ISR
之后执行的代码的地址}
#pragma vector = AUX_vector//* 0xFFE6 AUX Supply */
__interrupt void AUX_ISR (void)
{...
program_counter_was =?? //此处,我需要存储将在 ISR 之后执行的代码的地址
}
