• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C嵌入式系统编程中,关于堆的申请和应用

沃尔夫斯堡的羊 2020-06-04 浏览量:595

如题,C语言中可以通过malloc()函数从堆上申请内存空间,可是小弟在学习实时操作系统基于多核编程实践中,发现操作系统应用类似于OS_MEM_MALLOC(UINT32 udHandle)这样的函数申请空间,udHandle是指向不同类型内存堆的句柄,比如私有堆,共享堆,ISRAM,DSRAM,请教:1)系统中为什么会分不同类型的堆?这些不同类型的堆和在设计SoC时所考虑的内存介质有关?内部ISRAM?DSRAM?

2)为啥在普通C编程中,通过malloc()函数从堆上申请空间时,不需要指定句柄?难道是C或系统默认?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个是因嵌入式系统环境特殊需要,因为嵌入式环境相对来说资源更紧张,有些是需要按需配置的增加的(包括内存容量等等),所以用特例化的 内存堆申请 比普通的通用的内存堆申请能更好的实现控制,这样才更符合应用场景。
    • 发布于 2020-06-04
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 1、不同的堆申请的对象不同,其实介质是差不多的

    2、普通的C编程也需要指定的,不过glibc库会对它做一个封装,封装已经默认了一个指定句柄

    • 发布于2020-06-07
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C嵌入式系统编程中,关于堆的申请和应用