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

news2026/5/20 18:10:28
本文是个人项目记录二内核移植基于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时会解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2628983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…