嵌入式学习-MMU(UBOOT)

原文:https://blog.youkuaiyun.com/u011003120/article/details/51812188

参考:

https://blog.youkuaiyun.com/ipmux/article/details/19167605

https://blog.youkuaiyun.com/wangdapao12138/article/details/79889461

https://www.cnblogs.com/yangjiguang/p/7647801.html

https://www.cnblogs.com/biaohc/p/6292376.html?utm_source=itdadao&utm_medium=referral

 

MMU 存储器管理单元,在之前因为是操作物理地址,不需要MMU,因此是处于关闭状态的,而这次则是打开MMU并且使用MMU.

一、MMU的作用

  • 1.将虚拟地址转化为物理地址
  • 2.进行访问权限的管理

看上图可以得知,有三个运行的程序,他们的虚拟地址都为0x400000,但是若要使用物理地址,他们的物理地址不能够相同,因此就需要一个机制,使他们的相同的虚拟地址对应不同的物理地址,这个机制就是上图中的Page tables(即页表),虚拟地址通过查表的方式对应到不同的物理地址上。

二、地址转化
首先需要知道的是,以段(Section,1M)的方式进行转换时只用到一级页表,而页(Page)的方式进行转换时用到两级页表,有粗也转换和细页转换两种,页的大小有3种:大页(64KB)、小页(4KB)和极小页(1KB)。

1.地址转化总体分析

### RT-Thread 和 U-Boot 的集成与配置 RT-Thread 是一个实时操作系统 (RTOS),而 U-Boot 是一种常见的引导加载程序 (Bootloader)。两者可以协同工作来完成嵌入式设备的启动过程。以下是关于如何查找和理解 RT-UBOOT 技术文档以及其配置的相关信息。 #### 1. **RT-Thread 官方文档** RT-Thread 社区提供了详细的官方文档,涵盖了从基础概念到高级功能的内容。这些文档可以帮助开发者快速入门并深入研究 RT-Thread 的特性及其与其他组件(如 U-Boot)的集成方法[^1]。 访问地址通常位于 RT-Thread 官网的技术文档部分,或者可以通过 GitHub 上的仓库获取最新的技术说明。 #### 2. **U-Boot 文档资源** U-Boot 提供了丰富的文档支持,包括但不限于 README 文件、Wiki 页面和技术博客文章。特别是针对不同硬件平台的移植指南非常有用。例如,在 STM32MP157 平台上进行 U-Boot 移植的具体操作已被详细记录下来[^2]。 对于龙芯 2K 系列芯片而言,由于其特殊性,可能需要额外关注 SATA/SSD 驱动的支持情况以及 FAT 文件系统的兼容性测试结果[^1]。 #### 3. **配置引导加载程序** 为了使 U-Boot 能够正确地引导 RT-Thread 内核镜像文件,需执行以下几项重要设置: - 编辑 `config.h` 或其他相关头文件定义目标板参数; - 修改环境变量以指定内核位置及传递给内核命令行选项; - 如果涉及 MMU 特性的启用,则还需调整内存管理单元相关的初始化代码逻辑; 具体实例可参考如下片段展示如何通过脚本自动化处理某些常见任务: ```bash setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rw' fatload mmc 0:1 $kernel_addr_r rtthread.bin bootm $kernel_addr_r ``` 此段伪代码展示了怎样利用 FatFs 加载存储卡分区内的 RT-Thread 可执行映像,并将其作为主要应用程序运行起来的过程概述[^4]。 #### 4. **调试技巧** 当遇到问题时,建议采用串口终端工具观察整个启动序列日志输出以便定位故障原因所在之处。另外也可以借助 JTAG 探针连接至目标单片机来进行更深层次分析活动。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值