uCOSII如何自定义一个循环链表?

Cancri 2012-08-09 01:20:44
我是在S3C2440上搭一个uCOSII系统,在创建应用任务时需要创建一个循环链表来存储数据,但是在动态分配内存是遇到了问题。用malloc分配内存总是出现死机,去掉后系统却运行正常。在UCOS中是否有系统自己的分配内存的方法?如何才能创建自己的循环链表呢?
...全文
138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cancri 2012-08-29
  • 打赏
  • 举报
回复
是MMU没加入的问题,内存管理还不会啊,先用全局的固定大小凑合用一下了。多谢,多谢哈
盐厂的伙计 2012-08-12
  • 打赏
  • 举报
回复
UCOS是不带动态内存管理功能的,使用的malloc()函数是编译器提供的。这时不建议使用malloc函数,容易出现内存碎片。
你所说的死机问题,很可能是非法地址错误,建议检查地址空间。
xgbing 2012-08-09
  • 打赏
  • 举报
回复
估计你的CPU不带MMU。

不带MMU的CPU不能反复malloc和free,因为会产生内存碎片,最后导致内存耗尽。

有两个方法:
(1)使用UCOSII的内存管理,你看看邵贝贝的那本教材,这个有点复杂。
(2)创建固定大小的循环链表,或创建的链表只增大不减小,只调用malloc,或干脆不使用malloc,使用全局数据。
Cancri 2012-08-09
  • 打赏
  • 举报
回复
本人新手,请大神们提个解决方向也好啊~~~

2,432

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 其他硬件开发
社区管理员
  • 其他硬件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧