百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

创建你的第一个可运行的嵌入式Linux系统-2

gudong366 2025-05-15 18:19 11 浏览

@ ZHangZMo

  • 根据目标硬件更改buildroot配置准备工作-SAMA5D2 MPU Linux Boot流程
  • 修改buildroot下at91bootstrap的配置查看buildroot下at91bootstrap的配置更改buildroot下at91bootstrap的配置对比buildroot下at91bootstrap的配置
  • 修改buildroot下U-Boot的配置查看buildroot下U-Boot的配置更改buildroot下U-Boot的配置对比buildroot下U-Boot的配置

本系列专题将基于Microchip官方提供的Buildroot仓库,创建个人第一个可运行的嵌入式Linux系统。

根据目标硬件更改buildroot配置

本系列文章将基于Microchip SAMA5D2-XULT开发板进行演示,本章节讲解是基于buildroot-external-microchip-linux4microchip-2024.10/configs/sama5d2_xplained_headless_defconfig配置文件:

准备工作-SAMA5D2 MPU Linux Boot流程

  1. 上电运行MPU内部集成的ROM CODE

系统上电后,SAMA5D2 MPU首先运行内部的ROM CODE

ROM CODE将完成下述初始化操作:

  • 为Arm supervisor模式配置好系统堆栈.
  • PLLA 的初始化
  • Master Clock的选择: 当PLLA稳定后Master Clock从内部12 MHz RC切换到PLLA,接着轮询PMC状态寄存器直到MCK能够稳定,此时系统的主时钟就切换成PCK和MCK。
  • C运行环境的初始化: 变量的拷贝(从ROM拷贝到内部SRAM)和初始化操作。
  1. ROM CODE从外部存储中寻找at91bootstrap并加载到芯片内部SRAM中运行
  2. at91bootstrap完成系统时钟、DDR控制器等初始化
  3. at91bootstrap加载U-Boot到外部DDR并运行

修改buildroot下at91bootstrap的配置

查看buildroot下at91bootstrap的配置

at91bootstrap的配置文件都放在buildroot-mchp-linux4microchip-2024.10/output/build/at91bootstrap3-v4.0.10/configs目录下

at91bootstrap选择sama5d2_xplained-bsrsd_uboot_defconfig配置

配置文件名称解析:

sama5d2_xplained_ 表示配置文件对应的评估板

bsrsd_- bsr表示启用back mode(可以进行低功耗休眠和唤醒),sd表示从SD卡启动

uboot_ 表示会加载并运行uboot代码(at91bootstrap也可以选择直接加载Linux内核)

补充说明:

需要从QSPI flash启动可以参考
sama5d2_xplaineddf_qspi_uboot_defconfig配置

需要从SPI flash启动可以参考
sama5d2_xplaineddf_uboot_defconfig

需要从eMMC启动可以参考
sama5d2_xplainedemmc_uboot_defconfig

需要从Nand flash启动可以参考
sama5d2_ptc_eknf_uboot_defconfig

更改buildroot下at91bootstrap的配置

在sama5d2_xplained_headless_defconfig默认配置下,at91bootstrap会选择从板载SD卡槽启动,如果我们希望修改成板载eMMC启动,可以把at91bootstrap的配置修改为sama5d2_xplainedemmc_uboot_defconfig:

修改前:

修改后:

修改后保存即可

对比buildroot下at91bootstrap的配置

通过对比工具可以看到,两个配置文件之间的差别非常小,只是在sama5d2_xplained-bsrsd_uboot_defconfig配置文件中,选择上了SDHC1。在SAMA5D2-XULT开发板上,该SD/eMMC控制器1接的是SD卡槽,只需要在配置中使能该接口就能实现at91bootstrap从SD卡启动,否则默认从板载eMMC启动

修改buildroot下U-Boot的配置 查看buildroot下U-Boot的配置

U-Boot的配置文件都放在buildroot-mchp-linux4microchip-2024.10/output/build/uboot-linux4microchip-2024.10/configs目录下

U-Boot选择sama5d2_xplained_mmc_defconfig配置
补充说明:

需要从QSPI flash启动可以参考
sama5d2_xplained_qspiflash_defconfig配置

需要从SPI flash启动可以参考
sama5d2_xplained_spiflash_defconfig

需要从eMMC启动可以参考
sama5d2_xplained_emmc_defconfig

需要从Nand flash启动可以参考
sama5d2_ptc_ek_nandflash_defconfig

更改buildroot下U-Boot的配置

在sama5d2_xplained_headless_defconfig默认配置下,U-Boot也会选择从板载SD卡槽启动,现在我们需要修改从板载eMMC启动,可以把U-Boot的配置修改为sama5d2_xplained_emmc_defconfig:

修改前:

修改后:

修改后保存再编译即可

对比buildroot下U-Boot的配置

通过对比工具可以看到,U-Boot配置文件之间的差别非常小,由于SAMA5D27 MPU有2个SD/eMMC控制器,选择从板载eMMC或者SD卡槽启动时,影响到U-Boot启动参数的改动。比如板载eMMC放在SD/eMMC控制器0,所以root=/dev/mmcblk0p2,如果是SD卡启动(放在SD/eMMC控制器1),root根文件系统所在的存储分区需要同步修改为root=/dev/mmcblk1p2。其他BOOT COMMAND的修改也是以此类推。

相关推荐

梦幻诛仙12职业1亿元宝版本架设教程(包含资源下载)

架设教程:1;上传脚本zx到bin文件夹,给权限chmod-R777/bin2;输入zx安装宝塔面板输入对应序号,中途输入Y继续3;安装好之后,会给个宝塔地址及账号密码,复制地址...

Java零基础入门,科普Java你应该了解什么

最近很多人问我想学Java但是一点基础没有,网上看了一堆学习线路图还是无从下手。今天耗时3小时整理了一套保姆级的Java入门教程,建议收藏按照线路图一点点学习。一、Java的概况Java是1995年6...

01.Java发展历史(java发展历史简要)

1.Java发展历史Java由SunMicrosystems公司(现为Oracle公司)的JamesGosling及其团队在1991年开发,最初命名为"Oak",后改名为"...

Ubuntu16.04.1安装Java8(ubuntu终端安装java)

上篇文章讲解了怎么在Windows下安装Java8《Windows10安装Java8》,这里讲解下怎么在Linux下安装Java。由于之前已经安装了Ubuntu16.04.1《VmwareWorkst...

性能测试能力提升-JVM GC监控和优化

一、背景接着上一篇的知识:性能测试能力提升-JVMGC原理,本篇文章,我们将主要介绍JVMGC监控和优化相关的知识:命令行方式监控GC图形化方式监控GC什么时候需要开始GC优化?GC优化的目的GC...

Spring Boot Jar 包秒变 Docker 镜像实现多环境部署

你是否在互联网大厂后端开发工作中,遇到过这样的困扰?当完成一个SpringBoot项目开发,准备将Jar包部署到不同环境时,却发现各个环境依赖不同、配置复杂,部署过程繁琐又容易出错,不仅耗费...

「JDK 11」关于 Java 模块系统,看这一篇就够了

继2014年3月Java8发布之后,时隔4年,2018年9月,Java11如期发布,其间间隔了Java9和Java10两个非LTS(LongTermSupp...

对Java学习的10条建议(对java的认识和理解)

不少Java的初学者一开始都是信心满满准备迎接挑战,但是经过一段时间的学习之后,多少都会碰到各种挫败,以下北风网就总结一些对于初学者非常有用的建议,希望能够给他们解决现实中的问题。Java编程的准备:...

JAVA入门教程-第1章 概述(java入门指南)

大道至简-JAVA入门教程在本教程中,你将学习Java语言的基础知识。Java基础内容涵盖:Java基础概念、Java词法结构、Java数组、Java流程控制、Java字符串、Java...

推荐一款Java音频视频编码器,很赞

Jave2是什么JAVE2(Java音频视频编码器)库是ffmpeg项目上的Java包装器。开发人员可以利用JAVE2将音频和视频文件从一种格式转码为另一种格式。在示例中,您可以将AVI文件转换为MP...

【JAVA教程】JAVA入门及开发环境安装

一、Java开发环境概述Java开发需要三个核心组件:JDK(JavaDevelopmentKit)-Java开发工具包,开发、编译、调试Java程序JRE(JavaRuntimeE...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

记Tomcat优化方案(tomcat优化的几种方法)

Tomcat服务吞吐量评估方案问题:评估方案在一台8核16G的linux服务器上,使用tomcat容器部署服务。在正常情况下如何评估这个tomcat服务可处理的连接数,即服务的吞吐量,请在正常情况下考...

JVM GC诡异问题排查,k8s差点害死我……

前言本文将通过一个真实的生产环境案例,详细展示如何系统性地排查和解决JVM垃圾收集问题。这个案例涵盖了从问题发现、分析诊断到最终解决的完整过程,对于理解JVM调优实战具有重要的参考价值。系统背景我们的...

Thorium Reader - 功能强大的跨平台免费电子书阅读器

在日常阅读日益普及的今天,选择一款合适的电子书阅读器至关重要。ThoriumReader作为一款独具特色的阅读应用,正逐渐在众多同类产品中崭露头角,为用户带来了卓越的阅读体验。  跨平台的便捷性...