当前位置: 首页 > news >正文

网站维护工作的基本内容施工企业质量管理体系认证几年

网站维护工作的基本内容,施工企业质量管理体系认证几年,网站推广工作好做吗,网络推广100种方法网络推广渠道有哪些正是 Zephyr 的自动化关键机制:把 设备树(.dts) 里的硬件描述,自动转换成 C 代码里能直接用的宏和结构体。设备树 → 代码 的全过程拆开:1. 写设备树(.dts / .dtsi)你在 boards/.../xxx.dts 或 …

正是 Zephyr 的自动化关键机制:把 设备树(.dts) 里的硬件描述,自动转换成 C 代码里能直接用的宏和结构体。

设备树 → 代码 的全过程拆开:


1. 写设备树(.dts / .dtsi)

你在 boards/.../xxx.dts 或 SoC 的 .dtsi 文件里写:

anx7451: anx7451@39 {compatible = "analogix,anx7451";reg = <0x39>;reset-gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;init-delay-ms = <50>;
};

这只是硬件的声明,告诉内核:有个设备在 I²C 地址 0x39,带一个 reset 引脚,还有个上电延时参数。


2. 设备树编译器 (DTC) 解析

Zephyr 在构建时会调用 DTC(Device Tree Compiler),把 .dts/.dtsi 转换成一个中间形式(*.dts → .dtb → header files)。

这里会生成一个 .dts 的二进制版本(.dtb),并且 Zephyr 的 Python 脚本会再把它转换成 C 宏头文件


3. Zephyr 生成设备树头文件

build/zephyr/include/generated/ 目录里,你会看到类似:

  • devicetree_unfixed.h

  • device_extern.h

里面会有一堆自动生成的宏,比如:

/* 节点路径对应的 node id 宏 */
#define DT_N_S_soc_S_i2c_40003000_S_anx7451_39 1/* reg 属性 */
#define DT_PROP(DT_NODELABEL(anx7451), reg) 0x39/* reset-gpios 属性 → 自动包装成 gpio_dt_spec 结构体 */
#define DT_PROP(DT_NODELABEL(anx7451), reset_gpios) { .port = ..., .pin = 5, .flags = GPIO_ACTIVE_LOW }/* init-delay-ms 属性 */
#define DT_PROP(DT_NODELABEL(anx7451), init_delay_ms) 50

这些宏就是你在 C 代码里能用的“桥梁”。


4. 驱动里使用

驱动在 DEVICE_DT_DEFINE() 里就能直接用这些宏初始化 config:

static const struct anx7451_config anx7451_cfg = {.bus         = I2C_DT_SPEC_GET(DT_NODELABEL(anx7451)),.reset_gpio  = GPIO_DT_SPEC_GET(DT_NODELABEL(anx7451), reset_gpios),.init_delay_ms = DT_PROP(DT_NODELABEL(anx7451), init_delay_ms),
};

这样,.dts 里的属性值就自动变成了 C 代码里的常量


5. 运行时

当 Zephyr 启动时,驱动就能用这些配置:

static int anx7451_init(const struct device *dev)
{const struct anx7451_config *cfg = dev->config;i2c_write_dt(&cfg->bus, ...);gpio_pin_set_dt(&cfg->reset_gpio, 1);k_msleep(cfg->init_delay_ms);return 0;
}

总结流程

.dts (硬件描述)│▼
DTC + Zephyr 脚本│▼
生成 C 宏头文件 (devicetree_unfixed.h)│▼
DEVICE_DT_DEFINE() 用宏填充 config 结构体│▼
运行时驱动通过 dev->config 访问这些值

http://www.dtcms.com/a/474938.html

相关文章:

  • 网站建设教程pdf下载企业官网网页设计
  • 重启MySQL,为何重启后MySQL数据“回滚”了?
  • 非洲购物网站排名文创产品设计包括哪些方面
  • Linux 文件内容查看与编辑
  • 2022 CSP-J复赛题
  • 【cubeide】IIC通信
  • python学习之访问模式和文件定位操作
  • CTF攻防世界WEB精选基础入门:simple_php
  • CodexField 热度登顶:内容资产化赛道的加速信号
  • 00_k8s容器编排系统
  • 广西柳州网站制作公司厦门做网站排名
  • 算法学习 02
  • 广西建设监理协会官网站珠海响应式网站建设推广公司
  • 机器学习实践项目(一)- Rossman商店销售预测 - 特征工程
  • 网站首页轮播图片wordpress不支持中文
  • Blender经典像素风模拟插件 Drips Psx Efx – Playstation 1 Effects V1.4
  • 网站 备案 固话福州网站设计软件公司
  • 达梦数据库版本升级方案
  • 【开题答辩全过程】以 北上广咖啡门店分布与销售数据分析和可视化为例,包含答辩的问题和答案
  • 企业信息门户网站 建设基于多站点的网站内容管理平台的管理与应用
  • 基于Vue的高校学习讲座预约系统
  • 钦州网站建设哪家便宜莆田企业自助建站系统
  • 怎样做自己的视频网站建设网站工作室的问题疑问
  • 网站 图片水印wordpress文章数据库
  • KMSEnvelope Encryption
  • 成都住房和城乡建设厅网站鼠标垫东莞网站建设
  • 身份证批量ocr
  • ansible role配apt源
  • SNH48 抢购助手:从软件授权到自动化交易
  • 怎么把网站排名排上去软件开发费用明细