首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSP430执行库

MSP430执行库
EN

Stack Overflow用户
提问于 2014-06-18 05:55:57
回答 1查看 368关注 0票数 0

我是MSP430架构的新手,我正在将一个为ARM Cortex M3编写的实时操作系统移植到这个架构中。在ARM Cortex架构中,有PSP和MSP寄存器来保存执行模式的堆栈值。

根据我对MSP430架构的理解,只有一个堆栈指针寄存器(SP)。

以下是我的问题:

-Is在中断/执行上下文中,SP只有一个寄存器组吗?

-Can我在MSP430中使用常规的C函数进行中断处理,就像在ARM Cortex中一样?

-How在中断执行期间MSP430是否处理(保存/恢复)寄存器(特别是SP、SR和PC)?

EN

回答 1

Stack Overflow用户

发布于 2014-06-18 10:54:46

  1. 在MSP430寄存器方面没有存储体,它是上下文中唯一的SP寄存器。

  1. 是,您可以使用C函数进行中断处理链接

__interrupt void MyFuncISR(void)

或者它也可以像这样

代码语言:javascript
复制
#pragma vector=TIMER0_A0_VECTOR    
__interrupt void
ta0cc0_isr (void)

在这种情况下,编译器将根据您提供的定义/名称设置正确的中断向量

  1. 中断逻辑执行以下操作: 1.完成当前正在执行的任何指令。2.指向下一条指令的PC被压入堆栈。3.将SR推送到堆栈上,依此类推,如下所示:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24273950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档