硬汉嵌入式论坛

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

[μCOS-III] 关于uCOSIII的mem_copy内存拷贝问题

[复制链接]

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2020-4-6 22:39:38 | 显示全部楼层 |阅读模式
移植ucFS到w25q64上,写文件没错,读出来却是乱码,最后排查发现是文件系统内调用Mem_Copy( )复制内存出错。实际读出来的文件内容是正确的,经过Mem_Copy复制到另一块内存就乱码了。uCOS的内核代码不应该出这么低级的错误吧?mem_init()也初始过了,难道还有其它别的配置?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-4-7 08:27:10 | 显示全部楼层
看是不是此函数调用他们自己的动态内存管理API了。
回复

使用道具 举报

6

主题

641

回帖

659

积分

金牌会员

积分
659
QQ
发表于 2020-4-7 11:01:10 | 显示全部楼层
有这样的问题?uCOS-II下移植没遇到这样的问题
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2020-4-7 11:44:57 | 显示全部楼层
eric2013 发表于 2020-4-7 08:27
看是不是此函数调用他们自己的动态内存管理API了。

他们自己的动态内存管理不靠谱?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-4-7 11:48:24 | 显示全部楼层
天马行空 发表于 2020-4-7 11:44
他们自己的动态内存管理不靠谱?

这个函数的原始函数在那个文件里面,找了下没有在uC/Common里面
回复

使用道具 举报

6

主题

641

回帖

659

积分

金牌会员

积分
659
QQ
发表于 2020-4-7 13:10:35 | 显示全部楼层
eric2013 发表于 2020-4-7 11:48
这个函数的原始函数在那个文件里面,找了下没有在uC/Common里面

uC-LIB路径下
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2020-4-7 17:24:24 | 显示全部楼层
Screenshot from 2020-04-07 17-04-26.png

在UC-LIB目录下,*psrc的数据是正确的,复制到*pdest后就乱了,很奇怪。。。
那个LIB_MEM_CFG_OPTIMIZE_ASM_EN是什么意思?我用的GUN C编译器,此目录下的文件都是原版未做任何修改。



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-4-7 18:40:19 | 显示全部楼层
天马行空 发表于 2020-4-7 17:24
在UC-LIB目录下,*psrc的数据是正确的,复制到*pdest后就乱了,很奇怪。。。
那个LIB_MEM_CFG_OPTIMIZ ...

看这个的源码,uCOS的这个Mem Copy做的比较复杂,主要是考虑了内存不对齐情况的处理和CPU_ALIGN对齐的加速处理(STM32就是4字节为一轮处理一次,不足4字节的单独处理)。

这个已经不适合M内核了,因为M内核支持非对齐访问。可以直接复制。

简单些你可以不执行 if (mem_gap_octets >= sizeof(CPU_ALIGN))

仅执行最后的while (size_rem > 0),看看是否还有问题。

另外这个LIB_MEM_CFG_OPTIMIZE_ASM_EN是汇编优化。
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2020-4-7 19:39:38 | 显示全部楼层
eric2013 发表于 2020-4-7 18:40
看这个的源码,uCOS的这个Mem Copy做的比较复杂,主要是考虑了内存不对齐情况的处理和CPU_ALIGN对齐的加 ...

谢谢!我试试看。
回复

使用道具 举报

6

主题

216

回帖

234

积分

高级会员

积分
234
发表于 2020-8-1 22:05:12 | 显示全部楼层
天马行空 发表于 2020-4-7 19:39
谢谢!我试试看。

你解决了吗?可以告知下大家吗
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2020-8-3 12:44:22 | 显示全部楼层
芯跳不止 发表于 2020-8-1 22:05
你解决了吗?可以告知下大家吗

没有哦,今年自打开工以来在忙别事情,很少撸代码了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 01:10 , Processed in 0.415921 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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