当前位置: 首页> 财经> 访谈 > 如何建立一个网站详细步骤_深圳企业网站制作维护_外链网站_产品如何推广

如何建立一个网站详细步骤_深圳企业网站制作维护_外链网站_产品如何推广

时间:2025/7/11 7:43:26来源:https://blog.csdn.net/mytzs123/article/details/147313790 浏览次数:0次
如何建立一个网站详细步骤_深圳企业网站制作维护_外链网站_产品如何推广
#include <stdio.h>
typedef unsigned int u32; typedef union
{struct{u32    gce_alpha:9;u32    lut_wr_sel:1;u32    lut_rd_sel:1;u32    ggc_vb_clock_gate_en:1;u32    rsvd:19;u32    autorsvd_0:1;}__attribute__((packed, aligned(4)));u32    val;
}ggc_tonecurve_ctrl_108_t;typedef struct
{ggc_tonecurve_ctrl_108_t ggc_tonecurve_ctrl_108;
}ggc_t;typedef struct
{u32 addr;       /// register addressu32 val;        /// register configure valueu32 sofDelay;   /// Delay(us) of register operation;
} reg_cfg_t;int main() {ggc_t gcc_test;gcc_test.ggc_tonecurve_ctrl_108.lut_wr_sel = 0;printf("gcc_test.ggc_tonecurve_ctrl_108.val = %d\n",gcc_test.ggc_tonecurve_ctrl_108.val);gcc_test.ggc_tonecurve_ctrl_108.lut_wr_sel = 1;printf("gcc_test.ggc_tonecurve_ctrl_108.val = %d\n",gcc_test.ggc_tonecurve_ctrl_108.val);printf("sizeof(reg_cfg_t) = %zu, sizeof(unsigned int) = %zu \n",sizeof(reg_cfg_t),sizeof(unsigned int));printf("sizeof(gcc) = %zu \n",sizeof(ggc_t));return 0;
}

1. 位域与整型的联合访问

typedef union {struct {u32 gce_alpha:9;u32 lut_wr_sel:1;// ... 其他位域} __attribute__((packed, aligned(4)));u32 val;
} ggc_tonecurve_ctrl_108_t;
  • 核心技巧:通过联合体将位域结构体与 u32 整型共享内存。

    • 位域操作:通过结构体成员(如 lut_wr_sel)直接操作特定位,代码可读性高。

    • 整体操作:通过 val 直接读写整个 32 位值,适合批量操作或寄存器写入。

  • 示例分析

    gcc_test.ggc_tonecurve_ctrl_108.lut_wr_sel = 1;

    此时 val 的二进制第 9 位(假设小端)会被置 1,val 的值变为 2^9 = 512


2. 内存布局控制

  • packed 属性:禁止编译器插入填充字节,确保位域紧密排列。

  • aligned(4) 属性:强制结构体按 4 字节对齐,保证其大小与 u32 一致。

  • 位域总和:结构体总位数为 9+1+1+1+19+1 = 32,刚好匹配 u32 的 32 位,无内存浪费。


3. 调试与验证

  • 输出验证

    gcc_test.ggc_tonecurve_ctrl_108.lut_wr_sel = 0;
    printf("val = %d\n", val); // 输出 0
    gcc_test.ggc_tonecurve_ctrl_108.lut_wr_sel = 1;
    printf("val = %d\n", val); // 输出 512(2^9)

    验证了通过位域修改联合体值的正确性。

关键字:如何建立一个网站详细步骤_深圳企业网站制作维护_外链网站_产品如何推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: