asp.net做网站系统中国十大人力资源公司

张小明 2026/1/11 4:28:45
asp.net做网站系统,中国十大人力资源公司,微信开发者工具下载官网下载,南京外贸网站建设报价#x1f525;作者简介#xff1a; 一个平凡而乐于分享的小比特#xff0c;中南民族大学通信工程专业研究生#xff0c;研究方向无线联邦学习 #x1f3ac;擅长领域#xff1a;驱动开发#xff0c;嵌入式软件开发#xff0c;BSP开发 ❄️作者主页#xff1a;一个平凡而…作者简介 一个平凡而乐于分享的小比特中南民族大学通信工程专业研究生研究方向无线联邦学习擅长领域驱动开发嵌入式软件开发BSP开发❄️作者主页一个平凡而乐于分享的小比特的个人主页✨收录专栏操作系统本专栏为记录项目中用到的知识点以及一些硬件常识总结欢迎大家点赞 收藏 ⭐ 加关注哦U-Boot 和 Linux 内核的关系及设备树详解一、U-Boot 和 Linux 内核的关系系统启动流程全景图┌─────────────────────────────────────────────────────┐ │ 嵌入式系统启动流程 │ ├─────────────────────────────────────────────────────┤ │ 阶段 1硬件复位 → BootROM固化在芯片中 │ │ ↓ │ │ 阶段 2U-Boot第一阶段SPL │ │ ↓ │ │ 阶段 3U-Boot第二阶段主程序 │ │ ↓ │ │ 阶段 4Linux 内核内核初始化 │ │ ↓ │ │ 阶段 5根文件系统 → 用户空间 │ └─────────────────────────────────────────────────────┘U-Boot 的作用系统引导程序U-BootUniversal Bootloader相当于嵌入式系统的启动管家主要负责主要功能硬件初始化- CPU、内存、时钟、串口等加载内核- 从存储设备eMMC、SD卡、Flash读取内核镜像传递参数- 通过设备树和命令行参数告诉内核硬件信息引导启动- 跳转到内核入口点移交控制权类比理解建筑工地开工┌─────────┐ ┌─────────┐ ┌─────────┐ │ 毛坯房 │━━━━▶│ 施工队 │━━━━▶│ 精装房 │ │ (硬件) │ │ (U-Boot) │ │ (Linux) │ └─────────┘ └─────────┘ └─────────┘ │ │ │ 只有水泥墙 通水通电、 装修完成 和地基 搬运建材 可入住启动过程详细时序// 简化版的启动过程代码示意voidboot_process(void){// 1. 硬件复位不可控芯片自动执行// 2. U-Boot第一阶段SPLchip_hardware_init();// 初始化最基础硬件load_uboot_image();// 加载U-Boot主程序jump_to_uboot();// 跳转到U-Boot// 3. U-Boot第二阶段init_all_hardware();// 初始化所有外设load_device_tree();// 加载设备树load_kernel_image();// 加载Linux内核set_boot_args();// 设置启动参数jump_to_kernel(0x80008000);// 跳转到内核// 4. Linux内核接管// U-Boot的使命结束生命周期终止}二、设备树Device Tree全面解析什么是设备树设备树是一种描述硬件配置的数据结构相当于硬件的身份证和说明书。设备树的演进历史2005年前代码硬编码 → 2010年后设备树标准 ├─ ARM平台板级文件 ├─ 一个.dts文件描述硬件 ├─ 大量arch/arm/mach-*目录 ├─ 内核通用无需修改 ├─ 内核臃肿移植困难 ├─ 内核精简易于移植 └─ 每个板子需要内核修改 └─ 只需替换设备树文件设备树文件类型├── 源文件人类可读可编辑 │ ├── dtsDevice Tree Source - 具体板子的设备树 │ └── dtsiDevice Tree Source Include- 公共部分可被包含 │ ├── 中间文件编译过程生成 │ └── dtbDevice Tree Blob - 二进制格式由dts编译 │ └── 运行时内存中 └── FDTFlattened Device Tree - dtb加载到内存后的结构三、U-Boot设备树 vs Linux内核设备树详细对比表格特性U-Boot 设备树Linux 内核 设备树说明主要目的硬件初始化和配置内核驱动识别硬件U-Boot用来点亮硬件内核用来驱动硬件生命周期启动阶段使用整个系统运行期使用U-Boot完成任务后销毁内核持续使用修改权限可修改、可调整只读参考U-Boot可动态修改DTB再传给内核包含内容基础硬件描述U-Boot专用节点完整硬件描述内核驱动绑定典型差异可能包含内存测试节点、引导参数包含中断控制器、时钟、DMA等复杂外设文件位置U-Boot源码arch/*/dts/*.dtsLinux源码arch/*/boot/dts/*.dts通常同名但内容有差异场景示例SD卡控制器配置// U-Boot 的 SD 卡设备树片段 (简化) sdhci: sdhcife330000 { compatible snps,dwcmshc-sdhci; reg 0x0 0xfe330000 0x0 0x10000; clocks cru SCLK_SDMMC; clock-names core; u-boot,dm-spl; // ← U-Boot专用属性 status okay; }; // Linux 内核的 SD 卡设备树片段 sdhci: sdhcife330000 { compatible snps,dwcmshc-sdhci; reg 0x0 0xfe330000 0x0 0x10000; interrupts GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH; // ← 内核需要中断 clocks cru SCLK_SDMMC, cru TMCLK_SDMMC; clock-names core, timeout; resets cru SRST_SDMMC; // ← 内核需要复位控制 reset-names reset; status okay; };四、设备树的传递流程完整传递过程图示┌─────────────────────────────────────────────────────────────┐ │ 设备树从源码到内核的完整流程 │ ├─────────────┬─────────────┬─────────────┬─────────────┤ │ 阶段1 │ 阶段2 │ 阶段3 │ 阶段4 │ │ 源码准备 │ 编译阶段 │ U-Boot │ 内核使用 │ ├─────────────┼─────────────┼─────────────┼─────────────┤ │ 开发板.dts │ dtc编译器 │ 加载DTB │ 解析DTB │ │ │ ↓ │ 到内存 │ ↓ │ │ SoC.dtsi │ board.dtb │ ↓ │ 创建platform│ │ │ (二进制) │ 可选修改 │ 设备 │ │ common.dtsi │ │ 设备树 │ ↓ │ │ │ │ ↓ │ 匹配驱动 │ │ │ │ 传递给内核 │ ↓ │ │ │ │ │ 初始化硬件 │ └─────────────┴─────────────┴─────────────┴─────────────┘实际启动示例Raspberry Pi 4# 编译过程$makeARCHarm64CROSS_COMPILEaarch64-linux-gnu- dtbs# 生成: bcm2711-rpi-4-b.dtb# U-Boot 加载流程U-Bootload mmc0:1${kernel_addr_r}Image U-Bootload mmc0:1${fdt_addr_r}bcm2711-rpi-4-b.dtb U-Bootfdt addr${fdt_addr_r}# 设置设备树地址U-Bootfdt resize8192# 调整大小可选U-Bootfdtset/chosen bootargsconsolettyAMA0# 修改参数U-Bootbooti${kernel_addr_r}-${fdt_addr_r}# Linux内核启动日志片段可以看到设备树解析[0.000000]OF: fdt: Machine model: Raspberry Pi4Model B[0.000000]printk: console[ttyAMA0]enabled[0.123456]mmc0: SDHCI controller on fe340000.mmc[fe340000.mmc]五、常见问题和调试技巧1. 设备树不匹配的症状症状 可能原因 ────────────────────────────────────────────────────── 内核panic找不到根文件系统 内存地址配置错误 某个外设不工作 设备树节点缺失或配置错误 内核无法启动卡在early boot 设备树格式错误或版本不兼容2. 调试命令和工具U-Boot 中的设备树操作# 查看设备树U-Bootfdt print /soc/mmcfe330000# 修改设备树临时U-Bootfdtset/soc/mmcfe330000 statusdisabled# 保存修改后的设备树U-Bootfdt save${fdt_addr_r}# 检查设备树完整性U-Bootfdt checksLinux 内核中的设备树查看# 查看系统中的设备树$ls/proc/device-tree/# 查看特定设备属性$cat/proc/device-tree/soc/mmcfe330000/compatible# 使用dtc工具反编译DTB$ dtc -I dtb -O dts -o output.dts /boot/bcm2711-rpi-4-b.dtb3. 设备树覆盖Device Tree Overlay适用于动态修改硬件配置原设备树DTB 叠加overlay.dtbo 新配置 ↓ ↓ 基础硬件配置 特定扩展板配置六、最佳实践和开发建议设备树编写原则复用原则相同SoC使用同一个.dtsi具体板子.dts包含它最小差异板级设备树只描述与参考设计不同的部分属性规范严格按照bindings文档编写属性版本控制设备树与内核版本、U-Boot版本匹配工作流程图解U-Boot测试内核测试硬件设计完成编写设备树.dts编译测试U-Boot能初始化硬件内核能识别所有外设验证通过产品发布硬件变更仅修改.dts文件重新编译dtb更新启动介质无需重新编译内核总结核心要点回顾U-Boot是引导程序内核是操作系统两者接力完成启动设备树是硬件描述文件避免内核代码硬编码硬件信息U-Boot和内核各有设备树前者用于初始化后者用于驱动设备树可以传递和修改U-Boot可调整后再传给内核设备树使内核通用化同一内核支持不同硬件只需换设备树一句话概括U-Boot用设备树初始化硬件然后把硬件说明书设备树交给Linux内核内核根据说明书加载驱动、管理硬件。这种设计实现了硬件描述与内核代码的分离大大提高了嵌入式系统的可移植性和可维护性是现代嵌入式Linux系统的标准架构。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

自学网站开发需要多久福永网站建设多少钱

计算机毕业设计springboot毕业生就业信息管理系统的设计与实现03k1ln61 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。互联网招聘已从“信息展示”走向“智能撮合”&#xff0c…

张小明 2026/1/8 14:18:06 网站建设

查找网站建设虚拟目录渝北网站制作

字节跳动发布Bamboo-Mixer:革新电解液配方设计的AI统一框架 【免费下载链接】bamboo_mixer 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/bamboo_mixer 在能源存储领域,液体电解液作为电池、超级电容器等关键电化学器件的核心组…

张小明 2026/1/8 9:23:41 网站建设

广州做网站哪家公司好药监局网站建设方案

BG3ModManager完整指南:轻松管理博德之门3模组 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 还在为《博德之门3》模组冲突而烦恼吗?BG3ModManager作为专为博德…

张小明 2026/1/7 15:23:50 网站建设

seo针对网站做策划wordpress怎样修改域名

Kotaemon消息队列选型建议:RabbitMQ vs Kafka 在构建像Kotaemon这样的智能对话系统时,我们常常面临一个看似简单却影响深远的决策:该用哪种消息中间件?是选择轻量灵活、响应迅速的RabbitMQ,还是拥抱高吞吐、可重放的日…

张小明 2026/1/8 13:28:05 网站建设

响应式网站都有哪些wordpress 设置语言

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2026/1/9 3:53:00 网站建设

英文网站设计模板企业营销策划服务

如何快速掌握自主移动机器人:从入门到实战的完整指南 【免费下载链接】划重点自主移动机器人导论.pdf资源介绍 《自主移动机器人导论.pdf》是一本系统梳理自主移动机器人知识的实用指南,涵盖基本概念、技术原理、发展历程及应用前景等内容。本书语言通俗…

张小明 2026/1/6 4:15:56 网站建设