找回密码
 立即注册
查看: 562|回复: 13

关于32F数组区域重叠的问题 | 已解决

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-03-12 16:14:06

7

主题

59

回帖

984

积分

高级会员

积分
984
发表于 2024-10-9 00:39:01 | 显示全部楼层 |阅读模式
本帖最后由 御坂美琴我老婆 于 2024-10-9 09:17 编辑

  最近在写一个小东西,需要一次性给串口发3000个数据,后来增加到6000个,使用串口DMA发送,定义TX[6000],RX[64],发3000的数据的时候没问题,发6000个数据的时候,发现老是有一段是乱的,再排查发现,好像有一段的RX的缓冲区

这是缓冲区定义


我把RX缓冲区的数据从0开填,然后串口发送AC 06 00 01 00 01 00 77,单片机收到之后开始发送

然后串口助手接收,就发现,发送的数据里面,有一段就是RX的缓冲区,我人都傻了

数据是从第4032个数据之后开始变成RX缓冲区的,4032+64刚好是4096,不知道是不是有什么联系,也就是说,发出来的6000个数据,是4032(TX区)+64(RX区)+1904(TX区)一共6000个,我把优化啥的都关了,结果也是一样
然后我看了一下地址的分配,好像也没啥问题

不知道是什么原因,也不知道怎么解决,才疏学浅,故发论坛请大佬们看看



========================================================================================================================================
找到原因了,感谢大家的回帖,特别鸣谢王昱顺,原来是32F 的edata是8K,xdata是4K,32G是edata是4K,xdata是8K,定义xdata[6000]超过了32Fxdata的范围,我一直以为32F和32G分配是一样的,记错了,算是闹了个乌龙,但有点奇怪为啥xdata超了没报错





回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4849

回帖

8382

积分

超级版主

DebugLab

积分
8382
发表于 2024-10-9 01:00:29 | 显示全部楼层
用_at_指定绝对地址
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4849

回帖

8382

积分

超级版主

DebugLab

积分
8382
发表于 2024-10-9 01:02:09 | 显示全部楼层
地址冲突,编译时没报错吗
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-03-12 16:14:06

7

主题

59

回帖

984

积分

高级会员

积分
984
发表于 2024-10-9 01:15:56 | 显示全部楼层
Debu*** 发表于 2024-10-9 01:02
地址冲突,编译时没报错吗

我看了keil的分配,上面图上就有,RX[64]从0x010000~0x01003F,TX[6000]从0x010040开始,看起来也没啥问题

点评

RX从0x010000开始,64字节,TX从0x010040开始,6000字节,看起来没什么问题,看看DMA配置呢,是不是DMA取错地址了  详情 回复 发表于 2024-10-9 01:29
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4849

回帖

8382

积分

超级版主

DebugLab

积分
8382
发表于 2024-10-9 01:29:38 | 显示全部楼层
御坂美*** 发表于 2024-10-9 01:15
我看了keil的分配,上面图上就有,RX[64]从0x010000~0x01003F,TX[6000]从0x010040开始,看起来也没啥问 ...

RX从0x010000开始,64字节,TX从0x010040开始,6000字节,看起来没什么问题,看看DMA配置呢,是不是DMA取错地址了

点评

还有什么数据类型不匹配和溢出的问题  详情 回复 发表于 2024-10-9 01:31
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4849

回帖

8382

积分

超级版主

DebugLab

积分
8382
发表于 2024-10-9 01:31:17 | 显示全部楼层
Debu*** 发表于 2024-10-9 01:29
RX从0x010000开始,64字节,TX从0x010040开始,6000字节,看起来没什么问题,看看DMA配置呢,是不是DMA取 ...

还有什么数据类型不匹配和溢出的问题
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-03-12 16:14:06

7

主题

59

回帖

984

积分

高级会员

积分
984
发表于 2024-10-9 01:48:15 | 显示全部楼层
Debu*** 发表于 2024-10-9 01:31
还有什么数据类型不匹配和溢出的问题

没有,都是u8
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:265
  • 最近打卡:2025-05-01 07:25:06

0

主题

206

回帖

1522

积分

金牌会员

积分
1522
发表于 2024-10-9 07:05:02 | 显示全部楼层
问题解决没,知道什么什么原因没?怎么解决的,坛里告诉一声
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:395
  • 最近打卡:2025-05-02 05:31:55

16

主题

702

回帖

2474

积分

金牌会员

积分
2474
发表于 2024-10-9 07:35:21 | 显示全部楼层
是不是内存不够,换内存大的单片机试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5454

积分

版主

积分
5454
发表于 2024-10-9 07:52:05 | 显示全部楼层
stc32f的xdata区域只有4k大小。可能是超出的部分在访问的时候被截断了,所以就像是从头又开始了一样。
截图202410090752024000.jpg

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:51 , Processed in 0.187163 second(s), 114 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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