OpenEdv-开源电子网

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

Keil V5.06 ARM-CC的“BUG”??

[复制链接]

1

主题

10

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-8-13
在线时间
6 小时
发表于 2024-7-25 19:18:45 | 显示全部楼层 |阅读模式
1金钱

百思不得其解,ARM-CC编译器也有这种BUG?



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-8-13
在线时间
6 小时
 楼主| 发表于 2024-7-25 19:20:17 | 显示全部楼层
本帖最后由 freelab 于 2024-7-25 19:28 编辑

DEBUG界面
两个缓冲区:
USART2_RX_BUF  0x20000C53  uchar[256]
sw_recv_buf        0x20000C48   uchar[11]

调试时总发现前一缓冲区总是跟着第二个缓冲区数值变化,不理解啊。。。
开始以为是变量命名的问题,后面换了变量名还是如此,只能说明这就是一个bug了...

回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4584
金钱
4584
注册时间
2015-1-10
在线时间
573 小时
发表于 2024-7-26 09:20:36 | 显示全部楼层
freelab 发表于 2024-7-25 19:20
DEBUG界面
两个缓冲区:
USART2_RX_BUF  0x20000C53  uchar[256]

??????两个buf的地址并不重叠,代码问题吧
回复

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-8-13
在线时间
6 小时
 楼主| 发表于 2024-7-26 11:35:11 | 显示全部楼层
本帖最后由 freelab 于 2024-7-26 11:39 编辑
阿侑kevin 发表于 2024-7-26 09:20
??????两个buf的地址并不重叠,代码问题吧
测试中发现,sw_recv_buf 有输入数据,UART2缓冲区也有数据一起更新
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4584
金钱
4584
注册时间
2015-1-10
在线时间
573 小时
发表于 2024-7-26 11:37:14 | 显示全部楼层
freelab 发表于 2024-7-26 11:35
c48 +11 =  C59 > C53
就是说,sw_recv_buf 有部分数据跟UART2_RX_BUF重叠,导致该串口无输入也有数据

??????你确定是这么算的???
回复

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-8-13
在线时间
6 小时
 楼主| 发表于 2024-7-26 11:41:59 | 显示全部楼层
阿侑kevin 发表于 2024-7-26 11:37
??????你确定是这么算的???

从计算上看,是没什么问题,sw缓冲区有数据输入的时候,uart2也有数据更新(悬空,无输入),debug时,感觉好象很同步一样
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4584
金钱
4584
注册时间
2015-1-10
在线时间
573 小时
发表于 2024-7-26 13:06:20 | 显示全部楼层
本帖最后由 阿侑kevin 于 2024-7-26 13:07 编辑
freelab 发表于 2024-7-26 11:41
从计算上看,是没什么问题,sw缓冲区有数据输入的时候,uart2也有数据更新(悬空,无输入),debug时,感 ...

你没学过16进制?没学过单片机原理???你就没想过是操作数组的时候越界了?
回复

使用道具 举报

0

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2020-5-26
在线时间
83 小时
发表于 2024-7-26 15:08:23 | 显示全部楼层
感觉是数组操作越界可能性非常大
回复

使用道具 举报

13

主题

166

帖子

0

精华

高级会员

Rank: 4

积分
791
金钱
791
注册时间
2018-12-19
在线时间
163 小时
发表于 2024-7-26 17:54:22 | 显示全部楼层
liujc 发表于 2024-7-26 15:08
感觉是数组操作越界可能性非常大

就是keil的bug才让楼主产生了数组越界
回复

使用道具 举报

13

主题

166

帖子

0

精华

高级会员

Rank: 4

积分
791
金钱
791
注册时间
2018-12-19
在线时间
163 小时
发表于 2024-7-26 17:54:51 | 显示全部楼层
就是keil的bug才让楼主产生了数组越界
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3988
金钱
3988
注册时间
2015-11-14
在线时间
541 小时
发表于 2024-7-26 23:47:38 | 显示全部楼层
代码呢, 看汇编就一目了然了
回复

使用道具 举报

0

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2023-12-6
在线时间
32 小时
发表于 2024-7-27 09:25:14 | 显示全部楼层
__attribute__((at( Address)))用这个重新定义内存地址,99.99999%是程序问题.
回复

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-8-13
在线时间
6 小时
 楼主| 发表于 2024-7-29 11:25:42 | 显示全部楼层
是数组越界引起的,sw接收缓冲区,后面测试就正常了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 06:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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