ARM裸机-7

news2025/1/21 12:09:05

1、S5PV210的地址映射

1.1、什么是地址映射

        S5PV210属于ARM Cortex-A8架构,32位CPU,CPU设计时就有32根地址线&32根数据线。32根地址线决定了CPU的地址空间为4G,那么这4G空间如何分配使用?这个问题就是地址映射问题。

1.2、S5PV210的内存映射

        要看数据手册

1.3、一些专业术语

ROM:read only memory只读存储器

RAM:random access memory随机访问存储器

IROM:internal ROM 内部ROM,指的是集成到SoC内部的ROM

IRAM:internal RAM 内部RAM,指的是集成到SoC内部的RAM

DRAM: dynamic RAM 动态RAM

SRAM:static RAM 静态RAM

SFR:special function register 特殊功能寄存器

2、CPU和外部存储器的接口

2.1、内存和外存

内存:内部存储器,用来运行程序的,RAM。例如DRAM、SRAM、DDR。

外存:外部存储器,用来存放东西的。ROM。例如硬盘、Flash(Nand、iNand 、、、U盘、SSD)、光盘。

        CPU连接内存和外存的连接方式不同。内存需要直接地址访问,所以是通过地址总线6数据总线的总线式访问方式连接的(好处是直接访问,随机访问;坏处是占用CPU的地址空间,大小受限);外存是通过CPU的外存接口来连接的(好处是不占用CPU的地址空间,坏处是访问速度没有总线式快,访问时序较复杂)。

2.2、SoC常用外部存储器

        NorFlash

        NandFlash

        eMMC/iNand/moviNand

        oneNAND

        SD卡/TF卡/MMC卡

        essD

        SATA硬盘

2.3、S5PV210支持的外部存储器

        看数据手册

2.4、总结

        (1)现代SoC支持多种外部存储器。

        (2)外部存储器主要用来存储程序(可执行代码),相当于电脑的硬盘。

        (3)各种不同外部存储器原理不同,大小、性价比不同,一般产品厂家根据需要选择适合自己产品的外存使用。

        (4)外部存储器和CPU连接一般不是通过地址&数据总线直接相连,因为地址空间不够用。一般都是通过专门的接口来连接的。

3、S5PV210的启动过程

        S5PV210使用的启动方式是:外接的大容量Nand +外接大容量DRAM+ SoC内置SRAM

        第一步:CPU上电后先从内部IROM中读取预先设置的代码(BL0),执行。这一段IROM代码首先做了一些基本的初始化(CPU时钟、关看门狗...)(这一段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM,因此这一段IROM是不能负责初始化外接的DRAM的,因此这一段代码只能初始化SoC内部的东西);然后这一段代码会判断我们选择的启动模式(我们通过硬件跳线可以更改板子的启动模式),然后从相应的外部存储器去读取第一部分启动代码(BL1,大小为16KB)到内部SRAM。

        第二步:从IRAM去运行刚上一步读取来的BL1(16KB),然后执行。BL1负责初始化NandFlash,然后将BL2取到IRAM(剩余的80KB)然后运行。

        第三步:从IRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束。
        思路:因为启动代码的大小是不定的,有些公司可能96kb就够了,有些公司可能1MB都不够。所以两步的启动方式不合适。三星的解决方案是:把启动代码分为两半 (BL1和BL2),这两部分协同工作来完成启动。

3.1、BL0做了什么

        关看门狗

        初始化指令cache

        初始化栈

        初始化堆

        初始化块设备复制函数

        设置SoC时钟系统

        复制BL1到内部IRAM (16KB)

        检查BL1的校验和

        跳转到BL1去执行

4、如何在开发板上选择不同的启动方式

4.1、使用板载的eMMC启动(在SD卡的通道0上)

        开发板收到默认就是从eMMC启动,内部预先烧录了Android。

4.2、从SD卡的通道2启动

        可以使用外置SD卡从SD2通道启动,但这需要先破坏板载的eMMC中的android镜像。破坏方法见九鼎官方的裸机教程文档《x210v3开发板裸机教程.pdf》中2.5.2节(P19)。

        OMpin设置和SD0启动一样。

4.3、USB调试模式

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/812989.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AnimateDiff论文解读-基于Stable Diffusion文生图模型生成动画

文章目录 1. 摘要2. 引言3. 算法3.1 Preliminaries3.2. Personalized Animation3.3 Motion Modeling Module 4. 实验5.限制6. 结论 论文: 《AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning》 github: https://g…

高级 IO

目录 前言 什么是IO? 有哪些IO的的方式呢? 五种IO模型 这五种模型在特性有什么差别呢? 其他高级IO 非阻塞IO fcntl 实现函数SetNonBlock I/O多路转接之select 初识select select函数 参数说明: 关于timeval结构 函数…

【解惑笔记】树莓派+OpenCV+YOLOv5目标检测(Pytorch框架)

【学习资料】 子豪兄的零基础树莓派教程https://github.com/TommyZihao/ZihaoTutorialOfRaspberryPi/blob/master/%E7%AC%AC2%E8%AE%B2%EF%BC%9A%E6%A0%91%E8%8E%93%E6%B4%BE%E6%96%B0%E6%89%8B%E6%97%A0%E7%97%9B%E5%BC%80%E6%9C%BA%E6%8C%87%E5%8D%97.md#%E7%83%A7%E5%BD%95…

【多线程中的线程安全问题】线程互斥

1 🍑线程间的互斥相关背景概念🍑 先来看看一些基本概念: 1️⃣临界资源:多线程执行流共享的资源就叫做临界资源。2️⃣临界区:每个线程内部,访问临界资源的代码,就叫做临界区。3️⃣互斥&…

python与深度学习(十一):CNN和猫狗大战

目录 1. 说明2. 猫狗大战2.1 导入相关库2.2 建立模型2.3 模型编译2.4 数据生成器2.5 模型训练2.6 模型保存2.7 模型训练结果的可视化 3. 猫狗大战的CNN模型可视化结果图4. 完整代码5. 猫狗大战的迁移学习 1. 说明 本篇文章是CNN的另外一个例子,猫狗大战&#xff0c…

建立动态数组,输入5个学生的,另外用一个函数检查其中有无低于60分的,输出不合格的成绩。

题为c程序设计(第五版)谭浩强 例8.30 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 这篇博客,让我们一起来学习内存的动态分配。 那么,什么是内存的动态分配呢?C语言允许建立…

RS485或RS232转ETHERCAT连接ethercat转换器

最近,生产管理设备中经常会遇到两种协议不相同的情况,这严重阻碍了设备之间的通讯,串口设备的数据不能直接传输给ETHERCAT。这可怎么办呢? 别担心,捷米JM-ECT-RS485/232来了!这是一款自主研发的ETHERCAT从站…

FreeRTOS源码分析-7 消息队列

目录 1 消息队列的概念和作用 2 应用 2.1功能需求 2.2接口函数API 2.3 功能实现 3 消息队列源码分析 3.1消息队列控制块 3.2消息队列创建 3.3消息队列删除 3.4消息队列在任务中发送 3.5消息队列在中断中发送 3.6消息队列在任务中接收 3.7消息队列在中断中接收 1 消…

【RTT驱动框架分析03】- sfus flash 操作库的分析和基于STM32F103RCT6+CUBEMX的SFUS移植教程

sfus flash 操作库的分析 sfus 抽象 /*** serial flash device*/ typedef struct {char *name; /**< serial flash name */size_t index; /**< index of flash device information table see flash_…

filter shape、padding、strides三者之间的关系

filter shape 在深度学习中&#xff0c;“filter shape”&#xff08;滤波器形状&#xff09;指的是卷积神经网络中滤波器&#xff08;也称为卷积核&#xff09;的维度或大小。滤波器是用于在卷积层中提取特征的重要组件。 滤波器形状通常是一个四维张量&#xff0c;具体取决…

小研究 - 一种复杂微服务系统异常行为分析与定位算法(二)

针对极端学生化偏差&#xff08;&#xff25;&#xff58;&#xff54;&#xff52;&#xff45;&#xff4d;&#xff45; &#xff33;&#xff54;&#xff55;&#xff44;&#xff45;&#xff4e;&#xff54;&#xff49;&#xff5a;&#xff45;&#xff44; &#…

并发编程 - CompletableFuture

文章目录 Pre概述FutureFuture的缺陷类继承关系功能概述API提交任务的相关API结果转换的相关APIthenApplyhandlethenRunthenAcceptthenAcceptBoththenCombinethenCompose 回调方法的相关API异常处理的相关API获取结果的相关API DEMO实战注意事项 Pre 每日一博 - Java 异步编程…

DPN(Dual Path Network)网络结构详解

论文&#xff1a;Dual Path Networks 论文链接&#xff1a;https://arxiv.org/abs/1707.01629 代码&#xff1a;https://github.com/cypw/DPNs MXNet框架下可训练模型的DPN代码&#xff1a;https://github.com/miraclewkf/DPN 我们知道ResNet&#xff0c;ResNeXt&#xff0c;D…

面向对象【对象数组的使用与内存分析、方法重载、可变个数形参】

文章目录 对象数组实例对象内存分析 方法的重载重载方法调用打印方法的重载 可变个数形参的方法特点传递任意数量的参数与其他参数共存传递数组或多个参数 对象数组 存储对象引用的数组。它允许您在单个数组中存储多个对象&#xff0c;并通过索引访问和操作这些对象。 实例 创…

使用SpringBoot+SpringMVC+Mybatis+Redis实现个人博客管理平台

文章目录 前言1. 项目概述2. 项目需求2.1功能需求2.2 其他需求2.3 系统功能模块图 3. 开发环境4. 项目结构5. 部分功能介绍5.1 数据库密码密文存储5.2 统一数据格式返回5.3 登录拦截器 6. 项目展示 前言 在几个月前实现了一个servlet版本的博客系统&#xff0c;本项目则是在原…

JWT无状态理解

JSON Web Tokens (JWT) 被称为无状态&#xff0c;因为授权服务器不需要维护任何状态&#xff1b;令牌本身就是验证令牌持有者授权所需的全部内容。 JWTs都签订使用数字签名算法&#xff08;例如RSA&#xff09;不能被伪造。因此&#xff0c;任何信任签名者证书的人都可以放心地…

二维深度卷积网络模型下的轴承故障诊断

1.数据集 使用凯斯西储大学轴承数据集&#xff0c;一共有4种负载下采集的数据&#xff0c;每种负载下有10种 故障状态&#xff1a;三种不同尺寸下的内圈故障、三种不同尺寸下的外圈故障、三种不同尺寸下的滚动体故障和一种正常状态 2.模型&#xff08;二维CNN&#xff09; 使…

基于传统检测算法hog+svm实现图像多分类

直接上效果图&#xff1a; 代码仓库和视频演示b站视频005期&#xff1a; 到此一游7758258的个人空间-到此一游7758258个人主页-哔哩哔哩视频 代码展示&#xff1a; 数据集在datasets文件夹下 运行01train.py即可训练 训练结束后会保存模型在本地 运行02pyqt.py会有一个可视化…

iOS开发-自定义TabbarController与Tabbar按钮Badge角标

iOS开发-自定义Tabbar按钮Badge角标 Tabbar是放在APP底部的控件。UITabbarController是一个非常常见的一种展示模式了。比如微信、QQ都是使用tabbar来进行功能分类的管理。 一、实现自定义Tabbar 我这里Tabbar继承于系统的UITabBar&#xff0c;定义背景图、线条的颜色、tab…

Redis系列 2- Redis 的持久化

Redis系列 2- Redis 的持久化 1、关于 Redis 持久化2、RDB 持久化2.1、RDB 文件的创建与载入2.2、RDB 自动间隔性保存的配置2.3、Redis 快照2.4、RDB 重点总结 3、AOF 持久化3.1、命令追加(append)3.2、AOF 文件的写入与同步3.3、AOF 工作原理3.4、AOF 的文件载入与数据还原3.5…