Loading...

加载中...

最新文章

嵌入式ARM时钟系统

一、时钟信号时钟系统是嵌入式系统的核心部分。ARM时钟系统,通常指的是微控制器或微处理器中的时钟树(Clock Tree)及其管理单元。这些时钟系统为芯片内部的各个模块(如CPU、总线、外设等)提供时钟信号,使得它们能够同步工作。 1.1 时钟信号的本质在电子世界中,时钟信号是一种周期性变化的电压信号,在高电平和低电平之间不断切换: 相关概念: 周期 (Period) :完成一次高低变化所需的...
阅读更多

深入理解 U-Boot ARM 平台 memset 的汇编实现

硬件平台: NXP IMX6ULL (Cortex-A7) U-Boot版本: 2025.04 架构: ARMv7-A 注意:代码有删减,忽略不符合条件编译的代码。 在嵌入式系统开发中,内存初始化操作是系统启动和运行的基础。memset 作为标准C库中最基本的内存操作函数之一,其性能直接影响系统启动时间和运行效率。在U-Boot这样的引导加载程序中,高效的内存初始化尤为关键。因此ARM架构需要...
阅读更多

U-Boot源码学习和调试快速定位函数代码位置技巧

在我们学习U-Boot源码和调试过程中,是否经常遇到这样的场景?程序运行到某个函数时突然崩溃,屏幕上只有晦涩的寄存器值和内存地址,却不知道这段代码究竟对应源码的哪个位置。或者在研究U-Boot启动流程时,想追踪某个关键函数的实现,面对众多源码中的实现和条件编译不能精准确定对应代码位置? 假设我们在学习U-Boot源码或者源码移植时,遇到一个函数实现,但是通过 grep 发现,结果包含众多编译条件下...
阅读更多

board_init_f_alloc_reserve 和 board_init_f_init_reserve 函数分析

硬件平台: NXP IMX6ULL (Cortex-A7) U-Boot版本: 2025.04 架构: ARMv7-A 注意:代码有删减,忽略不符合条件编译的代码。 _main 函数代码实现了从汇编环境到完整C环境的完整过渡。其首先设置调用 board_init_f() 所需的初始环境。 此环境提供一个堆栈和一个用于存储全局数据(GD)结构的空间,两者都位于某些可立即使用的RAM(SRAM、锁...
阅读更多

IMX6ULL crt0.S _main函数分析

硬件平台: NXP IMX6ULL (Cortex-A7) U-Boot版本: 2025.04 架构: ARMv7-A 注意:代码有删减,忽略不符合条件编译的代码。 _main 函数代码实现了从汇编环境到完整C环境的完整过渡。 _main函数在arch/arm/lib/crt0.S中定义。 crt0.S文件注释以下是crt0.S文件注释的翻译:...
阅读更多

IMX6ULL lowlevel_init.S分析

硬件平台: NXP IMX6ULL (Cortex-A7) U-Boot版本: 2025.04 架构: ARMv7-A 注意:代码有删减,忽略不符合条件编译的代码。 start.S中cpu_init_crit函数跳转至lowlevel_init函数执行。 s_init 函数定义...
阅读更多

IMX6ULL ARMv7 Cortex-A start.S详细解析

硬件平台: NXP IMX6ULL (Cortex-A7) U-Boot版本: 2025.04 架构: ARMv7-A 注意:代码有删减,仅讲解涉及必要内容,更多功能随着后续实现不断添加讲解。 文件路径: arch/arm/cpu/armv7/start.S。Boot/SPL 的入口点和初始化代码. 一、头文件包含 #include <asm...
阅读更多

Kconfig配置描述文件问题记录

Kconfig文件在编写和编译时遇到需要注意的一些问题汇总。 问题1:输入提示每个配置项最多只能有一个提示,用于显示给用户。 如果不存在提示,则配置选项是不可见,用户无法直接更改其值,并且该选项不会出现在任何配置菜单中。其值只能通过“default”和“select”设置。这意味着在menuconfig界面没有显示用户不能设置更改,同样地,在defconfig文件中即使设置也无效。 问题2:默认值...
阅读更多

U-Boot 配置构建系统(Kconfig/Kbuild)

在嵌入式系统的世界里,U-Boot(Universal Boot Loader,通用引导加载程序)扮演着至关重要的角色。它是在操作系统内核运行之前执行的一段程序,负责初始化硬件设备、建立内存映射,并将系统的软硬件环境带至一个合适的状态,最终加载并启动操作系统内核。 U-Boot 因其开源、支持多种处理器架构(如ARM、PowerPC、MIPS、x86)和嵌入式操作系统而在业界深受欢迎。然而,支撑其...
阅读更多

IMX6ULL链接脚本u-boot.lds分析

硬件平台: NXP IMX6ULL (Cortex-A7) U-Boot版本: 2025.04 架构: ARMv7-A 注意:下面代码有删减,仅讲解初期必要内容,更多功能随着后续实现不断添加讲解。 链接脚本u-boot.ldsarch/arm/cpu/u-boot.lds是U-Boot的链接脚本,定义了代码和数据在内存中的布局。...
阅读更多
导航 Enter 打开 ESC 关闭

输入关键词开始搜索