从零构建:设备树与Makefile在嵌入式Linux移植中的双核心解析

60.网卡移植-设备树详细分析 上节在内核配置的时候,我们完成了对网卡驱动的移植,在菜单操作后,我们又对设备树进行了板卡相关的一些代码配置,那么那些代码是什么含义,我们又怎么根据自己的板卡进行修改呢?? 首先我们要知道什么是设备树,为什么要又设备树。 在之前的内核版本的时候是没有设备树的,在内核源码中,存在大量对板级细节信息描述的代码,对内核而言绝大多数纯属垃圾冗余代码,我们维护的时候也不好维护。 设备树通过bootloader将硬件资源传给内核,使得内核和硬件资源描述相对独立(也就是说*.dtb文件由Bootloader读入内存, 阅读详情

从零构建:设备树与Makefile在嵌入式Linux移植中的双核心解析

在嵌入式Linux开发领域,成功将内核移植到定制硬件平台是一项关键且充满挑战的任务。这其中,设备树(Device Tree)和Makefile构成了两大技术支柱:设备树负责精准描述硬件拓扑与资源配置,而Makefile则高效管理着复杂的编译构建流程。对于从事嵌入式系统开发的工程师而言,深入理解这两项技术如何协同工作,不仅是掌握内核移植的基石,更是提升开发效率、规避常见陷阱的核心能力。本文将深入解析设备树与Makefile在移植过程中的实际应用,结合具体场景,为开发者提供一套清晰、可操作的实践指南。

1. 嵌入式Linux移植基础与环境搭建

嵌入式Linux移植的本质是让内核能够识别并驱动目标硬件平台上的所有设备。这个过程始于一个合适的开发环境。与通用PC开发不同,嵌入式开发通常需要在x86主机上为ARM或其他架构的目标板编译代码,因此交叉编译工具链是第一个需要准备的要素。

选择交叉编译工具链时,需确保其与目标芯片架构完全匹配。以ARM Cortex-A系列为例,常见的工具链包括Linaro GCC和Arm官方工具链。安装后,应通过arm-linux-gnueabihf-gcc -v验证其版本和目标架构。

开发环境配置步骤:

  • 获取官方Linux内核源码(如NXP提供的Linux BSP包)
  • 安装正确的交叉编译工具链并设置路径
  • 配置环境变量(ARCH和CROSS_COMPILE)
  • 验证编译环境是否正常工作

除了工具链,内核源码的选择也至关重要。半导体厂商通常会提供针对其评估板的BSP包,这是移植工作的理想起点。例如,NXP为i.MX6ULL处理器提供的Linux内核源码就包含了该芯片的所有基础驱动和支持。

提示:建议使用厂商推荐的稳定版本内核作为基础,以避免不必要的兼容性问题。同时,建议使用版本控制工具(如Git)管理内核源码,便于追踪修改和回滚。

2. 设备树深度解析与硬件描述实践

设备树是现代嵌入式Linux系统的硬件描述标准,它通过文本格式的.dts文件描述了系统中无法被自动检测的硬件信息。这种硬件与软件分离的设计,使得同一内核可以支持多种硬件平台,大大提高了代码的可复用性。

设备树由节点和属性组成,采用树形结构描述硬件拓扑。每个节点代表一个设备或总线,属性则描述了设备的特性和资源配置。设备树源文件(.dts)会被编译成二进制格式(.dtb),由引导加载程序传递给内核。

设备树核心结构示例:

/ {
    compatible = "fsl,imx6ull-alientek-emmc", "fsl,imx6ull";
    model = "Freescale i.MX6ULL Alientek EMMC Board";
    
    memory@80000000 {
        device_type = "memory";
        reg = <0x80000000 0x20000000>;
    };
    
    soc {
        compatible = "simple-bus";
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;
        
        usdhc2: usdhc@2194000 {
            compatible = "fsl,imx6ull-usdhc", "fsl,imx6sx-usdhc";
            reg = <0x02194000 0x4000>;
            interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&clks IMX6ULL_CLK_USDHC2>;
            status = "okay";
        };
    };
};

在实际移植过程中,引脚控制配置是设备树中最复杂的部分之一。SoC的每个引脚可能复用多种功能,需要正确配置才能确保外设正常工作。以i.MX6ULL的EMMC控制器为例,它需要配置数据线、时钟线、命令线等多组引脚。

EMMC引脚配置表示例:

引脚名称功能复用电气属性说明
SD2_CLKUSDHC2_CLK0x17059EMMC时钟信号
SD2_CMDUSDHC2_CMD0x17059EMMC命令信号
SD2_DATA0USDHC2_DATA00x17059数据线0
............
SD2_DATA7USDHC2_DATA70x17059数据线7

对于高速外设如EMMC,不同工作频率下需要不同的电气属性配置以确保信号完整性。设备树支持为同一外设定义多组引脚配置,内核会根据当前工作频率自动切换:

&usdhc2 {
    pinctrl-names = "default", "state_100mhz", "state_200mhz";
    pinctrl-0 = <&pinctrl_usdhc2_8bit>;
    pinctrl-1 = <&pinctrl_usdhc2_8bit_100mhz>;
    pinctrl-2 = <&pinctrl_usdhc2_8bit_200mhz>;
    bus-width = <8>;
    non-removable;
    no-1-8-v;
    status = "okay";
};

在实际项目中,经常会遇到需要修改外设配置的情况。例如,将EMMC从4线模式改为8线模式可以提高传输性能,这需要在设备树中修改bus-width属性并确保所有数据线都已正确配置。

3. Makefile管理下的内核编译体系

Linux内核使用了一套高度复杂的Makefile系统来管理构建过程。顶层Makefile负责架构无关的通用规则,而各子目录中的Makefile则处理特定模块的编译。理解这套系统对于成功移植至关重要。

内核配置系统基于Kconfig,允许开发者通过make menuconfig等命令选择需要编译的组件。配置结果保存在.config文件中,决定了哪些驱动和功能会被编译进内核或作为模块。

内核配置与编译命令:

# 清理编译环境
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

# 使用默认配置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig

# 自定义配置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

# 编译内核和设备树
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage dtbs -j16

# 仅编译设备树
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs

设备树的编译由专门的Makefile控制,通常位于arch/arm/boot/dts/Makefile。这个文件定义了哪些设备树文件需要被编译,以及它们的依赖关系。编译系统会根据当前内核配置,只编译与目标平台相关的设备树文件。

设备树编译控制逻辑:

  • dts/Makefile中通过dtb-y指定默认要编译的设备树
  • 通过条件判断dtb-$(CONFIG_XXX)实现配置相关的编译
  • 支持单独编译特定设备树:make imx6ull-alientek-emmc.dtb

对于嵌入式开发,通常需要创建自定义的编译脚本以简化重复命令。一个典型的编译脚本可能包含环境设置、配置选择、编译命令和结果处理等步骤。

4. 实战调试技巧与常见问题解决

内核移植过程中难免会遇到各种问题,掌握有效的调试方法可以显著提高效率。串口调试是最基本也是最重要的手段,通过内核启动日志可以了解引导过程的每个阶段。

常见启动问题及解决方法:

  1. 内核崩溃无输出

    • 检查串口配置是否正确(波特率、数据位、停止位)
    • 确认内存配置与硬件匹配
    • 验证设备树内存节点是否正确
  2. 外设无法正常工作

    • 检查设备树节点状态是否为"okay"
    • 验证时钟配置和外设基地址
    • 确认引脚配置没有冲突
  3. 内核挂载根文件系统失败

    # 内核启动参数示例
    console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw
    
    • 确认root参数指向正确的存储设备和分区
    • 检查文件系统格式是否被内核支持
    • 验证存储驱动是否正常初始化

网络驱动调试是另一个常见挑战。当硬件设计与参考平台不同时(如PHY芯片更换),需要相应修改设备树和驱动代码。关键步骤包括正确配置PHY地址、复位引脚和时钟。

网络设备树配置示例:

&fec1 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_enet1 &pinctrl_enet1_reset>;
    phy-mode = "rmii";
    phy-handle = <&ethphy0>;
    phy-reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
    phy-reset-duration = <200>;
    status = "okay";
};

&fec2 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_enet2 &pinctrl_enet2_reset>;
    phy-mode = "rmii";
    phy-handle = <&ethphy1>;
    phy-reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
    phy-reset-duration = <200>;
    status = "okay";

    mdio {
        #address-cells = <1>;
        #size-cells = <0>;

        ethphy0: ethernet-phy@2 {
            compatible = "ethernet-phy-ieee802.3-c22";
            reg = <2>;
        };

        ethphy1: ethernet-phy@1 {
            compatible = "ethernet-phy-ieee802.3-c22";
            reg = <1>;
        };
    };
};

对于使用NFS根文件系统的开发场景,需要注意内核网络驱动的初始化时机。NFS挂载依赖于内核自身的网络能力,而非U-Boot的网络栈,确保相关驱动已内置而非模块形式。

5. 从参考板到自定义板的完整移植流程

将Linux内核从参考板移植到自定义硬件是一个系统化过程,需要循序渐进地验证和调整。以下是推荐的移植流程:

阶段一:基础验证

  1. 使用参考板配置编译内核和设备树
  2. 在目标硬件上测试基础功能(串口、内存)
  3. 确认内核能够正常启动并输出信息

阶段二:外设适配

  1. 根据硬件差异修改设备树(引脚配置、外设使能)
  2. 逐个验证外设功能(EMMC、网络、USB等)
  3. 调整时钟配置和电源管理

阶段三:优化与定制

  1. 移除未使用的驱动和功能,减小内核体积
  2. 优化启动参数和内核配置
  3. 创建自定义板级支持包

为自定义板创建专属的默认配置文件是重要一步,这样可以简化后续的编译过程:

# 复制参考配置
cp arch/arm/configs/imx_v7_defconfig arch/arm/configs/imx_alientek_emmc_defconfig

# 修改自定义配置
# 禁用不必要的功能,添加自定义驱动

同样,需要为自定义板创建专属的设备树文件,并在dts/Makefile中添加相应条目:

# 在arch/arm/boot/dts/Makefile中添加
dtb-$(CONFIG_SOC_IMX6ULL) += \
    imx6ull-14x14-evk.dtb \
    imx6ull-alientek-emmc.dtb

自动化编译脚本可以大幅提高开发效率,一个典型的脚本包含环境设置、配置、编译和输出处理:

#!/bin/bash
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-

# 清理并配置
make distclean
make imx_alientek_emmc_defconfig

# 可选:启动交互配置
# make menuconfig

# 编译内核和设备树
make zImage dtbs -j$(nproc)

# 复制输出文件到指定目录
cp arch/arm/boot/zImage /output/
cp arch/arm/boot/dts/imx6ull-alientek-emmc.dtb /output/

在实际项目中,我发现在移植初期保持配置尽可能接近参考设计,然后逐步修改是最稳妥的方法。先确保内核能够正常启动,然后再逐个启用和调试外设。这种渐进式的方法可以快速定位问题,避免多个修改点相互影响导致的调试困难。

设备树调试需要耐心和细心,特别是对于引脚复用配置。建议制作一个检查清单,确保每个外设的时钟、复位、中断和引脚配置都已正确设置。同时,善用内核提供的调试工具,如proc和sys文件系统,可以实时查看外设状态和调试信息。

最终,一个成功的移植项目不仅要求硬件正常工作,还需要考虑长期维护和升级的便利性。良好的文档记录、版本控制和自动化构建系统都是不可或缺的。每次修改设备树或内核配置时,都应详细记录修改内容和原因,这将为后续的问题排查和版本升级提供极大帮助。

在JZ2440上移植设备树---下:内核和设备树移植 在JZ2440上移植设备树—下:内核和设备树移植 2、内核移植 3、设备树移植 阅读详情

相关推荐

Exynos4412 内核移植(六)—— 设备树解析

一、描述         ARM Device Tree起源于OpenFirmware (OF),在过去的Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_board_info以及

知秋一叶 1万+

嵌入式系统移植【8】——设备树和根文件系统移植

根文件系统的由来

imysy_22_的博客 1258

在JZ2440上移植设备树---上:u-boot移植

在JZ2440上移植设备树 为了用上买了之后就一直在吃灰的JZ2440,决定下一番功夫在jz2440上移植设备树。由于韦老师的视频中没有讲到设备树相关,前前后后总共花了我约五个晚上,一个周末的时间。 1、移植u-boot u-boot可以从u-boot官网上下载;我下载的版本是u-boot-2013.03。 编译器我用的是gcc-4.6.4也可使用韦老师提供的gcc-4.3.2;gcc安装...

andrew_111的博客 3390

RK3568驱动指南|第八篇 设备树插件-第82章 移植设备树插件驱动实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。​【公众号】迅为电子。

BeiJingXunWei的博客 816

tiny4412上移植linux4.4支持设备树的最终文件

tiny4412上移植linux4.4支持设备树的最终文件,包含uImage、uboot、文件系统,可下载运行。配套博客:http://blog.youkuaiyun.com/fengyuwuzu0519/article/details/74101380

最新推荐-2026年固态电池+锂电正极+硅基负极等关键技术实践PPT合集(55份).zip

2026年最新固态电池+锂电正极+硅基负极等关键技术实践PPT合集,共55份。供大家查阅。 一、固态电池 1.全固态电池用硅基负极材料研究进展 2.全固态电池硅基负极的开发思考 3.功能型固态电解质设计及界面调控 4.固态电池及关键材料研发与产业化进展 5.固态电池的产业化应用探索 6.固态锂电池开发现状及未来展望 7.固态锂离子电池正极结构设计与材料选择 8.固态锂金属电池设计与应用 9.硫化物全固态电池石墨和硅负极性能调控技术 10.硫化物固态电解质行业应用 11.聚合物基固态电解质与固态电池的关键技术 12.蜂鸟声共振技术-固态电池产业化的革命性创新 13.长安汽车固态电池应用探索 14.高安全性固态电池技术发展趋势 15.高性能硫化物全固态锂电池解决方案 16.高硅体系的膨胀解决方案 二、硅基负极 1.化学气相沉积碳包覆技术在硅基负极材料中的应用 2.新型粘结剂解决 硅基负极膨胀问题 3.氧化亚硅负极材料化学预锂化与界面设计 4.流化床法生产磷酸铁锂及硅负极材料研究 5.石墨烯包覆硅碳负极 6.硅基材料的发展现状及展望 7.硅基负极与固态电解质 8.硅基负极技术与进展 9.硅基负极材料体积膨胀解决策略 10.硅基负极材料及其结构设计 11.硅基负极材料的冶金法制备 12.硅基负极材料的发展与应用 13.硅基负极材料研究进展 14.硅基负极材料:从基础研究到产业应用 15.硅基负极析锂行为及调制研究 16.硅碳负极低成本制造技术报告 17.硅碳负极制备用多孔碳的开发 18.硅碳负极挑战和进展 19.硅碳负极新路线及关键材料制备 20.硅碳负极锂离子电池应力特性研究 21.锂电石墨负极材料工程化技术进步 22.锂离子电池负极材料 23.高容量石墨烯-硅基复合负极材料的研究进展 三、锂电正极 1.基于AI和图论结构化学的锂电池的材料基因探索 2.废旧磷酸铁锂电池梯次及再生利用进展 3.电动汽车大功率充电标准体系与检测认证实践 4.磷酸铁及磷酸铁锂异物防控管理 5.磷酸铁锂正极材料:液相法合成及产业化应用研究 6.磷酸锰铁锂正极材料的研究现状 7.车用动力电池安全标准化工作进展及未来展望 8.锂电层状氧化物正极材料的原子尺度失效机制 9.锂电正极材料工厂异物防控管理图册 10.锂离子电池高熵正极材料成分设计及储锂机制研究 11.高压实磷酸铁锂正极材料生产工艺配方.docx 12.高安全正极材料添加剂提升三元锂电安全性 13.高比能富锂锰基电池关键技术 14.高能量密度锂离子电池正极材料及应用研究 15.高镍单晶三元正极材料研究 16.三元高电压单晶正极材料

【ZYNQ Linux移植】2-获取设备树

ZYNQ移植Linux系统的第二期内容,介绍使用Vitis与Petalinux获取设备树

句点的博客 3801

ChatIE:基于ChatGPT的零样本信息抽取实战指南

信息抽取是自然语言处理中的核心任务,旨在从非结构化文本中自动识别并结构化关键信息,如实体、关系及事件。传统方法依赖大量标注数据训练专用模型,流程复杂且成本高昂。随着大语言模型的发展,通过提示工程引导模型理解任务,实现了无需训练数据的零样本抽取能力,极大降低了技术门槛与应用成本。这种范式将信息抽取重构为多轮对话问题,通过分阶段提问引导模型逐步输出结构化结果,在快速原型验证、领域适配及小规模数据探索中展现出显著技术价值。本文以ChatIE项目为例,深入解析如何利用ChatGPT API,通过精心设计的提示词与两

weixin_30540691的博客 405

RK3588设备树移植记录V1

这边实验室做的板子是基于友善的板子删掉一些外设移植过来的,但是友善官方并没有给出一个完整的SDK,或者说跟我们之前使用的SDK差距有点大,所以这边基于之前使用的SDK,将板子(这里取名为lemoV1版本,因为后面还会继续优化,添加外设)适配移植到目前使用的SDK中,使得之后可以直接通过 ***./build.sh lunch*** 选择相应的 .mk文件一键编译即可!

weixin_74253011的博客 4495

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境 注:本次实验主要是《恶意代码分析实战》一书中进入动态恶意代码分析篇章的开始,主要通过Apatedns以及Inetsim来模拟为恶意代码提供其需要的网络环境,本次实验以Lab01-03.exe为例。 一、实验环境及工具。 Vmware虚拟机:win10(win7)、kali 主要工具:Apatedns、Inetsim 二、工具的安装下载 1、Apatedns:需安装至windows虚拟机客户端(win10,win7均可) 下载地址:http

妙蛙种子吃了都会妙妙秒的妙脆角的博客 7939

国产谷歌地球,地形分析秒杀同款地图软件

咱们做地质、林业、水文、水利、电力、GIS、地图、水保、环境的,需要经常用到各种数据,比如影像、地形、矢量、模型等,但目前80%的规划大数据展示都离不开ArcGIS,令人头大的是很多朋友连ArcGIS软件安装起来都费劲。。。 那不会ArcGIS又装不了Google Earth怎么开展工作? 今天推荐大家一款国产免费专业地图浏览下载测量分析神器—图新地球 图新地球,国产三维gis软件。可以查看高清卫星影像地形以及其他很多常用电子地图,对地图需求的掌握远胜过Google Maps,而且上手比国外软件要简单

GISWorld3D的博客 3687

手把手教你玩转Linux嵌入式操作系统的移植和裁剪--第二部分:内核移植实战2.3 设备树(Device Tree)详解

通过掌握设备树的编写与调试,开发者可以高效完成嵌入式系统的硬件适配与驱动开发。属性是键值对,用于描述节点的具体信息。描述硬件信息,主要由。

amy_mhd的博客 743

智能车图像处理11-进阶篇3--中线累积差值的统计

中线累积差值的统计在后面判断小S,以及长直道的时候都有用到,关键点在于中线的跳变 第12 - 13 行:comulants1 和comlants2代表的是两种不同的累差,取的行数不同 第14-17 行:comulants2取6到25行,其实就是My_Abs(LCenter[i], LCenter[i - 1])的累加 第18-21 行:comulants1去第1到40行 第27- 行: 计算了一下右线的开始于最终结束行,这里判断R_black是否为0,是和中线的提取中g

taiyuezyh的博客 3831

linux设备树详解

现在的linux内核(Linux3.X)都已支持设备树机制(dts),不管你是玩内核还是玩驱动,一定会碰到设备树,而网上虽然有很多博客,但都讲的不够清晰,看了还是不懂,半桶水,学员急需一套讲解设备树比较透彻的课程,所以我们来了,致力于帮助广大学员扫清设备树在驱动以及内核学习中的障碍。

基于STM32L4XX、HAL库的Ra-01SC-P LoRa模块驱动程序设计

0x22) { // SX1276/SX1278版本号。// 发射功率(2-20)// 工作频率(Hz)// 编码率(5-8)

zhusl6688的博客 426

RT-DETR改进策略【卷积层】| CVPR2025 GBConv轻量门控瓶颈卷积 低秩瓶颈降参 + 门控聚焦形态,强效捕捉纤细目标

裂缝形态不规则、纹理纤细,传统卷积参数大、计算冗余,且无法动态聚焦裂缝形态;背景噪声强易干扰特征提取,需要轻量且能自适应聚焦裂缝形态的卷积单元,因此提出轻量门控瓶颈卷积 GBC。

Limiiiing的博客 142

系统移植3----设备树

系统移植----设备树,根文件系统

m0_67683054的博客 482

lammps教程:in文件结构详解以及一个比较实用的in文件模板

lammps软件只是一个求解器,没有可视化的前处理和后处理软件,所有的命令只能通过代码的方式输入到求解器进行求解计算。 所有的命令都被写到一个称为“in”的文件里,对于初学者来说,熟悉in文件的编写是一个难点。 in文件其实就是一个文本文档,也没有要求文件名或者后缀名中必须带有“in”字样,用任何文件名均可运行。 in文件里的代码是按照编写的顺序进行解释执行,对于大部分命令行来说,前后顺序影响并不是很大,但是,对于一些命令,在执行过程中需要某个参数,则这个参数的定义和计算必须写在命令执行之前。 例如,对晶体

lammps_jiayou的博客 2万+

tiny4412学习(二)之移植linux-4.x支持设备树

硬件平台:tiny4412系统:linux-4.4文件系统:busybox-1.25编译器: arm-none-linux-gnueabi-gcc (gcc version 4.8.3 20140320)uboot:友善自带uboot,见上节 实验参考摩斯电码的博客: http://www.cnblogs.com/pengdonglin137/p/5137941.html http://

风雨无阻 6767

Unlocking Decoding-time Controllability: Gradient-FreeMulti-Objective Alignment with Contrastive Pr

将基于庞大网络语料库训练的大型语言模型(LLMs)(OpenAI,2023;Touvron 等,2023;Google,2023)与人类偏好对齐,是减少产生不安全(Wei 等,2023)、幻觉(Zhang 等,2023b)和有偏见(Gallegos 等,2023)内容的重要一步。随着偏好学习技术(如 PPO(Schulman 等,2017)、DPO(Rafailov 等,2023)及其他变体(Azar 等,2023;Ethayarajh 等,2024;

qq_52053775的博客 1169

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

设备树之emmc驱动移植

硬件设备:itop4412开发板 内核版本linux-3.8.1 设备树方式减少了设备的冗余编码,同时使移植变得更加高效。eMMC作为开发板的基础,十分重要。 设备树用的是内核自带的smdk4412.dts vim arch/arm/boot/dts/exynos4412-smdk4412.dts 在设备树中添加如下代码: 87 ldo22_reg:

cqxcool66的博客 5719

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

设备树文件编译与反编译

一、设备树编译有两种方式1、将设备树文件拷贝到内核源码的arch/*(处理器平台)/boot/dts/*(厂家)/目录下,   执行make dtbs2、dtc -I dts -O dtb  *.dts &gt; my.dtb二、设备树反编译dtc -I dtb -O dts *.dtb &gt; my.dts...

SU3752的博客 5180

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

linux设备树dts移植详解

【转】 摘 要:设备树的引入减少了内核为支持新硬件而需要的改变,提高代码重用,加速了Linux 支持包的开发,使得单个内核镜像能支持多个系统。作为U-Boot 和Linux 内核之间的动态 接口,本文阐述了设备树的数据存储格式以及源码描述语法,进而分析了U-Boot 对扁平设 备树的支持设置,Linux 内核对设备树的解析流程。 关键词:扁平设备树; DTS; PowerPC; Linu

cosmoslhf的专栏 5万+

tiny4412学习(四)之移植linux-设备树(2)设备树之LED点灯

硬件平台:tiny4412系统:linux-4.4文件系统:busybox-1.25编译器: arm-none-linux-gnueabi-gcc(gcc version 4.8.3 20140320)uboot:友善自带uboot 这一节修改设备树文件,支持LED点灯。 1、设备树文件 /* * FriendlyARM's Exynos4412 based TINY4412 board

风雨无阻 3423

内核移植之设备树

作者:曹老师,华清远见嵌入式学院讲师。 拿到板子虽然板子后决定移植一个比较新的内核,于是从www.kernel.org上下了个内核源码linux-3.14.tar.xz,可是解压后却发现内核变了,变得和以前不一样。arch/arm/还在,arch/arm/mach-exynos也在,可是我的arch/arm/mach-exynox/mach-smdk4412.c哪里去了,多出一个mach-exy

1045

tiny4412学习(四)之移植linux-设备树(1)设备树基础知识及GPIO中断

硬件平台:tiny4412 系统:linux-4.4 文件系统:busybox-1.25 编译器: arm-none-linux-gnueabi-gcc (gcc version 4.8.3 20140320) uboot:友善自带uboot. 一、设备树文件中添加 (/work/linux-4.4.0/linux-4.4/arch/arm/boot/dts/exynos4412-tin

风雨无阻 5748
上一篇: 嵌入式系统的‘心脏移植’:FreeRTOS在STM32上的生态融合与未来演进
下一篇: 蓝桥杯嵌入式省赛模拟实战:电阻检测系统设计与优化
sql99
博客等级 码龄19年 168粉丝 1905原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值