Loading...

加载中...

最新文章

UART:从零基础到掌握(二)——IMX6ULL的UART详解

以NXP I.MX6ULL 处理器与正点原子 I.MX6U-Mini 开发板为例 上一篇文章介绍了UART协议的基本理论。本篇我们将去了解I.MX6U芯片内部的UART硬件控制器是如何实现这个协议的,并把理论付诸实践,在i.MX6ULL芯片上驱动UART。 一、从原理图读懂硬件连接学习嵌入式开发,阅读原理图是一项不可或缺的基本技能。原理图(Schematic)是硬件工程师的”图纸”,它描述了电...
阅读更多

UART:从零基础到掌握(一)——UART协议

以NXP I.MX6ULL 处理器与正点原子 I.MX6U-Mini 开发板为例 一、通信的基本概念在学习UART之前,必须首先建立对”通信”这一概念的完整认知。所谓通信,是指两个或多个设备之间按照预先约定的规则交换数据的过程。这里有两个关键词需要你牢记:数据和规则。数据是要传递的内容,规则是传递的方法,后者在工程领域有一个专业术语——通信协议(Protocol)。 1.1 并行通信与串行通信...
阅读更多

ARM仿真开发环境——QEMU虚拟化平台搭建

一、QEMU虚拟化平台1.1 为什推荐QEMU在嵌入式与操作系统开发领域,ARM 架构凭借其高性能与低功耗的显著优势,已成为现代计算设备的核心技术基础——从物联网传感器、智能手机、汽车电子,到数据中心服务器,ARM 无处不在。 然而,许多开发者在学习 ARM 体系与操作系统开发时会遇到很多问题,第一个拦在面前的障碍往往不是代码本身,而是开发环境。翻开任何一本嵌入式书籍,前几章几乎都在教你买板子、接...
阅读更多

ARM:从裸机到操作系统实现

本专栏记录了一个完整的学习实践历程:从零开始构建一款嵌入式操作系统。 我们将从最底层的裸机汇编启动代码开始,理解 BootLoader 的工作原理,逐步实现外设驱动、中断处理、内存管理、进程调度、文件系统等操作系统核心组件,最终构建起一个功能完备的嵌入式操作系统内核,并深入理解操作系统的移植与内核开发技术。 一、为什么要做这个专栏?在嵌入式与操作系统开发领域,ARM 架构凭借其高性能与低功耗的显著...
阅读更多

深入理解GPIO和IOMUX控制器

以NXP I.MX6ULL处理器与正点原子I.MX6U-Mini开发板为例 一、基本概念1.1 什么是GPIOGPIO,全称是General-Purpose Input/Output,翻译为”通用输入输出端口”,是微处理器与外部世界进行最基本数字信号交互的接口。 当你拿起一颗处理器芯片,你会看到它的封装底部有数百个微小的焊球,这些焊球就是芯片与外部世界沟通的物理通道。每一个焊球在芯片...
阅读更多

ARM时钟配置流程——基于IMX6ULL时钟系统(二)

上一篇介绍了 i.MX6ULL 处理器的时钟管理系统。本篇将梳理IMX6ULL芯片内部复杂的时钟树,理解其从晶振到PLL、再到各模块分频的完整路径。介绍相关寄存器,并一步步完成关键时钟的配置: 解读硬件设计:分析正点原子IMX6ULL-Mini开发板上的时钟源电路,将原理图与芯片手册对应。 掌握配置方法:学习如何查阅约4000页的《i.MX6ULL参考手册》,定位关键的时钟控制(CCM)寄存器,...
阅读更多

ARM时钟配置流程——基于IMX6ULL时钟系统(一)

上一篇我们探讨了嵌入式ARM时钟系统的核心概念,理解了时钟如同芯片的“脉搏”,为处理器、总线和外设提供有序的工作节奏。如果你对时钟系统相关的基本概念都还不清楚可以先去看上一篇的时钟基础内容,然后再来学习本篇。 基于正点原子IMX6ULL-Mini开发板及其搭载的 NXP i.MX6ULL 处理器,本篇内容为 IMX6ULLRM 第10章中 IMX6ULL 时钟管理系统的介绍。 参考资料: 《i....
阅读更多

嵌入式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 发现,结果包含众多编译条件下...
阅读更多
导航 Enter 打开 ESC 关闭

输入关键词开始搜索