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

设备树和api 关系

// 包含头文件定义宏和常量 #include dt-bindings/interrupt-controller/arm-gic.h #include dt-bindings/gpio/gpio.h #include dt-bindings/clock/stm32mp1-clks.h #include dt-bindings/reset/stm32mp1-resets.h / { // 1. 根节点标准属性 model Generic SoC Demo Board; compatible vendor,demo-board, vendor,generic-soc; // 指定地址范围#address-cells2: 64位地址#size-cells2: 64位大小 #address-cells 2; #size-cells 2; // 2. 内存节点必需 memory80000000 { device_type memory; reg 0x0 0x80000000 0x0 0x80000000; // 起始地址2GB, 大小2GB }; // 3. 保留内存CMA/DMA/安全内存 reserved-memory { #address-cells 2; #size-cells 2; ranges; cma: cma90000000 { compatible shared-dma-pool; reusable; reg 0x0 0x90000000 0x0 0x10000000; // 256MB CMA linux,cma-default; }; }; // 4. 中断控制器GIC-V2示例 interrupt-controllerc000000 { compatible arm,cortex-a15-gic; reg 0x0 0xc000000 0x0 0x1000, // GICD 0x0 0xc010000 0x0 0x1000; // GICC interrupt-controller; #interrupt-cells 3; // SPI/PPI编号, 触发类型, CPU掩码 interrupts GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH; }; // 5. 系统时钟源OSC clocks { osc24m: osc24m { compatible fixed-clock; #clock-cells 0; clock-frequency 24000000; }; }; // 6. 电源管理REGULATOR vcc3v3: regulator-3p3v { compatible regulator-fixed; regulator-name vcc3v3; regulator-min-microvolt 3300000; regulator-max-microvolt 3300000; regulator-always-on; regulator-boot-on; vin-supply vdd5v0; // 引用其他regulator }; // 7. 总线节点示例 soc { compatible simple-bus; #address-cells 1; // 32位地址 #size-cells 1; // 32位大小 ranges 0x0 0x0 0x40000000 0x10000000; // 映射到0x40000000 // 8. GPIO控制器 gpio0: gpio50002000 { compatible vendor,gpio-controller; reg 0x50002000 0x400; interrupts GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH; gpio-controller; #gpio-cells 2; // gpio号, 标志位 interrupt-controller; #interrupt-cells 2; // IRQ号, 触发类型 gpio-ranges gpio0 0 0 32; // 映射到Linux GPIO号0-31 clocks rcc GPIO0_CLK; // 引用时钟 clock-names gpio; pinctrl-names default; pinctrl-0 gpio0_default_pins; // 驱动API: devm_clk_get(dev, gpio) // 驱动API: devm_regulator_get(dev, vcc3v3) // 设备树属性名对应 }; // 9. I2C控制器 i2c0: i2c50001000 { compatible vendor,i2c-controller; reg 0x50001000 0x400; interrupts GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH; #address-cells 1; // I2C地址是7/10位 #size-cells 0; // I2C设备无长度 clocks rcc I2C0_CLK; clock-names i2c; i2c-scl-rising-time-ns 100; i2c-scl-falling-time-ns 20; status okay; // I2C子设备: 温度传感器 temp-sensor48 { compatible ti,tmp112; reg 0x48; // I2C地址 vcc-supply vcc3v3; interrupts-extended gpio0 5 IRQ_TYPE_EDGE_RISING; // 驱动API: i2c_new_client_device() // 内核自动创建 // 驱动API: devm_regulator_get(dev, vcc) // 驱动API: gpiod_get(dev, alert, GPIOD_IN) // alert是GPIO label }; // EEPROM eeprom50 { compatible atmel,24c16; reg 0x50; pagesize 16; address-width 8; }; }; // 10. SPI控制器 spi0: spi50003000 { compatible vendor,spi-controller; reg 0x50003000 0x400; interrupts GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH; #address-cells 1; // CS号 #size-cells 0; clocks rcc SPI0_CLK; clock-names spi; status okay; // SPI子设备: Flash flash0 { compatible jedec,spi-nor; reg 0; // CS0 spi-max-frequency 50000000; vcc-supply vcc3v3; partitions { compatible fixed-partitions; #address-cells 1; #size-cells 1; bootloader0 { label u-boot; reg 0x0 0x80000; }; }; }; // SPI设备: ADC adc1 { compatible ti,ads7846; reg 1; spi-max-frequency 2000000; interrupt-parent gpio0; interrupts 6 IRQ_TYPE_EDGE_FALLING; vcc-supply vcc3v3; pinctrl-names default; pinctrl-0 spi0_cs1_pin; }; }; // 11. PWM控制器 pwm0: pwm50004000 { compatible vendor,pwm; reg 0x50004000 0x400; #pwm-cells 2; // channel, period_ns clocks rcc PWM0_CLK; status okay; }; // 12. UART控制器 uart0: serial50005000 { compatible vendor,uart; reg 0x50005000 0x1000; interrupts GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH; clocks rcc UART0_CLK; clock-names uart; status okay; current-speed 115200; pinctrl-names default, sleep; pinctrl-0 uart0_pins_active; pinctrl-1 uart0_pins_sleep; }; // 13. DMA控制器 dma0: dma50006000 { compatible vendor,dma; reg 0x50006000 0x1000; interrupts GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH; #dma-cells 1; // channel编号 dma-channels 8; }; // 14. ADC控制器 adc0: adc50007000 { compatible vendor,adc; reg 0x50007000 0x400; interrupts GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH; clocks rcc ADC0_CLK, adc_vref_clk; clock-names adc, vref; vref-supply vref_buf; // 关键属性名与API对应关系 #io-channel-cells 1; status okay; // 驱动API: devm_regulator_get(dev, vref) // 驱动API: devm_clk_get(dev, adc) }; // 15. USB控制器 usb0: usb50008000 { compatible vendor,usb-otg; reg 0x50008000 0x1000; interrupts GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH; clocks rcc USB0_CLK, rcc USB0_PHY_CLK; clock-names otg, phy; phys usbphy0 0; phy-names usb2-phy; dr_mode otg; // 可设为host, peripheral status okay; }; // 16. Ethernet控制器 eth0: ethernet50009000 { compatible vendor,eth; reg 0x50009000 0x1000; interrupts GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH; clocks rcc ETH0_CLK, rcc ETH0_PTP_CLK; clock-names stmmaceth, ptp_ref; phy-mode rgmii; phy-handle phy0; snps,reset-gpio gpio0 7 GPIO_ACTIVE_LOW; snps,reset-active-low; snps,reset-delays-us 0 10000 10000; status okay; mdio0 { compatible snps,dwmac-mdio; #address-cells 1; #size-cells 0; phy0: ethernet-phy0 { reg 0; vcc-supply vcc3v3; }; }; }; // 17. 触摸屏控制器 touch: touch5000a000 { compatible goodix,gt911; reg 0x5d; // I2C地址实际挂在i2c0上 vdd-supply vcc3v3; reset-gpio gpio0 8 GPIO_ACTIVE_LOW; irq-gpio gpio0 9 IRQ_TYPE_EDGE_RISING; touchscreen-size-x 800; touchscreen-size-y 480; // 驱动API: devm_regulator_get(dev, vdd) // 驱动API: devm_gpiod_get(dev, reset, GPIOD_OUT_LOW) }; // 18. 显示控制器DRM display0: display5000b000 { compatible vendor,display; reg 0x5000b000 0x1000; interrupts GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH; clocks rcc DISPLAY_CLK, rcc DISPLAY_PIX_CLK; clock-names display, pixel; // 关键供电属性 vcc-supply vcc3v3; iovcc-supply vcc1v8; ports { #address-cells 1; #size-cells 0; port0 { reg 0; lcd_panel: endpoint { remote-endpoint panel_in; }; }; }; }; // LCD面板 panel { compatible panel-lvds; vcc-supply lcd_pwr; iovcc-supply vcc1v8; backlight backlight; port0 { reg 0; panel_in: endpoint { remote-endpoint lcd_panel; }; }; }; // 背光控制PWMGPIO backlight { compatible pwm-backlight; pwms pwm0 0 50000; // channel 0, 50k ns period brightness-levels 0 128 255; default-brightness-level 128; enable-gpios gpio0 10 GPIO_ACTIVE_HIGH; }; }; // 19. 复位控制器 rstc: reset-controller5000c000 { compatible vendor,reset; reg 0x5000c000 0x200; #reset-cells 1; }; // 20. 时钟控制器CCF rcc: rcc5000d000 { compatible vendor,rcc; reg 0x5000d000 0x1000; #clock-cells 1; #reset-cells 1; // 内部时钟 osc24m: osc24m_ck { compatible fixed-factor-clock; clocks osc24m; clock-div 1; clock-mult 1; }; // 门控时钟对应各外设 GPIO0_CLK: gpio0_clk { compatible gate-clock; reg 0x100; clocks osc24m; #clock-cells 0; }; I2C0_CLK: i2c0_clk { compatible gate-clock; reg 0x104; clocks osc24m; }; SPI0_CLK: spi0_clk { /* ... */ }; PWM0_CLK: pwm0_clk { /* ... */ }; UART0_CLK: uart0_clk { /* ... */ }; ADC0_CLK: adc0_clk { /* ... */ }; USB0_CLK: usb0_clk { /* ... */ }; ETH0_CLK: eth0_clk { /* ... */ }; }; // 21. 引脚控制器PINCTRL pinctrl { compatible vendor,pinctrl; reg 0x5000e000 0x1000; gpio0_default_pins: gpio0-default { pins { pinmux PIN_GPIO0_0, PIN_GPIO0_1; bias-pull-up; drive-strength 10; // mA }; }; uart0_pins_active: uart0-active { pins { pinmux PIN_UART0_TX, PIN_UART0_RX; bias-pull-up; }; }; uart0_pins_sleep: uart0-sleep { pins { pinmux PIN_UART0_TX, PIN_UART0_RX; drive-strength 0; // 高阻 }; }; spi0_cs1_pin: spi0-cs1 { pins { pinmux PIN_SPI0_CS1; bias-pull-up; }; }; }; // 22. aliases别名方便访问 aliases { serial0 uart0; i2c0 i2c0; spi0 spi0; ethernet0 eth0; }; // 23. chosen内核参数 chosen { stdout-path serial0:115200n8; bootargs consolettyS0,115200 root/dev/mmcblk0p2 rw rootwait; }; // 24. LEDs leds { compatible gpio-leds; pinctrl-names default; pinctrl-0 leds_pins; led-red { label red; gpios gpio0 12 GPIO_ACTIVE_HIGH; linux,default-trigger heartbeat; }; led-blue { label blue; gpios gpio0 13 GPIO_ACTIVE_LOW; default-state off; }; }; // 25. GPIO按键 keys { compatible gpio-keys; pinctrl-names default; pinctrl-0 keys_pins; key-power { label Power Button; linux,code KEY_POWER; gpios gpio0 14 GPIO_ACTIVE_LOW; debounce-interval 50; // ms }; }; // 26. 热管理 thermal-zones { cpu_thermal: cpu-thermal { polling-delay 1000; thermal-sensors temp_sensor 0; trips { cpu_passive: cpu-passive { temperature 75000; // 75°C hysteresis 2000; type passive; }; cpu_hot: cpu-hot { temperature 90000; hysteresis 2000; type hot; }; }; }; }; }; 用api 解析一、核心映射规则 规则1Regulator供电属性 设备树使用 name-supply 格式驱动代码使用 devm_regulator_get(dev, name) // 设备树 vcc-supply vcc3v3; // 驱动代码 struct regulator *vcc devm_regulator_get(dev, vcc); // 去掉 -supply 规则2Clock时钟属性 clock-names xxx → devm_clk_get(dev, xxx) // 设备树 clocks rcc UART0_CLK; clock-names uart; // 驱动代码 struct clk *uart_clk devm_clk_get(dev, uart); // 用 clock-names 的值 规则3GPIO属性 gpios → gpiod_get(dev, label, flags) label 或节点名决定参数 // 设备树 reset-gpio gpio0 8 GPIO_ACTIVE_LOW; 规则5PHANDLE引用 node → of_parse_phandle() // 驱动代码 struct gpio_desc *reset_gpio devm_gpiod_get(dev, reset, GPIOD_OUT_LOW); // reset 来自属性名 reset-gpio 去掉 -gpio 规则4中断属性 interrupts ... → platform_get_irq() 或 irq_of_parse_and_map() // 设备树 interrupts GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH; // 驱动代码 int irq platform_get_irq(pdev, 0); // 获取第一个中断号 // 设备树 phy-handle phy0; // 驱动代码 struct device_node *phy_node of_parse_phandle(np, phy-handle, 0); 二、逐节点API解析 1. 根节点 (/) // 获取model属性 const char *model of_property_read_string(np, model, NULL); // 获取compatible const char *compatible of_property_read_string_array(np, compatible, ...); 2. 内存节点 (memory80000000) // 内核自动解析驱动无需操作 // 可通过sysfs查看: /sys/firmware/devicetree/base/memory80000000/reg 3. 保留内存 (reserved-memory) // CMA区域自动注册到DMA子系统 // 驱动使用: dma_alloc_coherent(dev, size, dma_addr, GFP_KERNEL); 5. 时钟 (clocks) // 固定时钟被CCF(通用时钟框架)自动注册 struct clk *osc clk_get(NULL, osc24m); // 使用label作为名称 6. Regulator (vcc3v3) // 固定电压regulator struct regulator *reg devm_regulator_get(dev, vcc3v3); // regulator-name 7. GPIO控制器 (gpio50002000) // 重要gpio-ranges属性 // 映射硬件GPIO号到Linux全局GPIO号 // 驱动使用gpiod API时无需关心硬件编号 // 时钟获取 struct clk *gpio_clk devm_clk_get(dev, gpio); // 对应clock-names // Regulator获取如果有时钟就需要regulator struct regulator *vcc devm_regulator_get(dev, vcc3v3); 8. I2C控制器 (i2c50001000) // I2C驱动核心代码 struct platform_device *pdev; struct resource *res; void __iomem *base; // 1. 获取内存资源 res platform_get_resource(pdev, IORESOURCE_MEM, 0); base devm_ioremap_resource(dev, res); // 2. 获取中断 int irq platform_get_irq(pdev, 0); // 3. 获取时钟 struct clk *i2c_clk devm_clk_get(dev, i2c); // 4. 获取Pinctrl struct pinctrl *pinctrl devm_pinctrl_get_select(dev, default); // 5. 获取regulator可选 struct regulator *vcc devm_regulator_get_optional(dev, vcc); 9. I2C子设备 (temp-sensor48) // 驱动使用regmap或直接I2C API // 1. 自动获取regulator关键 struct regulator *vcc devm_regulator_get(dev, vcc); // 来自vcc-supply // 2. 获取中断GPIO使用label参数 struct gpio_desc *alert_gpio devm_gpiod_get(dev, alert, GPIOD_IN); int irq gpiod_to_irq(alert_gpio); // 3. 获取中断号如果使用了interrupts-extended int irq platform_get_irq(pdev, 0); // 4. I2C地址自动从reg属性解析 // 驱动通过client-addr获取 10. SPI控制器 (spi50003000) // 与I2C类似 struct clk *spi_clk devm_clk_get(dev, spi); struct resource *res platform_get_resource(pdev, IORESOURCE_MEM, 0); 11. SPI Flash设备 (flash0) // 内核spi-nor驱动自动处理 // 通过mtd子系统访问 12. SPI ADC设备 (adc1) struct regulator *vcc devm_regulator_get(dev, vcc); // vcc-supply struct gpio_desc *irq_gpio devm_gpiod_get(dev, irq, GPIOD_IN); // 或 int irq platform_get_irq(pdev, 0); // 来自interrupts属性 13. PWM控制器 (pwm50004000) struct clk *pwm_clk devm_clk_get(dev, pwm); // 如果有时钟 // PWM驱动注册PWM芯片 pwmchip_add(pwm_chip); // 在consumer端 struct pwm_device *pwm devm_pwm_get(dev, NULL); // 获取第一个PWM 14. UART控制器 (serial50005000) // 驱动获取serial50005000节点 struct clk *uart_clk devm_clk_get(dev, uart); struct resource *res platform_get_resource(pdev, IORESOURCE_MEM, 0); int irq platform_get_irq(pdev, 0); // Pinctrl获取 struct pinctrl *active devm_pinctrl_get_select(dev, default); struct pinctrl *sleep devm_pinctrl_get_select(dev, sleep); 15. DMA控制器 (dma50006000) // 获取中断 int irq platform_get_irq(pdev, 0); // 注册DMA设备 dma_async_device_register(dma_dev); // Consumer端 struct dma_chan *chan dma_request_chan(dev, tx); // 使用dma-names 16. ADC控制器 (adc50007000) // 关键vref-supply属性 → vref参数 struct regulator *vref devm_regulator_get(dev, vref); // 见下文详细解释 struct clk *adc_clk devm_clk_get(dev, adc); struct clk *vref_clk devm_clk_get(dev, vref); // 第二个时钟 // IIO框架注册 iio_device_register(indio_dev); // Consumer端 struct iio_channel *chan iio_channel_get(dev, channel0); 17. USB控制器 (usb50008000) // 多时钟获取 struct clk *otg_clk devm_clk_get(dev, otg); struct clk *phy_clk devm_clk_get(dev, phy); // PHY获取 struct phy *phy devm_phy_get(dev, usb2-phy); // phy-names匹配 // dr_mode属性读取 const char *dr_mode of_property_read_string(np, dr_mode, host); 18. Ethernet控制器 (eth50009000) // 时钟 struct clk *eth_clk devm_clk_get(dev, stmmaceth); struct clk *ptp_clk devm_clk_get(dev, ptp_ref); // PHY连接 struct device_node *phy_node of_parse_phandle(np, phy-handle, 0); phy of_phy_connect(dev, phy_node, ...); // GPIO复位关键 struct gpio_desc *reset_gpio devm_gpiod_get(dev, reset, GPIOD_OUT_LOW); // 属性名snps,reset-gpio → 参数reset用逗号前的标签 // 复位时序 snps,reset-delays-us 0 10000 10000; // 断言时间, 延迟时间, 恢复时间 of_property_read_u32_array(np, snps,reset-delays-us, delays, 3); 19. 触摸屏 (touch5000a000) struct regulator *vdd devm_regulator_get(dev, vdd); // 来自vdd-supply struct gpio_desc *reset_gpio devm_gpiod_get(dev, reset, GPIOD_OUT_LOW); // 注意irq-gpio属性 struct gpio_desc *irq_gpio devm_gpiod_get(dev, irq, GPIOD_IN); int irq gpiod_to_irq(irq_gpio); 20. 显示控制器 (display50007000) // 多regulator支持 struct regulator *vcc devm_regulator_get(dev, vcc); struct regulator *iovcc devm_regulator_get(dev, iovcc); // iovcc-supply // Endpoint连接 struct device_node *ep of_graph_get_endpoint_by_regs(np, 0, 0); struct device_node *remote of_graph_get_remote_port(ep); 21. 背光 (backlight) // PWM获取 struct pwm_device *pwm devm_pwm_get(dev, NULL); // 第一个PWM // GPIO使能 struct gpio_desc *enable_gpio devm_gpiod_get(dev, enable, GPIOD_OUT_HIGH); // 亮度表 of_property_read_u32_array(np, brightness-levels, levels, count); 22. 复位控制器 (reset-controller5000c000) // Consumer端 struct reset_control *rst devm_reset_control_get(dev, usb); reset_control_assert(rst); reset_control_deassert(rst); 24. Pinctrl (pinctrl) // 无需驱动直接访问通过pinctrl-names引用 // 获取states struct pinctrl_state *active pinctrl_lookup_state(pinctrl, default); struct pinctrl_state *sleep pinctrl_lookup_state(pinctrl, sleep);这是设备树Device Tree的节点标签Label语法用于为节点创建别名以便引用。语法分解dts复制spi0_pins_default: spi0-pins-default { /* 节点内容 */ };

相关文章:

设备树和api 关系

// 包含头文件&#xff08;定义宏和常量&#xff09; #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/clock/stm32mp1-clks.h> #include <dt-bindings/reset/stm32mp1-resets.h>/ …...

Docker化OpenClaw:容器环境下的智能数据抓取部署与实践

1. 项目概述&#xff1a;容器化部署的“OpenClaw”数据抓取利器最近在折腾一个数据采集项目&#xff0c;需要从一些结构复杂的网页里精准提取信息&#xff0c;传统的正则表达式和简单的爬虫库已经有点力不从心了。在社区里翻找解决方案时&#xff0c;我发现了ozbillwang/opencl…...

FT232H芯片应用指南:从USB转串口到SPI/I2C协议模拟

1. 项目概述&#xff1a;从USB到万能的串行接口如果你玩过Arduino或者树莓派&#xff0c;肯定对USB转串口模块不陌生。它就像一座桥梁&#xff0c;让电脑能和那些只懂“嘀嘀嗒嗒”串行语言的硬件设备说上话。但传统的USB转串口芯片&#xff0c;比如常见的CH340或者FT232R&#…...

C++面向对象编程核心概念与实践:从封装、继承到多态与设计模式

1. 项目概述&#xff1a;从代码仓库到面向对象思想的内化看到这个仓库标题Ayat-Gamal/Cpp_OOP_Labs&#xff0c;我第一反应是&#xff0c;这大概率是一位计算机科学或软件工程专业的学生&#xff08;或者是一位自学者&#xff09;在学习C面向对象编程&#xff08;OOP&#xff0…...

【空间计算】【复杂系统】运动几何及运动测量

一、人类运动几何的全息参数体系与依赖关系分析 1.1、空间数学理论基础框架 1. 空间数据结构体系 数据结构 数学表示 参数维度 拓扑性质 计算复杂度 适用场景 点云​ P = {p_i ∈ ℝ} 3N 无结构 O(N) 原始数据 网格​ M = (V,E,F) V:3N_v, E:2N_e, F:3N_f 二维…...

国星宇航冲刺港股:年营收7亿亏2.6亿 刚募资36亿 估值116亿 刚发射两颗实验卫星失败

雷递网 雷建平 5月14日成都国星宇航科技股份有限公司&#xff08;简称&#xff1a;“国星宇航”&#xff09;日前更新招股书&#xff0c;准备在港交所上市。在2023年12月底&#xff0c;国星宇航完成了5.22亿元融资&#xff0c;投后估值为41.2亿元&#xff0c;2024年12月底&…...

从‘听个响’到‘看出门道’:手把手教你用S-TOOLS 4.0分析WAV音频的隐写容量与波形变化

从‘听个响’到‘看出门道’&#xff1a;手把手教你用S-TOOLS 4.0分析WAV音频的隐写容量与波形变化 在数字信息时代&#xff0c;音频文件不仅是声音的载体&#xff0c;更可能成为隐藏秘密信息的"数字信封"。想象一下&#xff0c;你收到一段看似普通的音乐文件&#x…...

django-flask基于python的高校比赛服务系统设计与实现

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 高校比赛服务系统作为数字化校园建设的重要组成部分&#xff0c;旨在为学生、教师和管理员提供高效的比赛信息发布、报…...

开源停车查询工具技术解析:从数据抓取到API服务的完整架构实践

1. 项目概述&#xff1a;一个开源停车查询工具的诞生最近在GitHub上看到一个挺有意思的项目&#xff0c;叫Harperbot/openclaw-parking-query。光看名字&#xff0c;你大概能猜到它和停车查询有关。没错&#xff0c;这是一个开源的停车信息查询工具&#xff0c;或者说&#xff…...

用Python手把手模拟一个混淆电路(Garbled Circuit):从Alice和Bob的故事理解安全多方计算

用Python手把手模拟一个混淆电路&#xff1a;从Alice和Bob的故事理解安全多方计算 在数字时代&#xff0c;数据隐私的重要性日益凸显。想象这样一个场景&#xff1a;两位商业伙伴Alice和Bob希望共同计算一个商业决策&#xff0c;但都不愿意透露自己的核心数据。这种需求催生了安…...

Memo性能优化秘籍:提升Flutter应用响应速度的10个技巧

Memo性能优化秘籍&#xff1a;提升Flutter应用响应速度的10个技巧 【免费下载链接】memo Memo is an open-source, programming-oriented spaced repetition software (SRS) written in Flutter. 项目地址: https://gitcode.com/gh_mirrors/me/memo Memo是一款基于Flutt…...

人机协同智能体(Human-in-the-loop)设计模式与最佳实践

从零到落地&#xff1a;构建高效可控的人机协同智能体&#xff08;Human-in-the-loop&#xff09;设计模式与最佳实践副标题&#xff1a;从ChatGPT插件监控到企业级合规风控&#xff0c;覆盖全场景的HITL实践指南摘要/引言 问题陈述 2023年被称为大语言模型&#xff08;LLM&…...

Petastorm实战:构建端到端TensorFlow训练管道的7个步骤

Petastorm实战&#xff1a;构建端到端TensorFlow训练管道的7个步骤 【免费下载链接】petastorm Petastorm library enables single machine or distributed training and evaluation of deep learning models from datasets in Apache Parquet format. It supports ML framewor…...

Go泛型实战经验总结:何时应该在新老项目中采用泛型

Go泛型实战经验总结&#xff1a;何时应该在新老项目中采用泛型 【免费下载链接】go-generics-the-hard-way A hands-on approach to getting started with Go generics. 项目地址: https://gitcode.com/gh_mirrors/go/go-generics-the-hard-way Go泛型是Go 1.18版本引入…...

探索混沌之美:Chaos项目中逻辑斯蒂映射的三种可视化方法

探索混沌之美&#xff1a;Chaos项目中逻辑斯蒂映射的三种可视化方法 【免费下载链接】Chaos Visualizations of the connections between chaos theory and fractals through the logistic map; made for Veritasium YouTube video 项目地址: https://gitcode.com/gh_mirrors…...

基于RBAC与工作流融合的企业办公自动化系统-开题报告

目录RBAC与工作流融合的企业办公自动化系统开题报告概述关键技术分析系统架构设计预期成果与创新点实施计划与风险评估项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作点击我获取源码->->进我个人主页…...

【信息科学与工程学】【解决方案体系】第一篇 黑灯工厂解决方案06

大型电力变压器设计与制造全流程深度解析 第一部分:铁芯制造工艺体系 工艺模块 详细工艺步骤 核心工艺参数 其他参数 部件/原材料 控制指标/目标 加工设备类型 设备工艺/技巧/经验 1. 硅钢片原料检验​ 1.1 材料牌号确认(30ZH120, 27QG100等) 1.2 厚度测量(0.23mm, …...

python微信小程序的运动健身计划推荐系统

目录 系统概述核心功能技术实现应用场景 开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 系统概述 Python微信小程序运动健身计划推荐系统旨在为用户提供个性化的健身方案。该系统结合用户…...

现代Web开发工程化实践:从模板到自动化部署的完整指南

1. 项目概述&#xff1a;一个现代Web应用的基础设施蓝图 最近在梳理个人技术栈和项目模板时&#xff0c;我深度体验了 aerlinn13/saelind 这个仓库。它不是一个可以直接运行的业务应用&#xff0c;而是一个精心设计的、用于快速启动现代Web项目的 基础设施模板与开发环境配…...

Go语言ARP工具包:从协议原理到网络诊断实战

1. 项目概述&#xff1a;一个被低估的网络诊断利器 如果你在运维、网络安全或者仅仅是喜欢折腾家庭网络的圈子里混过一段时间&#xff0c;大概率听说过或者用过 arp 命令。但大多数人&#xff0c;包括很多从业者&#xff0c;对它的认知可能还停留在“查看IP和MAC地址对应关系…...

低功耗单板计算机在远程传感中的设计与优化

1. 低功耗单板计算机的远程传感革命在阿拉斯加的输油管道监控站里&#xff0c;一台体积仅相当于信用卡大小的计算机已经连续工作三年&#xff0c;仅靠两节锂电池和一块巴掌大的太阳能板维持运转。这个真实案例展示了低功耗单板计算机(SBC)在极端环境下的惊人潜力。不同于传统工…...

GUID partition table, GPT 磁盘分区表

GPT分割表 LBA0 (MBR 兼容区块) 与 MBR 模式相似的,这个兼容区块也分为两个部份,一个就是跟之前 446 bytes 相似的区块,存储了第一阶段的开机管理程式! 而在原本的分割表的纪录区内,这个兼容模式仅放入一个特殊标志的分割,用来表示此磁盘为 GPT 格式之意。而不懂 GPT 分割…...

如何批量调整图片大小?跨境电商卖家必备效率工具(附实操教程)

一、前言&#xff1a;你可能低估了“图片处理”的成本 如果你在做电商&#xff08;尤其是跨境、多平台&#xff09;&#xff0c;一定经历过这种情况&#xff1a; 同一款商品&#xff0c;不同平台尺寸要求完全不同一次上新几十个 SKU&#xff0c;每个商品多张图用 PS 一张张改…...

如何将图片上的中文翻译成西班牙语?一键搞定电商详情页,低成本出海拉美市场(实战教程)

前言 在跨境电商越来越卷的今天&#xff0c;很多卖家开始把目光从欧美市场转向一个被低估的区域——拉丁美洲&#xff08;LATAM&#xff09;和西班牙市场。 但真正做起来你会发现&#xff0c;第一个拦路虎不是物流、不是选品&#xff0c;而是&#xff1a; ❗ 图片语言问题 尤…...

ARM性能采样机制与PMSFCR_EL1寄存器详解

1. ARM性能采样机制概述在现代处理器性能分析领域&#xff0c;硬件辅助的采样技术已成为不可或缺的工具。ARM架构通过FEAT_SPE&#xff08;Statistical Profiling Extension&#xff09;扩展提供了一套完整的性能采样解决方案&#xff0c;其中PMSFCR_EL1寄存器扮演着采样过滤控…...

DPDK 教程(二):mbuf、mempool、ethdev 的数据路径

1 DPDK 教程&#xff08;二&#xff09;&#xff1a;mbuf、mempool、ethdev 的数据路径 本文对应学习路径第二步&#xff1a;把“包从网卡进来到被应用消费”的主链路读成一张图。读完你应能口述&#xff1a;描述符环 → PMD RX → mbuf 与 mempool → 用户处理 → TX burst →…...

智能体开发爆发期!程序员现在转型,还能赶上红利吗?

文章目录 前言一、为什么2026年是智能体开发的爆发元年&#xff1f;1.1 市场数据说话&#xff1a;万亿级赛道正在加速形成1.2 企业需求爆发&#xff1a;从"要不要做"到"怎么做"1.3 薪资差距拉大&#xff1a;同样3年经验&#xff0c;薪资差一倍 二、90%程序…...

OpencvSharp 算子学习教案之 - Cv2.Scharr

OpencvSharp 算子学习教案之 - Cv2.Scharr 大家好&#xff0c;Opencv在很多工程项目中都会用到&#xff0c;而OpencvSharp则是以C#开发与实现的Opencv操作库&#xff0c;对.NET开发人员友好&#xff0c;但很多API的中文资料、应用场景及常见坑点等缺乏系统性归纳&#xff0c;因…...

AMiner:研究生必备 AI 科研工具|文献调研・文献管理・代码复现一站式平台(基于 GLM 大模型)

科研中常遇到文献难找、资料混乱、算法难复现三大难题。AMiner作为一款AI for Science的AI学术科研工具&#xff0c;由清华大学唐杰教授团队研发&#xff0c;介入最新 GLM 大模型&#xff0c;提供文献调研、知识管理、代码辅助一站式服务&#xff0c;覆盖 3.3 亿文献、1.8亿专利…...

一文讲透编程基础的3大核心模块,新手入门再也不迷茫

文章目录前言一、数据结构&#xff1a;程序的骨架&#xff0c;没有它代码就是一盘散沙1.1 为什么AI写的代码你改不动&#xff1f;因为你不懂数据结构1.2 新手必学的5个核心数据结构&#xff0c;多一个都不用先学&#xff08;1&#xff09;数组&#xff1a;最基础也最重要的数据…...