博通Broadcom SDK源码学习与开发8——内存与参数管理

本文档详细介绍了博通Broadcom SDK中内存管理的源码分析,包括内存分配方法、数据结构和初始化流程,并提及相关CLI命令。同时,阐述了参数管理的Flash分区、源码文件、CLI命令操作,强调了动态和永久参数存储的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:原创作品,严禁用于商业目的。 本系列文章将全面剖析以Bcm33xxx芯片开发Cablemodem产品的SDK源码为例,从编译系统到各个功能模块进行分析与探讨。

0.写在前篇

本系列文章来自于博通公司相关项目开发中的学习资料和开发总结,是企业或者公司项目开发过程中必备的网络相关知识,主要涉及到ecos和linux系统编译、内存管理、接口管理、HAL抽象层、以及IPV6、DHCP、TR069等网络相关协议。为维护版权和相关知识产权,请购买官方SDK和相关服务,此系列文章仅为个人学习使用,如有不妥之处和技术相关知识,请私信留言!
博通Broadcom SDK源码学习与开发1——SDK源码探究与Cable Modem 系统编译
博通Broadcom SDK源码学习与开发2——Bootloader功能和编译过程
博通Broadcom SDK源码学习与开发3——Cable Modem Docsis3.0
博通Broadcom SDK源码学习与开发4——ECOS系统数据流
博通Broadcom SDK源码学习与开发5——ECOS系统层剖析
博通Broadcom SDK源码学习与开发6——支持Linux系统
博通Broadcom SDK源码学习与开发7——HAL硬件抽象层分析
博通Broadcom SDK源码学习与开发8——内存与参数管理
博通Broadcom SDK源码学习与开发9——Interface接口管理
博通Broadcom SDK源码学习与开发10——Cable Modem IPv6地址
博通Broadcom SDK源码学习与开发11——Cable Modem DHCP管理
博通Broadcom SDK源码学习与开发12终结篇——TR069网管协议

1. 内存管理

1.1 源码介绍

源文件路径 : REV/rbb_cm_src/Bfc/BcmHeapManager/
主要功能:REV/rbb_cm_src/Bfc/BcmHeapManager/BcmHeapManager.c 重新实现了malloc/free/realloc,区别于ecos系统。
更多技术细节可以参考博文:支持Linux系统

1.2 基本方法

动态不定长内存分配
使用双向链表管理内存节点.一个为空闲内存链表,一个为已分配内存链表。
主要数据结构和变量

内存节点
typedef struct _BcmMemoryNode
{
   
    struct _BcmMemoryNode *pNextNode;
    struct _BcmMemoryNode *pPreviousNode;

    uint32 memorySizeBytes; //head len + actual len

#if (BCM_HEAP_BOUNDS_CHECK)//默认关闭
    uint32 requestedSizeBytes; //actual len
#endif

#if (BCM_HEAP_THREAD_TRACKING)//默认关闭
    /// This is the id of the thread that allocated or freed the block of memory.
    /// When a node is freed and then merged with other nodes, this information
    /// is lost.
    unsigned long threadId;
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kcyuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值