OpenEdv-开源电子网

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

怎样才能使用Thumb2的饱和指令

[复制链接]

9

主题

58

帖子

0

精华

高级会员

Rank: 4

积分
542
金钱
542
注册时间
2016-2-24
在线时间
61 小时
发表于 2016-3-1 12:43:31 | 显示全部楼层 |阅读模式
5金钱
thumb2指令集里面有ssat、usat两个饱和移位指令可以单周期实现,在信号处理时十分实用。

问题是如果使用C语言编程怎样才能使用得到呢?

查看IAR的intrinsics.h里面只能饱和,不能移位。

最佳答案

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

Cortex-M可以调用的汇编指令在CMSIS_armcc.h几乎都有定义,你应该从那里找。 使用时直接“#include "stm32f10x.h"”就行了(这个头文件工程里应该都会包含的吧), 需要帮助的话,直接按F1就可以看详细使用帮助,
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-3-1 12:43:32 | 显示全部楼层
Cortex-M可以调用的汇编指令在CMSIS_armcc.h几乎都有定义,你应该从那里找。
使用时直接“#include "stm32f10x.h"”就行了(这个头文件工程里应该都会包含的吧),

9.png


需要帮助的话,直接按F1就可以看详细使用帮助,

8.png
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

9

主题

58

帖子

0

精华

高级会员

Rank: 4

积分
542
金钱
542
注册时间
2016-2-24
在线时间
61 小时
 楼主| 发表于 2016-3-2 09:26:30 | 显示全部楼层
__ssat和__ussat两个函数都可以实现饱和。

但是Cortex-M3的指令是这样:
SSAT Rd, #<sat>, Rm{, ASR <sh>}

可以饱和之余顺便移位,不过似乎就没法直接在C语言上表示了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 17:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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