嵌入式学习笔记(15)再接S5PV210的启动过程

news2024/11/26 10:33:00

三星推荐方式

bootloader必须大于16KB小于96KB。假定bootloader为74KB,启动过程:开机,BL0运行,BLO加载外部启动设备中的bootloader前16KB(BL1)到SRAM中运行,BL1运行时会加载BL2(bootloader中74-16=58KB)到SRAM中(从SRAM的16KB处开始用)去运行;BL2运行时会初始化DRAM并且将OS搬运到DRAM中去执行OS,启动完成

uboot方式

uboot大小随意,假定为200KB,启动过程:开机,BL0运行,BL0加载外部启动设备中的bootloader(uboot)的前16KB(BL1)到SRAM中运行,BL1运行时会初始化DRAM,然后将整个bootloader(uboot,200KB)搬运到DRAM中,然后用一句长跳转指令从iSRAM中直接跳转到DRAM中继续执行bootloader(uboot)直到bootloader(uboot)完全启动。bootloader(uboot)启动后在bootloader(uboot)命令行中去启动OS。

✌题外话:三星为什么推荐BL1+BL2的方式而不使用uboot方式?

因为实际项目中,bootloader的大小并不会像uboot那么大,因为uboot中做了很多没有用的工作,实际的项目启动代码只需要满足定制化需求即可,其大小是在96KB范围之内的,因此使用BL1+BL2方式也省的使用代码重定位了。

3.4.3为什么要有重定位?

原因:链接地址和运行时地址有时候必须不同,而且还不能全部用位置无关码,这时候只能重定位。(运行地址空间(96KB)不够uboot(200KB)的使用,因此链接地址和运行时地址必须不同,解决方案就是使用长跳转指令将程序运行从iSRAM中解脱出来,放在更大的空间DRAM中去运行。这就是所谓的代码重定位。)

扩展:分散加载:把uboot分成2部分(BL1和整个uboot),两部分分别指定不同的链接地址。启动时将两部分加载到不同的地址(BL1加载到SRAM,整个uboot加载到DDR),这时候不用重定位也能启动。

评价:分散加载其实相当于手工重定位。重定位是用代码来进行重定位,分散加载是手工操作重定位的。

3.4.4运行时地址由什么决定?

运行时地址是由运行时决定的(编译链接时是无法绝对确定运行时地址的)

3.4.5链接地址由什么决定?

链接地址是由程序员在(编译)链接的过程中,通过Makefile中-Ttext xxx或者在链接脚本中指定的。程序员事先会预知自己的程序的执行要求,并有一个期望的运行地址,并会用这个地址来作为链接地址。

 嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击这里扫码进群领资料,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

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

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

相关文章

化繁为简 面板式空调网关亮相上海智能家居展 智哪儿专访青岛中弘赵哲海

面对中央空调协议不开放和智能家居协议不统一的问题,青岛中弘选择中央空调控制器这一细分赛道入局智能家居市场,始终贯彻“所有空调,一个网关”的产品技术理念,逐渐探索出一条中弘的发展路径和商业模式。 在2023年的SSHT上海国际智…

ModaHub魔搭社区开源AI Agent开发框架和评测

AI 模型社区魔搭(ModaHub)又上新了,推出适配开源大语言模型的 AI Agent 开发框架 ModaHub-Agent。借助 ModaHub-Agent,所有开发者都可基于开源 LLM 搭建属于自己的智能体应用,最大限度释放想象力和创造力。ModaHub-Agent 的代码现已开源。 AI Agent(AI 智能体、AI 代理)…

怎么把图片压缩小一点?

怎么把图片压缩小一点?如今是互联网的时代,图片已成为在我们的生活或者职场工作中占有非常重要的作用。我们经常需要在网络上上传图片,将它们发布在朋友圈、自媒体平台、电子商务平台、社交媒体或个人网站上展示。然而,如果图片体…

LeetCode(力扣)216. 组合总和 IIIPython

LeetCode216. 组合总和 III 题目链接代码 题目链接 https://leetcode.cn/problems/combination-sum-iii/ 代码 class Solution:def combinationSum3(self, k: int, n: int) -> List[List[int]]:result[]self.backtracking(n, k, 0, 1, [], result)return resultdef back…

IPO后首份半年报出炉,豪恩汽电净利润同比下滑10.49%

上市公司的半年报陆续出炉。 今年7月4日,主营汽车电子的豪恩汽电正式登陆创业板上市,公司的主要产品为汽车智能驾驶感知系统,包括车载摄像系统、车载视频行驶记录系统和超声波雷达系统等产品。 相比于目前国内主流的智能驾驶方案公司&#…

工具及方法 - 下载谷歌商店APP的APK文件

在手机上安装APP时,一般都是都在应用商店上下载。 Android手机方便些,很多可以下载到APK,再上传到手机上安装,更加方便了用户的使用。 通过使用APK,可以离线安装应用,安装不同的APP版本,或者安装…

LSTM基础

LSTM 视频讲得非常好 https://www.bilibili.com/video/BV1644y1W7sD/?spm_id_from333.788&vd_source3b42b36e44d271f58e90f86679d77db7门的概念 过去,不过去,过去一部分 点乘,0 concatenation,pointwise LSTM RNN 上一…

uniapp h5 微信打开双标题处理

解决办法 在page.json文件下将 globalStyle 下的 navigationStyle 设置为 “custom” 即可解决微信H5双标题的问题 "globalStyle": {"navigationStyle":"custom",设置成 custom 即可解决微信H5双标题的问题"navigationBarTextStyle": …

rtthread 芯片创建的工程 串口无输出

根据启动流程可以看到 从汇编中跳转到 entry,而 rtt studio 通过芯片生成的工程使用的是默认的HAL库,启动代码是跳转到main,没有替换跳转到entry,所以通过修改路径:libraries\CMSIS\Device\ST\STM32F7xx\Source\Templates\gcc\sta…

【uniapp/uview】u-datetime-picker 选择器的过滤器用法

引入&#xff1a;要求日期选择的下拉框在分钟显示时&#xff0c;只显示 0 和 30 分钟&#xff1b; <u-datetime-picker :show"dateShow" :filter"timeFilter" confirm"selDateConfirm" cancel"dateCancel" v-model"value1&qu…

企业无线局域网部署最佳实践

文章目录 企业无线局域网部署最佳实践引言1. 无线网规划和设计a. 选择合适的频宽b. 网络规划工具c. 考虑物理环境d. 用户密度和需求e. 未来扩展f. 安全性和策略g. 测试和验证2. 无线局域网容量2.1 用户和设备预测2.2 应用流量分析2.3 带宽管理2.4 无线技术选择2.5 网络健康检查…

如何使用nvm管理Node版本

1&#xff0c;去github官网&#xff0c;输入nvm-windows&#xff0c;点击第一个nvm项目&#xff0c;在右侧点击releases,选择箭头指向的安装包 2&#xff0c;为nvm的安装包创建一个英文文件夹&#xff0c;在这个文件夹中安装nvm,注意不要和node.js的安装目录一致 3,点击下载的n…

uniapp 路由不要显示#

在Uniapp中&#xff0c;路由默认使用的是hash模式&#xff0c;即在URL中添加#符号。如果你不想在URL中显示#&#xff0c;可以切换为使用history模式。 要在Uniapp中使用history模式&#xff0c;可以按照以下步骤进行操作&#xff1a; 打开manifest.json文件。在"app&qu…

金山办公推出WPS AI,开放应用于智能文档

&#x1f989; AI新闻 &#x1f680; 金山办公推出WPS AI&#xff0c;开放应用于智能文档 摘要&#xff1a;金山办公宣布WPS AI正式面向社会开放&#xff0c;首先用于WPS智能文档&#xff0c;该产品支持内容生成、表达优化、文档理解及处理等功能。用户可通过WPS客户端、App、…

MyBatis获取参数值的两种方式(重点)

MyBatis获取参数值的两种方式&#xff1a;${}和#{}${}的本质就是字符串拼接&#xff0c;#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql&#xff0c;若为字符串类型或日期类型的字段进行赋值时&#xff0c;需要手动加单引号&#xff1b;但是#{}使用占位符赋值的方式拼…

STM32屏幕计时器

目录 一、最终效果二、实现思想三、实现过程3.1 屏幕显示3.2 中断处理 一、最终效果 显示屏显示计时时间&#xff0c;格式为 00:00:00&#xff0c;依次为 时:分:秒&#xff0c;程序运行之后自动计时&#xff0c;当按下按键&#xff0c;计时清零&#xff0c;按下按键采用外部中…

用Qt写的机器视觉绘图工具

一个用QtGraphicsView写的机器视觉绘图工具&#xff0c;支持直线查找&#xff0c;圆拟合&#xff0c;卡尺工具&#xff0c;圆环查找等。底部GraphicsScene可以实时显示相机图像&#xff0c;工具获取图像后通过算法处理图像。 Project是基于Qt的例程项目qdraw改的。

任天堂开发全新独立VR设备,或为下一代主机?将提供混合现实体验

根据爆料人Nash Weedle在X平台上的发文&#xff0c;我们得知任天堂正在秘密开发一款全新的独立VR设备&#xff0c;该设备将拥有一块MicroLED屏幕&#xff0c;并且独立于任天堂传闻中的下一代主机。与此同时&#xff0c;谷歌也参与了这款VR产品的研发工作。 这一新的VR设备被设计…

微信怎么录屏聊天记录?这个方法请你收好

“微信怎么录屏聊天记录呀&#xff1f;和女朋友刚认识的时候&#xff0c;都是在微信上面聊天的&#xff0c;现在想把这些聊天记录都保存下来&#xff0c;觉得很有纪念意义&#xff0c;有人知道怎么录屏保存下来吗&#xff1f;” 微信作为一款广泛使用的社交工具&#xff0c;承…

三维模型OBJ格式轻量化的跨平台兼容性问题分析

三维模型OBJ格式轻量化的跨平台兼容性问题分析 三维模型的OBJ格式轻量化在跨平台兼容性方面具有重要意义&#xff0c;可以确保模型在不同平台和设备上的正确加载和渲染。本文将分析OBJ格式轻量化的跨平台兼容性技术&#xff0c;并探讨其在保证数据一致性、支持多种平台和工具以…