I.MX6ULL裸机开发笔记2:镜像文件

news2024/9/20 10:37:28

目录

一、boot ROM程序

二、镜像文件五要素

三、芯片手册  

四、芯片手册数据解读       

1、空偏移 

2、IVT表

3、DCD表

一、boot ROM程序

选择内部启动方式,启动boot ROM程序

  • 初始化时钟,外部DDR3
  • 从外部存储介质加载代码

boot ROM程序是芯片厂商将芯片制作出来的时候就固化到里面的程序,不可更改;

其主要可以解决2个问题:

  • DDR3有很多不同的厂商,其内部规格不同,boot ROM固件程序如何获得正确的属性参数来设置寄存器
  • boot ROM代码如何获取外部介质代码,如何加载地址

解决方式:通过设置镜像文件的格式

二、镜像文件五要素

        1、空偏移

                芯片厂商设定;镜像文件并不是放在外部存储介质中的起始位置;数据手册可查询;

        2、Image vector table,简称VT

                记录关键数据的位置:主要是Boot data的位置和Decice configuration data的位置

        4、Boot data,启动数据

                镜像加载地址,大小

        5、Device configuration data,渐层DCD

                关键外设的寄存器配置信息(时钟、DDR3相关)

        6、bin文件

                真正的程序文件

三、芯片手册  

    8.7.1 Image Vector Table and Boot Data(芯片手册目录)

        可以看出,1是空偏移部分,如果空偏移存在,那么就会从外部介质的起始地址开始加载,否则不能;2是Vector Table部分,记录着各个重要数据的地址,可以看出通过箭头指向了各个数据;3是Boot Data;4是DCD;

四、芯片手册数据解读       

1、空偏移 

        8.7.1 Image Vector Table and Boot Data 

  • Boot Device Type:不同的启动介质
  • Image Vector Table Offset:镜像有效数据偏移位置
  • Initial Load Region Size:boot ROM读取程序大小

2、IVT表

        8.7.1.1  Image vector table structure 

 这个IVT表在代码中展现的就是一个结构体;

  • header:IVT的长度、大小
  • entry:程序运行地址
  • dcd:内存中boot data地址
  • self:内存中IVT自己所在地址

Boot data:

记录“镜像”在内存中的加载地址和大小

8.7.1.2 Boot data structure

  • statrt:镜像在内存中的加载地址,包括空偏移
  • length:镜像长度,包括空偏移
  • plugin:插件,扩展驱动的     

       

3、DCD表

外设寄存器配置信息,初始化关键外设

        8.7.2 Device Configuration Data(DCD)

     Header:记录DCD大小,版本

CMD:寄存器初始化列表

Table 8-28.Write data commond format

  • Tag:DCD命令,一般写为寄存器
  • Length:表示命令的大小
  • Parameter:设置写寄存器方式(写值/清位/设置位)
  • Address:寄存器地址,主要是始终,DDR3相关外设地址
  • Value:具体设置值

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

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

相关文章

十五天学会Autodesk Inventor,看完这一系列就够了(十一),放样和螺旋扫掠(绘弹簧)

众所周知,Autocad是一款用于二维绘图、详细绘制、设计文档和基本三维设计,现已经成为国际上广为流行的绘图工具。Autodesk Inventor软件也是美国AutoDesk公司推出的三维可视化实体模拟软件。因为很多人都熟悉Autocad,所以再学习Inventor&…

Redis缓存数据 | 黑马点评

目录 一、什么是缓存 二、添加Redis缓存操作 三、缓存更新策略 缓存的更新策略 ​编辑 业务场景 主动更新策略 案例 四、缓存穿透 1、是什么 2、解决方案 (1)缓存空对象 (2)布隆过滤器 (3)其…

【春节安全保障有我们】安全狗春节放假值班通知

兔年纳福 辛勤拼搏了一年 终于迎来了福兔吉祥年 众人沉浸于准备过年的氛围中 却有些人为春节期间的网络安全担忧 因为春节也是不法分子们 伺机而动、“搞事情”的“好时机” 2023 NEW YEAR 不得不防的安全风险 1、主机安全遭受威胁 (云)主机系统…

Rust语言基础

安装 Rust 官网:https://www.rust-lang.org/Linux or Mac: curl https://rustup.rs -sSf | sh Windows: 按官网指示操作 Windows Subsystem for Linux: curl --proto ‘https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh 查看是否安装成功 rustc --version 更…

【openEuler】x2openEuler工具使用

文章目录一、关于x2openEuler二、工具准备三、前期准备1、安装CentOS72、下载x2openEuler3、安装x2openEuler4、执行bash5、访问上述网站6、安装x2openEuler-client(1)在CentOS-7.6Evetything1上找到x2openEuler-client(2)把x2ope…

Android Studio 支持手机投屏电脑

有时当我们在线上做技术分享或者功能演示时,希望共享连接中的手机屏幕,此时我们会求助 ApowerMirror,LetsView,Vysor,Scrcpy 等工具。如果你是一个 Android Developer,那么现在你有了更好的选择。 Android…

蓝桥杯--快排+队列+尺取法

😃这只松鼠如约而至 - 许嵩 - 单曲 - 网易云音乐 😃你买菜吗玫瑰 - 要不要买菜 - 单曲 - 网易云音乐 😃一起玩吧这世界那么多人(电影《我要我们在一起》主题曲) - 莫文蔚 - 单曲 - 网易云音乐 前言 这是我在CSD…

一文讲透单点登录架构思想(SSO)

目录什么是单点登录?非单点登录架构单点登录架构什么是CAS单点登录SSO演进1.同域2.同父域3.跨域CASCAS术语CAS场景单点登录优缺点优点缺点什么是单点登录? 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份…

【数据结构与算法理论知识点】 4、树和二叉树

4、树和二叉树 逻辑结构 4.1、树的定义和基本术语 树是n个结点的有限集 树的其他表示方式 基本术语 根——即根结点(没有前驱) 叶子——即终端结点(没有后继) 森林——指m棵不相交的树的集合(例如删除根节点A后的…

Apache Solr 9.1-(二)集群模式运行

Apache Solr 9.1-(二)集群模式运行 Solr是一个基于Apache Lucene的搜索服务器,Apache Lucene是开源的、基于Java的信息检索库,Solr能为用户提供无论在任何时候都可以根据用户的查询请求返回结果,它被设计为一个强大的文…

synchronized锁升级

假如 synchronized 是「王」身边的「大总管」,那么 Thread 就像是他后宫的王妃。「王」每日只能选择一个王妃陪伴,王妃们会想方设法争宠获得陪伴权,大总管需要通过一定的手段让王「翻牌」一个「王妃」与王相伴。 今日听「码哥」胡言乱语解开…

1. Linux 磁盘管理(分区、格式化、挂载)

目录 1. Linux 内核版与发行版 2. Linux中磁盘的管理(分区、格式化、挂载) 2.1 磁盘定义、分类和命名 2.2 分区的定义和划分 2.3 磁盘格式化(高级/逻辑格式化) 2.4 挂载操作 1. Linux 内核版与发行版 内核版:Linus Torvalds最初组织很多人完成的Linux操作系统只…

Ubuntu20.04下安装显卡驱动

环境配置 系统: Ubuntu 20.04 CPU: i5 GPU:Geforce 960M Ubuntu安装显卡驱动 1、查看当前显卡安装情况 使用glxinfo查看 https://dri.freedesktop.org/wiki/glxinfo/ $ glxinfo Command glxinfo not found, but can be installed with: sudo apt install mesa-utils需要安…

postgresql FDW概念、用法与原理小结

最近突然遇到了一批使用fdw的场景,整理记录一把。 一、 强大的FDW FDW (foreign-data wrapper,外部数据包装器),可以让我们在PG中使用SQL查询极为丰富的外部数据: 本实例和其他pg实例中的pg库主流关系型数据库:Oracle…

装饰模式(decorator-pattern)

装饰模式(decorator-pattern) 文章目录装饰模式(decorator-pattern)一、手抓饼点餐系统二、要求进阶三、装饰模式概要四、装饰模式的优劣及应用场景1. 优点2.缺点3.应用场景一、手抓饼点餐系统 请设计一个手抓饼点餐系统,支持加配菜,比如里脊、肉松、火…

C++ STL

目录 1.STL诞生 2.STL概念 3.STL六大主件 4.STL容器 算法 迭代器 5.容器算法迭代器初识,vector 5.1vector存放内置数据类型, 5.2vector存放自定义数据类型,解引用.访问,指针->访问,存放自定义数据类型指针。迭代器…

LeetCode(Array)1365. How Many Numbers Are Smaller Than the Current Number

1.问题 Given the array nums, for each nums[i] find out how many numbers in the array are smaller than it. That is, for each nums[i] you have to count the number of valid j’s such that j ! i and nums[j] < nums[i]. Return the answer in an array. Examp…

多目标建模总结

1. 概述 在推荐系统中&#xff0c;通常有多个业务目标需要同时优化&#xff0c;常见的指标包括点击率CTR、转化率CVR、 GMV、浏览深度和品类丰富度等。为了能平衡最终的多个目标&#xff0c;需要对多个目标建模&#xff0c;多目标建模的常用方法主要可以分为&#xff1a; 多模…

Linux常用命令——top命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) top 显示或管理执行中的程序 补充说明 top命令可以实时动态地查看系统的整体运行情况&#xff0c;是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面&#xff0c;用热键可…

C primer plus学习笔记 —— 13、存储类别、内存管理

文章目录存储类别定义、声明和初始化的区别作用域翻译单元和文件链接属性存储期存储类别多文件共享全局变量函数的存储类别存储类别的选择分配内存&#xff08;malloc、free&#xff09;malloc和calloc创建数组方式free的重要性举例存储类别 int a 1; int *p &a; int ra…