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

个人项目记录(二)内核移植:基于i.MX6ULL的嵌入式Linux终端系统构建与多子系统控制器驱动开发—将 NXP 官方 Linux内核4.9.88 移植到韦东山IMX6ULLPro

本文是个人项目记录二内核移植基于i.MX6ULL的嵌入式Linux终端系统构建与多子系统控制器驱动开发记录了将NXP官方Linux内核4.9.88移植到百问网100ASKIMX6ULL Pro开发板的完整过程包括defconfig和设备树选择的分析过程、问题定位与原理图对比、设备树修改、驱动使能以及最终的验证是BSP移植部分中内核移植部分的详细记录U-Boot移植已在上一篇文章中完成项目及文档已开源在我的Github会随着逐步做完这个项目的BSP部分以及后面的驱动部分一直更新有完整的文档和源码欢迎Star⭐仓库地址 [https://github.com/illusOwo-ff/i.MX6ULL-bsp-driver-project]文章目录**项目及文档已开源在我的Github会随着逐步做完这个项目的BSP部分以及后面的驱动部分一直更新有完整的文档和源码欢迎Star⭐ 仓库地址 [https://github.com/illusOwo-ff/i.MX6ULL-bsp-driver-project]**[toc]一、移植背景1.1 硬件信息1.2 软件版本1.3 前置条件1.4 完整移植流程二、获取源码与确定配置2.1 下载内核源码2.2 确定defconfig2.3 确定设备树三、首次编译与启动测试3.1 编译3.2 tftp加载启动3.3 启动日志分析——定位问题四、创建自己的板级文件4.1 复制文件4.2 注册设备树到编译系统4.3 defconfig调整五、问题分析与原理图对比5.1 问题一eMMCTuning failed5.2 问题二网络PHY不工作查看原理图部分见移植uboot文章5.3 问题三SD卡error -110六、具体修改6.1 设备树修改最终完整的设备树文件 (imx6ull-my14x14-emmc.dts)6.2 defconfig修改七、编译与测试7.1 编译前检查7.2 编译内核7.3 加载启动八、验证结果8.1 eMMC8.2 SD卡8.3 网络8.4 一个非功能性问题网卡命名一、移植背景1.1 硬件信息开发板百问网 100ASK IMX6ULL Pro韦东山核心板MYC-Y6ULX米尔科技搭载 i.MX6ULL SoCDDR512MB DDR3存储4GB eMMCMTFC4GACAAM-4M IT SD卡槽网络双路以太网均使用 LAN8720A PHY芯片SMSC公司RMII接口ENET1 的 PHYU6在核心板上PHYAD0复位引脚 GPIO5_IO09SNVS_TAMPER9ENET2 的 PHYU11在底板上PHYAD1复位引脚 GPIO5_IO06SNVS_TAMPER61.2 软件版本内核版本Linux 4.9.88NXP BSP分支imx_4.9.88_2.0.0_gaNXP仓库地址https://github.com/nxp-imx/linux-imx交叉编译工具链arm-linux-gnueabihf-Linaro GCC 6.2-2016.11U-Boot版本2017.03已在上一篇文章中完成移植1.3 前置条件U-Boot移植已完成能在SD卡上正常启动网络功能已验证tftp可用eMMC中有韦东山出厂的根文件系统后续验证时挂载这个rootfs虚拟机已安装tftpd-hpatftp功能可用1.4 完整移植流程获取芯片原厂内核源码与U-Boot版本对应的分支 ↓ 确定defconfig和设备树选择和自己SoC/板子最接近的参考配置 ↓ 用参考板的配置编译内核加载到自己板子上启动 ↓ 读启动日志定位哪些功能正常、哪些有问题 ↓ 创建自己的板级文件复制defconfig和设备树重命名 ↓ 对比原理图 分析设备树确定每个问题的根因 ↓ 修改设备树 / defconfig / 驱动代码 ↓ 编译、加载、测试、验证二、获取源码与确定配置2.1 下载内核源码从NXP官方GitHub仓库下载和U-Boot版本配套的内核分支gitclone-bimx_4.9.88_2.0.0_ga --single-branch https://github.com/nxp-imx/linux-imx.git2.2 确定defconfig查找和IMX相关的defconfiglsarch/arm/configs/|grepimx输出包含imx_v4_v5_defconfig、imx_v6_v7_defconfig、imx_v7_defconfig选择imx_v7_defconfig。理由IMX6ULL是ARMv7架构的i.MX系列SoC这个defconfig就是NXP为i.MX6/i.MX7系列ARMv7芯片提供的EVK参考配置。用diff对比韦东山已移植完成的100ask_imx6ull_defconfig和NXP原厂的几个defconfig确认差异主要是格式差异韦东山的是完整展开的.config格式NXP的是精简的defconfig格式内容上imx_v7_defconfig最接近。2.3 确定设备树查看编译出来的IMX6ULL相关设备树lsarch/arm/boot/dts/|grepimx6ull按封装排除排除imx6ull-9x9-evk*9x9封装我的板子是14x14封装按板型选择选evk系列EVK是NXP公开发售的评估板第三方板厂参考EVK设计排除ddr3-arm2系列按存储类型选择imx6ull-14x14-evk-emmc.dts最接近我的板子是eMMC方案确认evk和evk-emmc的差异diffarch/arm/boot/dts/imx6ull-14x14-evk.dts arch/arm/boot/dts/imx6ull-14x14-evk-emmc.dts结果显示evk-emmc.dts的内容只是include了evk.dts然后覆盖了usdhc2节点改成8线eMMC模式。本质上是同一份配置emmc版只多了eMMC的8线配置。最终选择基于imx6ull-14x14-evk-emmc.dts创建自己的设备树。三、首次编译与启动测试3.1 编译makeARCHarmCROSS_COMPILEarm-linux-gnueabihf- imx_v7_defconfigmakeARCHarmCROSS_COMPILEarm-linux-gnueabihf- -j$(nproc)编译成功后产出内核镜像arch/arm/boot/zImage设备树arch/arm/boot/dts/imx6ull-14x14-evk-emmc.dtb3.2 tftp加载启动将编译产出物复制到tftp目录sudocparch/arm/boot/zImage /var/lib/tftpboot/sudocparch/arm/boot/dts/imx6ull-14x14-evk-emmc.dtb /var/lib/tftpboot/开发板从SD卡启动已移植好的U-Boot在U-Boot命令行setenv bootargsconsolettymxc0,115200tftp80800000zImage tftp83000000imx6ull-14x14-evk-emmc.dtb bootz80800000-83000000tftp能成功下载文件也验证了U-Boot的网络移植是成功的。不指定root内核启动后会在最后因找不到根文件系统而kernel panic这是预期行为。此时关注panic之前的启动日志。3.3 启动日志分析——定位问题正常的部分SoC内部控制器正常不需要改Linux version 4.9.88 (book100ask) Memory: 175852K/524288K available # DDR 512MB正确 console [ttymxc0] enabled # 串口正常 i2c i2c-0: IMX I2C adapter registered # I2C控制器正常 imx-sdma 20ec000.sdma: loaded firmware 3.3 # SDMA引擎正常 ci_hdrc ci_hdrc.1: USB 2.0 started # USB Host正常问题一eMMC初始化失败mmc1: Tuning failed, falling back to fixed sampling clock mmc1: error -110 whilst initialising MMC carderror -110是超时错误ETIMEDOUT。反复出现说明eMMC完全不能用。问题二网络PHY没有正常连接libphy: fec_enet_mii_bus: probed fec 20b4000.ethernet eth0: registered PHC device 0 fec 2188000.ethernet eth1: registered PHC device 1FEC MAC控制器注册了但没有任何PHY link up的消息。正常应该能看到类似attached PHY driver [SMSC LAN8710/LAN8720]的打印。问题三SD卡初始化失败mmc0: error -110 whilst initialising SD cardmmc0对应usdhc1TF卡槽同样是超时错误。问题四不需要处理EVK特有外设probe失败fxls8471: probe of 0-001e failed with error -22 mag3110 0-000e: read chip ID 0xfffffffa is not equal to 0xc4! fsl-quadspi 21e0000.qspi: unrecognized JEDEC id bytes: ff, ff, ff这些是EVK板上才有的设备加速度计、磁力计、QSPI NOR Flash100ASK板上没有这些硬件probe失败正常。后续创建自己设备树时做驱动开发时会逐步清理。四、创建自己的板级文件4.1 复制文件# 复制defconfigcparch/arm/configs/imx_v7_defconfig arch/arm/configs/my_imx_emmc_defconfig# 复制设备树基于evk-emmc版本cparch/arm/boot/dts/imx6ull-14x14-evk-emmc.dts arch/arm/boot/dts/imx6ull-my14x14-emmc.dts4.2 注册设备树到编译系统编辑arch/arm/boot/dts/Makefile在CONFIG_SOC_IMX6ULL段里加上自己的设备树编译imx6ull-my14x14-emmc.dtb \4.3 defconfig调整为什么要禁掉V6因为我的IMX6ULL是纯ARMv7芯片。如果内核同时编译V6和V7支持某些内核模块加载时可能因为指令集兼容性问题失败。对于后面要做的控制器驱动开发编译成.ko模块加载会产生问题检查CONFIG_ARCH_MULTI_V6配置IMX6ULL是纯ARMv7芯片不应编译V6支持makeARCHarmCROSS_COMPILEarm-linux-gnueabihf- my_imx_emmc_defconfiggrepCONFIG_ARCH_MULTI_V6 .config结果显示# CONFIG_ARCH_MULTI_V6 is not set4.9.88版本的defconfig默认已处理好不需要额外修改。五、问题分析与原理图对比5.1 问题一eMMCTuning failed分析过程mmc1对应usdhc2控制器。查看EVK设备树里usdhc2的配置sed-n/usdhc2/,/^};/parch/arm/boot/dts/imx6ull-14x14-evk-emmc.dts关键发现节点里没有no-1-8-v属性。这意味着内核会尝试UHS模式的1.8V信号电压切换。对比原理图核心板原理图第5页eMMC芯片MTFC4GACAAM-4M IT的VCC引脚连到VDD_3V3VDDI引脚也是3.3V供电通过去耦电容C62、C63滤波没有电压切换电路。结论eMMC信号电压固定3.3V不支持1.8V切换。必须加no-1-8-v;属性。5.2 问题二网络PHY不工作查看原理图部分见移植uboot文章问题1PHY地址在fec2节点的mdio子节点里检查ethphy0: ethernet-phy2 { reg 2; }; ethphy1: ethernet-phy1 { reg 1; };对比原理图核心板第10页ENET1的LAN8720APHYAD0引脚pin 10通过R222 10K下拉到GND → PHY地址0。而EVK设备树里写的是2。地址不匹配需要改。ENET2的PHY地址是1与EVK一致不需要改。问题2PHY复位引脚配fec1和fec2节点里都没有phy-reset-gpios属性。EVK板上PHY复位是通过SPI接口的GPIO扩展芯片74HC595间接控制的所以不需要写这个属性。但100ASK板的PHY复位是直接接到SoC的GPIO。对比原理图确认ENET1 PHY复位核心板第10页RST引脚通过R214连到SNVS_TAMPER9 GPIO5_IO09ENET2 PHY复位底板第6页RST引脚通过ENET2_nRST网络标号连到SNVS_TAMPER6 GPIO5_IO06需要在fec节点加phy-reset-gpios和phy-reset-duration属性。内核FEC驱动会自动读取这些属性并执行GPIO复位操作不需要像U-Boot那样手写C代码。问题3SMSC PHY驱动grepCONFIG_SMSC_PHY .config结果是not set。imx_v7_defconfig默认没有使能SMSC PHY驱动EVK用的是KSZ8081Micrel的PHY。需要在defconfig里加CONFIG_SMSC_PHYy。同时需要检查smsc.c里的软复位实现——在U-Boot移植时曾在phy.c里给LAN8720A加过软复位补丁。内核4.9.88版本的smsc.c中检查发现smsc_phy_reset函数已经在if条件外部调用genphy_soft_reset(phydev)意味着无条件执行软复位不需要修改smsc.c。问题4引脚配置grep-A12pinctrl_enet1:arch/arm/boot/dts/imx6ull-14x14-evk.dtsgrep-A15pinctrl_enet2:arch/arm/boot/dts/imx6ull-14x14-evk.dtsRMII数据引脚配置和100ASK板一致都是标准RMII专用引脚TX_CLK的电气属性值0x4001b031已包含SION位0x40000000。pinctrl不需要改。引脚冲突grep-nTAMPER9arch/arm/boot/dts/imx6ull-14x14-evk.dtsgrep-nTAMPER6arch/arm/boot/dts/imx6ull-14x14-evk.dtsTAMPER9在第583行被pinctrl_lcdif_reset占用LCD复位功能。TAMPER6没有被占用。进一步追踪TAMPER9的引用链greppinctrl_lcdif_resetarch/arm/boot/dts/imx6ull-14x14-evk.dts发现被lcdif节点的pinctrl-0引用。对比原理图确认100ASK板的LCD_RESET信号使用的是SoC专用的LCD_RESET引脚不是TAMPER9。所以解除TAMPER9的LCD占用不影响LCD功能。需要覆盖pinctrl_lcdif_reset清空其引脚配置。5.3 问题三SD卡error -110分析过程mmc0对应usdhc1。查看EVK设备树里usdhc1的配置sed-n/usdhc1/,/^};/parch/arm/boot/dts/imx6ull-14x14-evk.dts对比原理图确认CD引脚底板原理图第4页的TF卡座CD引脚连到信号SD1_CD。追踪到底板连接器第2页pin 53对应核心板侧标注UART1_RTS。这里涉及引脚复用知识pad名UART1_RTS_B在ALT5模式下功能是GPIO1_IO19。这和EVK设备树里的cd-gpios gpio1 19 GPIO_ACTIVE_LOW完全一致对比原理图确认电源控制底板第4页SD卡VDD直接通过上拉电阻接VDD_3V3没有GPIO控制的电源开关。底板转接板底板SD卡槽六、具体修改6.1 设备树修改最终完整的设备树文件 (imx6ull-my14x14-emmc.dts)PHY节点的覆盖方式在修改设备树时我最初尝试在fec2里重写mdio子节点并定义ethphy0: ethernet-phy0编译时报错Duplicate label ethphy0。原因是EVK设备树里已有ethphy0: ethernet-phy2新建的ethernet-phy0和ethernet-phy2是不同的节点名但label重名。后来修改后正确的做法是用ethphy0通过label直接覆盖已有节点**修改其reg属性。虽然节点名仍然是ethernet-phy2但内核使用的是reg属性的值来确定PHY地址。经验覆盖子节点内的深层节点时优先用label引用覆盖。只有创建全新节点时才需要写在父节点内部。6.2 defconfig修改在my_imx_emmc_defconfig中添加SMSC PHY驱动使能。找到PHY相关配置的位置grep-nPHY\|MICRELarch/arm/configs/my_imx_emmc_defconfig在第147行CONFIG_MICREL_PHYy下面添加CONFIG_SMSC_PHYy七、编译与测试7.1 编译前检查# 编译defconfigmakeARCHarmCROSS_COMPILEarm-linux-gnueabihf- my_imx_emmc_defconfig# 检查SMSC PHY驱动是否使能grepCONFIG_SMSC_PHY .config# 输出CONFIG_SMSC_PHYy ✓# 单独编译设备树makeARCHarmCROSS_COMPILEarm-linux-gnueabihf- dtbs# 确认设备树编译成功lsarch/arm/boot/dts/imx6ull-my14x14-emmc.dtb7.2 编译内核makeARCHarmCROSS_COMPILEarm-linux-gnueabihf- -j$(nproc)编译后检查驱动是否编译出来lsdrivers/net/phy/smsc.o# 确认SMSC驱动编译成功7.3 加载启动复制到tftp目录sudocparch/arm/boot/zImage /var/lib/tftpboot/sudocparch/arm/boot/dts/imx6ull-my14x14-emmc.dtb /var/lib/tftpboot/在U-Boot命令行这次指定挂载eMMC上的根文件系统setenv bootargsconsolettymxc0,115200 root/dev/mmcblk1p2 rootwait rwtftp80800000zImage tftp83000000imx6ull-my14x14-emmc.dtb bootz80800000-83000000八、验证结果8.1 eMMC移植前mmc1: Tuning failed, falling back to fixed sampling clock mmc1: error -110 whilst initialising MMC card移植后mmc1: new DDR MMC card at address 0001 mmcblk1: mmc1:0001 S40004 3.64 GiB mmcblk1: p1 p2 p3 EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. VFS: Mounted root (ext4 filesystem) on device 179:10.eMMC成功识别3.64GB3个分区正常rootfs成功挂载。no-1-8-v属性生效。8.2 SD卡移植前mmc0: error -110 whilst initialising SD card移植后sdhci-esdhc-imx 2190000.usdhc: Got CD GPIO mmc0: new high speed SDXC card at address aaaa mmcblk0: mmc0:aaaa SD64G 59.5 GiB mmcblk0: p1Got CD GPIO确认CD引脚配置正确。SD卡被识别为64GB SDXC卡。8.3 网络移植前fec 20b4000.ethernet eth0: registered PHC device 0 没有PHY attach和link up的信息移植后SMSC LAN8710/LAN8720 20b4000.ethernet-1:01: attached PHY driver [SMSC LAN8710/LAN8720] fec 20b4000.ethernet eth2: Link is Up - 100Mbps/Full - flow control rx/txSMSC PHY驱动成功加载LAN8720A被识别100Mbps全双工链路建立。进入Linux后手动验证ifconfigeth2192.168.5.9 netmask255.255.255.0 upping192.168.5.11# ping虚拟机成功网络完全正常。8.4 一个非功能性问题网卡命名启动日志中出现fec 20b4000.ethernet eth124: renamed from eth0 fec 20b4000.ethernet eth2: renamed from eth124 Starting network: Cannot find device eth0 Failed to bring up eth0.这是因为韦东山出厂的根文件系统里的udev规则和新内核的网卡命名不匹配。网卡硬件本身正常工作只是名字从eth0变成了eth2。这不是内核移植的问题是根文件系统配置的问题后续构建自己的rootfs时会解决。

相关文章:

个人项目记录(二)内核移植:基于i.MX6ULL的嵌入式Linux终端系统构建与多子系统控制器驱动开发—将 NXP 官方 Linux内核4.9.88 移植到韦东山IMX6ULLPro

本文是个人项目记录(二)内核移植:基于i.MX6ULL的嵌入式Linux终端系统构建与多子系统控制器驱动开发,记录了将NXP官方Linux内核4.9.88移植到百问网(100ASK)IMX6ULL Pro开发板的完整过程,包括defc…...

LDA vs PCA:用sklearn和手写代码,在随机数据集上彻底搞清区别

LDA vs PCA:从数学原理到实战选择的深度解析 引言:为什么我们需要理解这两种降维方法的差异? 在数据科学和机器学习领域,降维技术是我们处理高维数据不可或缺的工具。当我们面对成百上千个特征时,如何有效地提取最有价…...

推客系统开发定制|阶梯式提成 佣金规则后台自由配置

一、前言在私域裂变带货赛道中,合理的佣金体系是撬动流量增长的核心关键。不少商家使用标准化推客系统,存在提成比例固定、无法按业绩递增、复购无收益、商品佣金统一化等诸多问题。推广人员做到后期业绩越高收益增长越慢,逐渐失去推广热情&a…...

告别命令行!5分钟搞定SimpleFOCStudio免安装版(附中文版下载)

告别命令行!5分钟搞定SimpleFOCStudio免安装版(附中文版下载) 对于许多创客和硬件爱好者来说,调试电机参数本应是充满创造力的过程,却常常被复杂的开发环境配置所困扰。想象一下,当你拿到一块崭新的FOC驱动…...

从插值到积分:用np.interp和np.trapz,5步完成传感器数据平滑与能量估算(Python实战)

从插值到积分:用np.interp和np.trapz,5步完成传感器数据平滑与能量估算(Python实战) 在物联网和实验数据处理中,我们常常会遇到传感器采集的数据点稀疏或不均匀的问题。这种原始数据直接用于分析往往会导致结果不准确&…...

Taotoken的用量分析与账单追溯功能让财务对账更轻松

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken的用量分析与账单追溯功能让财务对账更轻松 对于依赖大模型API进行开发的企业或项目团队而言,成本核算与费用分…...

2025_NIPS_TradeMaster: A Holistic Quantitative Trading Platform Empowered by Reinforcement Learning

TradeMaster 论文总结与核心内容翻译 一、文章主要内容 TradeMaster 是一款面向强化学习量化交易(RLFT)的全栈开源平台,旨在解决 RL 技术在实际金融市场部署中面临的工程实现难、基准对比难、易用性差三大核心挑战。文章围绕该平台展开全面阐述,核心内容包括: 1. 平台定…...

Midjourney镜头类型选择终极决策树(附可下载PDF流程图):输入拍摄意图→自动匹配最优镜头词+推荐--stylize值+规避AI视觉歧义

更多请点击: https://kaifayun.com 第一章:Midjourney镜头类型选择终极决策树概览 在 Midjourney V6 中,镜头类型(Lens Type)并非独立参数,而是通过组合 --style raw、 --s 750 及语义化摄影术语提示词协…...

2025_NIPS_Team-PSRO for Learning Approximate TMECor in Large Team Games via Cooperative Reinforce...

文章核心总结与翻译 一、主要内容 本文聚焦双人零和团队博弈(如桥牌、足球),针对现有算法要么仅适用于小型博弈且有博弈论保证,要么能扩展到大型博弈但缺乏理论保证的问题,提出了两种基于策略空间响应预言机(PSRO)的改进算法,旨在高效学习近似团队协调最大最小均衡(…...

Taotoken 助力企业构建内部 AI 助手统一管理平台

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken 助力企业构建内部 AI 助手统一管理平台 当企业内部开始涌现多个 AI 应用时,例如为研发团队配备的代码助手和为…...

别再只用CIoU了!手把手教你用WIoU损失函数提升YOLOv5/v8模型精度(附代码对比)

超越CIoU:用WIoU损失函数解锁YOLOv5/v8模型的隐藏潜力 当目标检测模型的mAP指标陷入停滞,许多工程师的第一反应是调整数据增强策略或更换更复杂的网络结构。但鲜少有人意识到,损失函数这个看似基础的组件,往往才是突破精度瓶颈的…...

Python初学者项目练习28--移除列表中的多个元素

一、练习题目 定义一个函数,该函数用于从第一个列表list1中移除所有存在于第二个列表list2中的元素 二、代码 1.初始版本 代码如下: def remove_number(list1, list2):for i in range(list1):for j in range(list2):if i j:list1.remove(j)return list1…...

终极指南:用iTorrent在iOS上实现专业级种子下载的完整方案

终极指南:用iTorrent在iOS上实现专业级种子下载的完整方案 【免费下载链接】iTorrent Torrent client for iOS 16 项目地址: https://gitcode.com/gh_mirrors/it/iTorrent 你是否曾在iPhone上寻找一个真正能用的种子下载器?是否厌倦了那些功能残缺…...

射频电路自动化设计:用MATLAB脚本批量修改ADS S参数,提升仿真效率

射频电路自动化设计:用MATLAB脚本批量修改ADS S参数,提升仿真效率 在射频电路设计中,工程师经常需要面对复杂的S参数矩阵调整和大量仿真任务。传统的手动修改方式不仅效率低下,还容易引入人为错误。本文将介绍如何利用MATLAB脚本实…...

案例之 ANN案例_手机价格分类

案例之 ANN案例_手机价格分类...

如何在5分钟内为MASA模组全家桶安装中文汉化包:实用指南

如何在5分钟内为MASA模组全家桶安装中文汉化包:实用指南 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为Minecraft中MASA模组的英文界面而烦恼吗?MASA模组…...

163MusicLyrics:重新定义跨平台音乐歌词生态的技术实践

163MusicLyrics:重新定义跨平台音乐歌词生态的技术实践 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 在数字化音乐消费的今天,歌词不仅仅是歌曲…...

常用工具清单

Mem Reduct — 免费内存优化器 https://mem-reduct.com/#system-requirements Redis — Github 安装地址 Another-Redis-Desktop-Managerhttps://github.com/qishibo/AnotherRedisDesktopManager/tags redishttps://github.com/tporadowski/redis/tags...

国产电池包传感监测芯片:从AFE设计到BMS系统实战解析

1. 项目概述:从“芯”守护,让每一度电都安全在电动汽车的心脏——动力电池包里,温度、电压、电流这些关键参数哪怕出现一丝一毫的异常,都可能从量变引发质变,最终导致热失控等严重安全事故。因此,对电池包内…...

创业团队如何利用Taotoken以可控成本快速上线AI功能

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 创业团队如何利用Taotoken以可控成本快速上线AI功能 对于资源有限的创业团队而言,为产品快速集成AI能力是提升竞争力的…...

提前两小时,救一条命——从约翰·霍普金斯AI败血症预警系统看AI医疗的工程化之路

2026年5月12日,美国食品药品监督管理局(FDA)批准了一款来自约翰霍普金斯大学、由Bayesian Health商业化的AI败血症早期预警系统——Targeted Real-Time Early Warning System(以下简称TRWS)。这是FDA批准的首个持续监测…...

hcxdumptool实战指南:5大高效技巧提升无线网络安全检测效率

hcxdumptool实战指南:5大高效技巧提升无线网络安全检测效率 【免费下载链接】hcxdumptool Small tool to capture packets from wlan devices. 项目地址: https://gitcode.com/gh_mirrors/hc/hcxdumptool hcxdumptool是一款专业的无线网络安全检测工具&#…...

实战场景|一张表单看懂:段落布局才是企业表单 “清晰度天花板”

实战场景|一张表单看懂:段落布局才是企业表单 “清晰度天花板” 在企业级表单开发中,大家常常关注组件够不够用、布局够不够炫,却最容易忽略表单分段这件小事。而真正好用的表单,往往赢在细节 ——层次清晰、模块分明…...

HCV Core Protein (59-68);RGRRQPIPKA

一、基础信息多肽名称:丙型肝炎病毒 核心蛋白片段 (59-68) 英文名称:HCV Core Protein (59-68) 三字母序列:Arg-Gly-Arg-Arg-Gln-Pro-Ile-Pro-Lys-Ala 单字母序列:RGRRQPIPKA 氨基酸数量:10 aa 结构特征:线…...

2026全球AI公司终极排名:从字节跳登顶到Claude Code称霸,十大巨头全维对比

2026全球AI公司终极排名:从字节跳登顶到Claude Code称霸,十大巨头全维对比 从字节跳动登顶到SpaceX 600亿美元收购Cursor,2026年的AI牌桌已经彻底重洗。本文带你一次性搞清全球AI格局。 目录 2026全球AI公司权威排名十大AI公司深度介绍AI编程助手终极对比AI Agent…...

掌握FreeRDP的5个核心场景:从基础连接到企业级部署实战指南

掌握FreeRDP的5个核心场景:从基础连接到企业级部署实战指南 【免费下载链接】FreeRDP FreeRDP is a free remote desktop protocol library and clients 项目地址: https://gitcode.com/gh_mirrors/fr/FreeRDP 作为开源远程桌面协议的标杆实现,Fr…...

Arduino与树莓派协同开发:通信协议、实战项目与物联网应用

1. 项目概述:当开源硬件“大脑”遇上“小脑”如果你玩过乐高,大概能理解那种把不同功能的模块拼装起来,实现一个有趣功能的乐趣。在开源硬件的世界里,Arduino Uno和Raspberry Pi(树莓派)系列,就…...

别再折腾了!Windows 11下TeX Live 2024 + VS Code配置LaTeX环境保姆级教程

别再折腾了!Windows 11下TeX Live 2024 VS Code配置LaTeX环境保姆级教程 对于科研人员和学术写作者来说,LaTeX始终是专业排版的不二之选。但传统LaTeX编辑器如TeXstudio虽然功能全面,却难以融入现代开发者的工作流。本文将带你用VS Code搭建…...

iOS种子下载终极指南:iTorrent让你的iPhone变身专业下载中心

iOS种子下载终极指南:iTorrent让你的iPhone变身专业下载中心 【免费下载链接】iTorrent Torrent client for iOS 16 项目地址: https://gitcode.com/gh_mirrors/it/iTorrent 还在为iPhone无法下载种子文件而烦恼吗?iTorrent这款专业的iOS种子客户…...

实战手册:三小时精通waifu2x-caffe深度图像修复技术

实战手册:三小时精通waifu2x-caffe深度图像修复技术 【免费下载链接】waifu2x-caffe waifu2xのCaffe版 项目地址: https://gitcode.com/gh_mirrors/wa/waifu2x-caffe 你是否曾经面对一张低分辨率的老照片,渴望能看清其中的每一个细节?…...