OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5102|回复: 5

sys文件里的这几个关于汇编的函数实际作用是什么?

[复制链接]

12

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-1-5
在线时间
22 小时
发表于 2015-11-15 20:17:12 | 显示全部楼层 |阅读模式
5金钱
具体什么时候会用到呢?移植到IAR环境下,不支持这几个函数,在此请教一下:
__asm void WFI_SET(void)
{
WFI;  
}

__asm void INTX_DISABLE(void)
{
CPSID   I
BX      LR  
}

__asm void INTX_ENABLE(void)
{
CPSIE   I
BX      LR  
}

__asm void MSR_MSP(u32 addr)
{
MSR MSP, r0 //set Main Stack value
BX r14
}

最佳答案

查看完整内容[请看2#楼]

进入待机模式函数:Sys_Standby() -> 这里面有一个函数是WFI_SET()用于进入模式的操作 __asm void WFI_SET(void) {          WFI; } 该函数其实是在 C 语言里面嵌入一条汇编指令,因为CM3 内核的 STM32 支持的 THUMB 指令,并不能内嵌汇编,所以需要通过这个方法来实现汇编代码的嵌入。 __asm关键 ...
天道酬勤
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-11-15 20:17:13 | 显示全部楼层
进入待机模式函数:Sys_Standby() -> 这里面有一个函数是WFI_SET()用于进入模式的操作

__asm void WFI_SET(void)

{
         WFI;

}

该函数其实是在 C 语言里面嵌入一条汇编指令,因为CM3 内核的 STM32 支持的 THUMB 指令,并不能内嵌汇编,所以需要通过这个方法来实现汇编代码的嵌入。

__asm关键字:启动内联汇编并且能写在任何c/c++合法语句之处.它不能单独出现.它必须接汇编指令、一组被大括号包含的指令或一对空括号.术语“__asm 块”在这里是任意一个指令或一组指令无论是否在括号内。括号可以清晰的将C或C++代码和汇编代码分开,并且避免了不必要的重复__asm关键字。括号也能避免模糊性。

//关闭所有中断
__asm void INTX_DISABLE(void)
{
         CPSID I;

}
//开启所有中断
__asm void INTX_ENABLE(void)
{
         CPSIE I;

}

//设置栈顶地址
//addr:栈顶地址
__asm void MSR_MSP(u32 addr)
{
         MSR MSP, r0 //set Main Stack value
         BX r14

}
我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2015-11-15 22:20:23 | 显示全部楼层
这几个函数只支持在MDK上,IAR的话查看下编译器手册吧!!
回复

使用道具 举报

12

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-1-5
在线时间
22 小时
 楼主| 发表于 2015-11-17 12:35:30 | 显示全部楼层
回复【3楼】229382777@qq.com:
---------------------------------
多谢指教,还想请教下:
1、在IAR里面屏蔽掉不会有影响吧?
2、另外在IAR下如何实现相应的功能呢?
天道酬勤
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-11-17 12:39:22 | 显示全部楼层
回复【4楼】落月枫情:
---------------------------------
不好意思....没用过IAR
我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

13

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-3-26
在线时间
34 小时
发表于 2020-2-15 14:23:05 | 显示全部楼层
楼主,我也不太明白,一般在什么时候会用到这几个汇编函数呢?可以删掉吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-8 06:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表