硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4239|回复: 13
收起左侧

[RL-RTX] 使用KEIL5.25移植RL_RTX4系统出现警告信息

[复制链接]

36

主题

1449

回帖

1557

积分

至尊会员

积分
1557
发表于 2019-1-16 15:43:22 | 显示全部楼层 |阅读模式
今天使用KEIL5.25移植F429对应的的RL_RTX4系统出现警告,使用起来没发现异常,但是不知道真正的原因,心里没底会不会引起异常,特来请教各位。下面描述一下问题:
1.编译之后出现的警告信息如下:..\..\RL-ARM\RL-RTX\portable\rt_HAL_CM.h(91): warning:  #3731-D: intrinsic is deprecated    百度查询一下,官方给出的解释:http://www.keil.com/support/docs/3783.htm。我看了好像是不推荐使用某些函数造成的。如果忽视这些警告,会不会有什么隐患呢?
2.rt_HAL_CM.h文件中:
1547623997(1).jpg
#define __USE_EXCLUSIVE_ACCESS 它的定义是导致警告出现的源头,但是无论是在KEIL4还是在KEIL5下面使用RL_RTX4,默认都会定义__USE_EXCLUSIVE_ACCESS,但是在KEIL4就没有警告,在KEIL5就出现了警告。但是用起来感觉没有任何异常。不知道会不会留下什么隐患,希望懂的人回答一下,多谢了。

V6-001_不一样的流水灯(软件定时器、状态机)5.rar

1.74 MB, 下载次数: 38

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107775
QQ
发表于 2019-1-16 16:54:40 | 显示全部楼层
直接屏蔽警告就好,我一直是这么用的。

否则要升级到MDK5里面带的新版,看此贴升级:
http://www.armbbs.cn/forum.ph ... 6696&extra=page%3D1
回复

使用道具 举报

36

主题

1449

回帖

1557

积分

至尊会员

积分
1557
 楼主| 发表于 2019-1-16 20:17:32 | 显示全部楼层
eric2013 发表于 2019-1-16 16:54
直接屏蔽警告就好,我一直是这么用的。

否则要升级到MDK5里面带的新版,看此贴升级:

好的,忽视警告,不影响正常使用哈?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107775
QQ
发表于 2019-1-17 00:11:56 | 显示全部楼层
sanit 发表于 2019-1-16 20:17
好的,忽视警告,不影响正常使用哈?

不影响,你可以用V6的二代示波器或者V6综合Demo测试下,例子比较复杂,也具有代表性。
屏蔽方法:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=86086
回复

使用道具 举报

36

主题

1449

回帖

1557

积分

至尊会员

积分
1557
 楼主| 发表于 2019-1-17 07:29:35 | 显示全部楼层
eric2013 发表于 2019-1-17 00:11
不影响,你可以用V6的二代示波器或者V6综合Demo测试下,例子比较复杂,也具有代表性。
屏蔽方法:
http ...

多谢。
回复

使用道具 举报

5

主题

582

回帖

597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
597
发表于 2019-1-21 08:45:13 | 显示全部楼层
eric2013 发表于 2019-1-16 16:54
直接屏蔽警告就好,我一直是这么用的。

否则要升级到MDK5里面带的新版,看此贴升级:

奇怪,为啥现在intrinsic指令不推荐了,这个ldrex和strex指令必须只能用intrinsic访问啊
回复

使用道具 举报

5

主题

582

回帖

597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
597
发表于 2019-1-21 09:00:03 | 显示全部楼层
我去网上找来下资料,keil官网解释ARMCC: warning: #3731-D: intrinsic is deprecated中有这句话:The ARM compiler does not guarantee to preserve the state of the exclusive monitor. This is why the __ldrex, __ldrexd, __strex and __strexd intrinsics are deprecated.

如何理解这句话?我认为是不是说在带cache的arm中,因为访存会被cache,因此编译器只按照字面解释这种intrinsic指令无法保证真正的访存,也就是说编译器不会自动生成dsi,dsb这种刷新cache的指令,因此deprecated,但是在不带cache的mcu中还是可用的?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107775
QQ
发表于 2019-1-21 11:51:14 | 显示全部楼层
myxiaonia 发表于 2019-1-21 09:00
我去网上找来下资料,keil官网解释ARMCC: warning: #3731-D: intrinsic is deprecated中有这句话:The ARM  ...

这个好像是MDK5的问题,移植MDK5里面带的RTX4就没有这个问题

QQ截图20190121115144.jpg
回复

使用道具 举报

5

主题

582

回帖

597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
597
发表于 2019-1-21 13:51:02 | 显示全部楼层
eric2013 发表于 2019-1-21 11:51
这个好像是MDK5的问题,移植MDK5里面带的RTX4就没有这个问题

高版本的armcc有这个warnning吧,难道cortex-a系列已经放弃这种做法了吗,又要回到开关中断这种老办法了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107775
QQ
发表于 2019-1-21 13:53:49 | 显示全部楼层
myxiaonia 发表于 2019-1-21 13:51
高版本的armcc有这个warnning吧,难道cortex-a系列已经放弃这种做法了吗,又要回到开关中断这种老办法了

我用的是最新版的AC5,没问题。

AC6没测,应该是支持的。
回复

使用道具 举报

5

主题

582

回帖

597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
597
发表于 2019-1-21 16:01:34 | 显示全部楼层
eric2013 发表于 2019-1-21 13:53
我用的是最新版的AC5,没问题。

AC6没测,应该是支持的。

我网上找各种知识,没有找到ldrex有cache时的确切说法

硬汉可以设计一个实验,看看mpu设不设置写穿,到底会不会出现出错的情况
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107775
QQ
发表于 2019-1-21 17:04:02 | 显示全部楼层
myxiaonia 发表于 2019-1-21 16:01
我网上找各种知识,没有找到ldrex有cache时的确切说法

硬汉可以设计一个实验,看看mpu设不设置写穿, ...

之前测试RTX5,在H7上面,没发现什么问题。

RTX5里面有几个专门的原子操作API
QQ截图20190121170303.jpg
回复

使用道具 举报

36

主题

2041

回帖

2149

积分

至尊会员

积分
2149
发表于 2019-1-22 14:44:01 | 显示全部楼层
myxiaonia 发表于 2019-1-21 09:00
我去网上找来下资料,keil官网解释ARMCC: warning: #3731-D: intrinsic is deprecated中有这句话:The ARM  ...

像RTX5一样,改用汇编操作ldrex和strex靠谱,编译生成的汇编一切皆有可能。

Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

28

主题

274

回帖

358

积分

高级会员

积分
358
发表于 2020-4-14 16:10:58 | 显示全部楼层
解决方法如上
QQ图片20200414161036.png
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-13 11:14 , Processed in 0.374085 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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