Sam9x60启动流程解析

嵌入式Linux设备树配置实战:以SAM9X60-Curiosity开发板为例 设备树是嵌入式Linux系统中描述硬件资源的关键数据结构,它将硬件信息从内核代码中分离,实现了硬件描述的可移植性和灵活性。其核心原理在于通过节点、属性、兼容性字符串等层级化语法,为内核提供一份硬件“地图”,使得同一内核可以适配不同的硬件平台。这项技术的核心价值在于极大地简化了嵌入式系统的移植与驱动开发流程,避免了为每块板卡定制内核的繁琐工作。在工程实践中,设备树广泛应用于基于ARM、PowerPC等架构的嵌入式Linux开发板,尤其是在需要连接定制传感器、扩展外设等场景。本文以Microchip SAM9X 阅读详情

1. 简介

Microchip的Sam9x60芯片开机启动流程分为三部分

① 芯片内嵌的一级引导
② BootStrap二级引导
③ U-boot三级引导

2. at91内嵌一级引导

2.1 一级引导介绍

芯片嵌入了引导ROM代码,启动时,它根据复位时的BMS(引导模式选择)引脚状态启用,ROM代码扫描不同介质的内容,如串行闪存,NAND闪存,标清/ MMC卡和串行EEPROM。

如果里面有有效的引导应用程序可用,则它将该引导应用程序下载到芯片内部SRAM(Cache)中重映射,映射到0x00并运行它。

为了确定是否存在有效的引导应用程序,ROM 代码会检查八个 ARM 异常向量(包含跳转或偏移地址转载等arm指令)。

如果没有可用的有效应用程序,则执行 SAM-BA 监视器。它等待 USB 设备或 DBGU 串行端口上的事务,然后 SAM-BA 工具可用于对电路板上存在的闪存或 EEPROM 进行编程。
在这里插入图片描述
2.2 sam9x60内部存储配置
在这里插入图片描述
在这里插入图片描述

3. BootStrap二级引导

3.1 二级引导介绍

Bootstrap 是第二级引导加载程序,它提供了一组算法来管理硬件初始化。

例如时钟速度配置、PIO 设置、DRAM 初始化,以将主应用程序从指定的引导介质(NAND 闪存、串行闪存(与 DataFlash 的 AT25 兼容)、串行 EEPROM、SD 卡等)下载到主内存并启动它。

① 初始化时钟、PIO等设置
② 初始化PIO、PMC、SDRAM等外设
③ 初始化DataFlash、NandFlash等
④ 从DataFlash、NandFlash中装载U-Boot到SDRAM,并跳转执行

3.2 代码部分

我们可以在BootStrap源码里面找到binaries目录里的.map文件

什么是 MAP 文件?
简单地讲, MAP 文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。

在这里插入图片描述

从map可以了解到程序crt0_gnu.S汇编开始
在这里插入图片描述
再跳转到main.c
在这里插入图片描述
然后初始化相关硬件代码部分
在这里插入图片描述
关闭看门狗、led、使能PLLA、启动外部复位、初始化时钟、DDR等

其中DDR的初始化代码部分,个别参数需要查阅相关DDR手册填写
在这里插入图片描述在这里插入图片描述
最后是加载u-boot代码部分
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
加载完成后,就会跳转执行u-boot

四、U-boot启动

u-boot在作为第三级引导,Uboot 拿到 CPU 使用权就开始做初始化工作,比如关闭看门狗、设置 CPU 运行模式、设置堆栈、初始化内存、网卡、nand flash 等,最后把 Linux 内核加载到内存中。

u-boot这里就不做详细的分析了
在这里插入图片描述
在这里插入图片描述

五、开机log
在这里插入图片描述

SAM9X60外部NVM启动全解析:从ROM代码到安全启动实战 嵌入式系统启动是设备上电后执行的第一段关键代码,它负责初始化硬件、建立运行环境并加载操作系统或应用程序。其核心原理在于构建一个可靠的启动链,通常由固化在芯片内部的ROM代码、二级引导程序(如Bootloader)和最终的应用镜像组成。这一过程的技术价值在于确保了系统的可启动性、安全性和灵活性,是嵌入式设备稳定运行的基石。在工业控制、物联网网关等应用场景中,从外部非易失性存储器(NVM)启动是常见需求,它允许设备从SPI Flash、NAND Flash等外部介质加载并执行代码。本文聚焦于Microchip 阅读详情

相关推荐

Microchip SAM9X60D1G-SOM:集成DDR2的嵌入式Linux模块实战解析

系统级模块(SOM)将微处理器、内存、电源管理等核心硬件集成于一体,大幅降低了嵌入式Linux产品的开发门槛。它屏蔽了DDR布线、阻抗匹配和电源时序等底层硬件设计难点,让开发者能专注于应用层开发。ARM926EJ-S内核的微处理器(MPU)在工业控制、人机界面(HMI)和边缘网关等场景中依然具有性能稳定、功耗低、供货周期长的优势。Microchip推出的SAM9X60D1G-SOM正是基于该内核,并板载1Gbit DDR2内存,提供5V单电源供电和邮票孔封装,进一步简化了载板设计。从开发环境搭建、U-Boo

weixin_29165465的博客 306

使用 Microchip SAM9X60 OTP 存储板卡的MAC地址和序列号

SAM9X60 处理器有部分OTP(One Time Programming) Aera 可用于存储user data,这样的话我们就可以将板卡 MAC Address和 SN 序列号写到固定的OTP User Area中。为什么要使用 OTP 区域存储MAC地址和序列号呢?答案是为了省钱。如果不使用OTP的话,可能要考虑采用 eeprom 等掉电非易失的存储保存这些固定信息,这样的话就多了一颗料的钱,还得占用I2C总线,PCB布线等。

weixin_40407893的博客 3620

基于SAM9X60的嵌入式系统安全设计:从硬件信任根到软件纵深防御

嵌入式系统安全是保障物联网设备可靠运行与核心知识产权的基础。其核心原理在于构建从硬件到软件的多层信任链,通过硬件安全模块(如安全启动、加密引擎)建立不可篡改的信任根,并利用密码学技术实现数据机密性与完整性。这一技术体系的价值在于为智能设备提供了抵御物理提取、运行时攻击与网络入侵的底层保障,广泛应用于工业控制、智能网关及消费电子等对代码保护与功能安全有严苛要求的场景。本文以Microchip SAM9X60 MPU为例,深入解析如何利用其硬件安全框架(如OTP、信任链)并结合固件加密、内存隔离等软件实践,构建

weixin_34279579的博客 531

SAM9X60 curiosity开发板,U盘拷贝文件到开发板

linux U盘 sam9x60

Ning的博客 779

SAM9X60 OTP仿真与at91bootstrap调试实战指南

在嵌入式系统开发中,安全启动和硬件身份认证是保障产品可靠性与知识产权安全的核心机制。其原理在于通过芯片内部的一次性可编程存储器固化关键信息,实现硬件级的信任根。这一技术对于物联网设备、工业控制器等需要防篡改和版权保护的应用场景具有重要价值。本文聚焦Microchip SAM9X60系列MPU,深入解析如何利用OTP仿真模式,在量产前安全验证at91bootstrap引导程序与安全启动流程。通过搭建基于J-Link和Microchip Studio的调试环境,开发者可以模拟OTP编程状态,反复测试引导配置、安

weixin_30800807的博客 530

从MCU到嵌入式Linux:SAM9X60D1G-SOM模组实战解析

从单片机(MCU)过渡到微处理器(MPU)方案,DDR布线、电源时序和时钟设计往往是最先遇到的硬件门槛。SoM(System-on-Module)将MPU、DDR2内存及电源管理封装为标准化模组,从根本上简化了核心板设计,大幅降低嵌入式Linux开发的上手成本。本文以Microchip SAM9X60D1G-SOM为实例,拆解MPU与MCU的应用差异,分析Arm926EJ-S内核在工业场景中低功耗、高性价比的演进逻辑,并聚焦SoM如何规避DDR等长走线、电源时序等隐性设计难题。同时结合设备树配置、启动烧录、

weixin_29169505的博客 248

sam9x60 boot

dockerfile 根据 github 中的petalinux 构建 docker 环境的脚本修改出来的。加上喜爱的neovim 工具。

HongDaYu的搬砖之路 397

J-Link V9升级变砖?手把手教你用SAM-BA回退固件、修复Clone错误

嵌入式开发中,调试器固件升级失败往往导致设备变砖,这是许多工程师都会遇到的棘手问题。固件是连接硬件与开发工具的关键代码,其稳定性直接影响调试效率。J-Link作为ARM Cortex-M系列开发常用的仿真器,其V9版本因采用AT91SAM7S64芯片,内置SAM-BA引导程序,为恢复提供了底层通道。理解固件检测机制与Bootloader原理,是解决“Clone”报错或无法识别USB等故障的核心。通过回退固件版本、修改序列号或短接ERASE焊盘进入恢复模式,可有效修复变砖的J-Link V9。这套方法不仅适用

weixin_34355559的博客 340

嵌入式Linux设备树实战:从原理到SAM9X60定制开发

设备树(Device Tree)是嵌入式Linux系统中描述硬件配置的核心数据结构,它通过一种结构化的文本格式(.dts文件)将硬件信息与内核代码解耦。其工作原理是内核在启动时解析设备树二进制文件(.dtb),动态识别硬件并加载对应驱动,从而避免了传统硬编码方式带来的内核臃肿和移植困难。这项技术的核心价值在于提升了嵌入式系统的可移植性和可维护性,使得同一份内核能适配多种硬件变体。在嵌入式Linux开发、ARM平台移植以及工控、物联网网关等应用场景中,设备树是连接硬件设计与软件驱动的关键桥梁。本文以Micro

weixin_30517215的博客 290

嵌入式Linux开发实战:基于Microchip Linux4SAM的完整系统构建指南

嵌入式Linux系统开发是物联网和工业控制领域的核心技术,它通过将Linux操作系统移植到资源受限的嵌入式硬件上,实现对复杂外设的统一管理和高效应用开发。其核心原理在于利用引导程序初始化硬件、加载定制化Linux内核与设备树描述硬件拓扑,并通过根文件系统提供用户空间运行环境。这一技术为设备提供了强大的网络连接、文件系统和多任务处理能力,在工业自动化、智能网关和边缘计算等场景中价值显著。本文以Microchip Linux4SAM项目为例,深入解析其包含AT91Bootstrap与U-Boot的双级引导机制、

weixin_31887307的博客 276

gfx_apps_sam_9x60

标题:Harmony 3 Graphics SAM 9x60应用程序包nav_order:1 SAM 9x60系列的MPLAB:registered:Harmony 3 Graphics应用示例 MPLAB:registered:Harmony Graphics Suite是MPLAB:registered:生态系统的扩展,可为Microchip 32位SAM和PIC微控制器以及微处理器设备创建嵌入式图形固件解决方案。有关更多信息,请参考以下链接。 该存储库包含SAM 9x60系列的MPLAB:registered:Harmony 3 Graphics应用程序示例。图形应用程序是独立的应用程序,演示了MPLAB:registered:Harmony Graphics Suite的某些功能。请参考以下链接,以获取发行说明,主页,培训材料,框架和应用程序帮助。有关使用MPLAB:registered:Harmony Graphics Suite的工具,库和基本开发的更多信息,请参见github上的gfx存储库。 内容摘

基于SAM9X60的嵌入式安全设计:从硬件加密到TrustZone的全面实践

在嵌入式系统开发中,代码保护与安全设计是保障产品可靠性的核心环节。其基本原理是通过硬件与软件协同,构建从启动到运行的信任链,防止代码被篡改、数据被窃取。这一技术的核心价值在于为工业控制、物联网网关等高安全要求场景提供内生安全能力,有效抵御物理提取、远程攻击等威胁。具体到工程实践,开发者需要综合利用硬件加密引擎、安全启动、内存保护及TrustZone等技术,实现静态代码加密、动态执行隔离与调试接口管理。本文以Microchip SAM9X60 MPU为例,深入探讨了如何配置其硬件安全引擎与安全启动流程,并详细

congxian2511的博客 433

saM的bootloader详解

基于arm的bootloader的开发,详解SAM的开发

S32G2汽车网关开发(二):启动流程解析

针对从SD卡启动的启动方式来具体分析下S32G2在程序镜像运行之前,BootROM阶段芯片都做了什么,并解析了IVT、DCD信息。

qq_64043757的博客 5010

Chromium实用技巧篇-如何下载指定版本的Chromium(一)

通过本指南,您已成功掌握如何在Windows系统上下载并安装最新版本的Chromium浏览器。我们详细介绍了从进入Chromium官网,到查找最新版本号,再到下载和安装的每一个步骤。通过这些步骤,您不仅能够体验到最新的浏览器功能,还可以参与开源项目的开发,享受高速、稳定、安全的浏览体验。

守城小轩的技术窝棚 1万+

如何利用ADS中的耦合线设计带通滤波器并转换为HFSS模型

耦合线带通滤波器是一种常用的微带滤波器形式,由多个长度为四分之一波长的耦合线节组成,在所需频点形成谐振,构成滤波器的频率响应特性。首先我们先来了解一下耦合线带通滤波器的电路结构,见下图:包括两对耦合线,中间为公共连接点,其中两对耦合线的偶奇模阻抗为(Z1e,Z1o)和(Z2e,Z2o,端口输入阻抗为Z0)。2.指定一个初始奇偶模值,ADS优化出一个合适的结果,通过奇偶模值利用linecalc工具计算出微带耦合线尺寸。假设中心频率为2GHz,则对应频点的电长度为。5.运行结果,两个软件仿真结果基本一致。

auqihc的博客 2224

rgthree-comfy 使用指南:为 ComfyUI 打造的节点与效率增强工具集

rgthree-comfy 是一套面向 [ComfyUI](https://link.gitcode.com/i/4d87e978c61d55e68a0c33da9a8940ac) 的开源自定义节点与功能增强集合,其项目口号是 *"Making ComfyUI more comfortable!"*。本文以项目根目录的 [README.md](https://link.gitcode.com/i/

gitblog_01069的博客 309

复古与新生:老毛子Padavan固件在旧设备上的现代化应用之旅

本文探讨了如何通过刷入Padavan固件,让小米路由器3G(R3G)等老旧设备重获新生,实现现代化应用。详细介绍了从硬件潜力分析、智能家居中枢搭建,到轻量级服务器部署和网络功能扩展的全过程,为技术爱好者提供了一条低成本、高性能的设备改造之路。

k8s6orchestrator的博客 1052

REA 逆向工程指南:让 AI 助手分析无源码应用,输出带证据的结论

REA 是一个开源逆向工程技能,把 reverse-engineer-anything 逆向工作流装进你的 AI 编码助手。它面向手里只有成品、没有源码的人:APK、原生二进制、JS 应用都能查,助手给出的每个结论都附证据,而不是猜。 [![Hopper 中用 REA 逆向分析原生二进制,展示反汇编结果](https://raw.gitcode.com/GitHub_Trending/rea2/

gitblog_00799的博客 265

Android 的端智能学习路径

基础层:先补齐 Android 进阶(JNI / 性能优化)和 AI 基础概念,无需深入算法开发;核心层:掌握 TFLite 的模型加载、推理、量化,能完成基础端侧推理;落地层:聚焦实战场景(图像 / OCR / 语音),解决工程化问题(模型管理、异常处理);优化层:通过模型量化、硬件加速、工程优化,提升推理性能和用户体验。

hqiangtai的博客 337

OpenClaw智能体应用第一集--飞书多智能体配置

本文介绍了智能体(Agent)的核心概念与配置实践。Agent作为独立作用域的"大脑",包含模型(认知引擎)、记忆系统(短期/长期记忆)、人设(角色定义)、工具(外部能力调用)、规划执行(任务拆解)、运行环境等核心要素。每个Agent拥有唯一agentId标识,通过accountId区分渠道账号,Binding机制实现消息路由。实践部分展示了通过命令行配置多个智能体(如writer)的过程,包括插件注册和工具加载。系统支持多Agent架构,可根据不同场景需求灵活配置专属智能体。

weixin_44626085的博客 1739

SAM3部署教程:多GPU并行推理配置指南

本文介绍了基于星图GPU平台自动化部署sam3 提示词引导万物分割模型的完整流程。该镜像支持多GPU并行推理,适用于大规模图像分割任务,可广泛应用于AI内容创作、智能标注等场景,显著提升模型推理效率与应用响应速度。

weixin_26907223的博客 444

突破边缘AI算力瓶颈:YOLOv12模型剪枝与知识蒸馏联合优化全攻略

这套剪枝-蒸馏联合方案的优势在于其系统性和可靠性。它不是单一的技巧,而是一套完整的工程流程,确保了从研发到部署的无缝衔接。

m0_71589036的博客 215

Windows SAM文件与NTLM Hash提取解密实战:从原理到防御

在Windows系统安全领域,用户凭证的存储与保护是核心议题。系统通过安全账户管理器(SAM)数据库存储本地用户信息,其中密码并非明文保存,而是经过NTLM(NT LAN Manager)算法处理生成的哈希值(Hash),如NTLM Hash。其原理是将用户密码转换为固定长度的字符串,系统在认证时比对哈希值而非原始密码,这提升了安全性但也带来了新的攻击面。从技术价值看,理解哈希提取与解密机制,不仅是渗透测试人员进行安全评估的关键技能,更是系统管理员进行安全加固、事件溯源与应急响应的基础。在实际应用场景中,攻

congran6617的博客 458

BPC坏点矫正

whatis the Bad Pixel? 坏点为死点,也就是基本不随照度变化呈现光电线性转换的关系。表现为暗态常亮,亮态常暗。 坏点分类:静态坏点:亮坏点,暗坏点。 动态坏点:在一定像素范围内,该点表现正常,而超过这一范围,该点表现的比周围像素要亮。与sensor ...

camerall 1万+

【SigmaStudio】自定义算法组件之XML编写规范(一)

SigmaStudio生成自定义算法组件时,需要XML和DLB文件,本文主要记录XML文件的编码规范

liang_song的博客 1135
上一篇: 驱动编程简单教程——PTC512(ADC芯片驱动)为例
下一篇: Sam-ba烧录工具的使用教程
KaminLuo
博客等级 码龄8年 73粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值