OpenEdv-开源电子网

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

__asm void MSR_MSP(u32 addr) MDK 5.14编程出错,对操作系统有什么影响?

[复制链接]

22

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2014-7-26
在线时间
66 小时
发表于 2017-1-25 13:48:12 | 显示全部楼层 |阅读模式
1金钱
__asm void MSR_MSP(u32 addr)这段代码,MDK 5.14编程出错,对操作系统有什么影响?
需要怎么改才可以用起来?

最佳答案

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

//éèÖÃÕ»¶¥μØÖ· //addr:Õ»¶¥μØÖ· void MSR_MSP(u32 addr) { __ASM MSR MSP, r0 //set Main Stack value __ASM BX r14 } 这样写,可以实现原来的功能不?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2014-7-26
在线时间
66 小时
 楼主| 发表于 2017-1-25 13:48:13 | 显示全部楼层
//éèÖÃÕ»¶¥μØÖ·
//addr:Õ»¶¥μØÖ·
void MSR_MSP(u32 addr)
{
  __ASM  MSR MSP, r0                         //set Main Stack value
  __ASM  BX r14
}

这样写,可以实现原来的功能不?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-1-25 20:12:30 | 显示全部楼层
profacetom 发表于 2017-1-25 14:00
//éèÖÃÕ»¶¥μØÖ·
//addr:Õ»¶¥μØÖ·
...

可以
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-5-9
在线时间
6 小时
发表于 2019-5-9 13:44:25 | 显示全部楼层
__asm void MSR_MSP(u32 addr)
{
    MSR MSP, r0             //set Main Stack value
    BX r14
}
有什么问题??????????
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-5-1
在线时间
8 小时
发表于 2019-7-17 13:52:54 | 显示全部楼层
profacetom 发表于 2017-1-25 13:48
//éèÖÃÕ»¶¥μØÖ·
//addr:Õ»¶¥μØÖ·
...

我也是这错误,但是用了你改的代码也不行啊
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-11-21
在线时间
2 小时
发表于 2019-11-22 14:14:39 | 显示全部楼层
dadaguaized 发表于 2019-7-17 13:52
我也是这错误,但是用了你改的代码也不行啊

问题解决了吗?怎么解决的呀
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-11-6
在线时间
4 小时
发表于 2019-11-26 09:38:30 | 显示全部楼层
gg1 发表于 2019-11-22 14:14
问题解决了吗?怎么解决的呀

同问,这个问题怎么解决啊,大家都是忽视这个编译错误还是根本就没发现?
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2019-11-5
在线时间
2 小时
发表于 2020-1-29 03:03:07 | 显示全部楼层
同样遇到此问题,在SYSTEM\sys\sys.c里,使用MDK 5.23编译,打开sys.c才能看到错误,编译并不保错,而且把里面函数都删了再编译也没事,就想知道这几个函数的作用?
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2019-11-5
在线时间
2 小时
发表于 2020-1-29 03:25:26 | 显示全部楼层
lq342538374 发表于 2019-11-26 09:38
同问,这个问题怎么解决啊,大家都是忽视这个编译错误还是根本就没发现?

我发现把里面函数全部删除编译也能通过,意思是这几个函数根本没用?
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2020-3-4
在线时间
5 小时
发表于 2020-3-17 22:12:09 | 显示全部楼层
内联汇编使用“__asm”(C++)和“asm”(C和C++)关键字声明,语法格式如下所示,内联汇编支持大部分的ARM指令,但不支持带状态转移的跳转指令,如BX和BLX 指令 。有人这样解释的,然后我也不懂怎么改。。。。
还有人说改为这样:
void MSR_MSP(u32 addr)
{
__ASM volatile("MSR MSP, r0");
__ASM volatile("BX r14");
}
我的是直接编译报错
回复

使用道具 举报

5

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2019-11-24
在线时间
24 小时
发表于 2020-4-20 21:03:12 | 显示全部楼层
viass22 发表于 2020-3-17 22:12
内联汇编使用“__asm”(C++)和“asm”(C和C++)关键字声明,语法格式如下所示,内联汇编支持大部分的ARM ...

怎么没人解答一下呢
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2020-5-8
在线时间
28 小时
发表于 2020-5-25 16:01:34 | 显示全部楼层
同问,主题问题解决了?
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2020-5-8
在线时间
28 小时
发表于 2020-5-25 16:03:20 | 显示全部楼层
void MSR_MSP(u32 addr)
{
  __ASM  MSR MSP, r0                         //set Main Stack value
  __ASM  BX r14
}

按照这段代码,上面的问题就解决了
回复

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2020-6-18
在线时间
10 小时
发表于 2020-7-4 18:30:42 | 显示全部楼层
本帖最后由 zarhani 于 2020-7-4 18:46 编辑

我也遇到这个问题……无法生成文件
Annotation 2020-07-04 182954.png
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2020-11-30
在线时间
6 小时
发表于 2020-11-30 17:22:30 | 显示全部楼层
不要打开出错的代码,再按14楼的设置就可以编译过了
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2020-8-12
在线时间
4 小时
发表于 2021-9-5 16:22:23 | 显示全部楼层
void MSR_MSP(u32 addr)
{
__ASM volatile("MSR MSP, r0");                         //set Main Stack value
__ASM volatile("BX r14");
}

参考网上老哥改法,这样就解决了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 18:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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