社区
驱动开发/核心开发
帖子详情
CPU上电执行的第一条指令
hinzer
博客专家认证
2018-10-23 11:02:46
今天看到讲系统移植书上说,芯片上电第一条指令应该处于Bootloader的入口。 这就有点不明白了,不是每个芯片都有厂商固化好的一段固件程序嘛,这样的话应该是上电先固件代码 Bootloader代码 再加载其他用户程序或者内核才对。 这些基础概念有些迷糊了,还望大家给指点一二,不胜感激!
...全文
770
5
打赏
收藏
CPU上电执行的第一条指令
今天看到讲系统移植书上说,芯片上电第一条指令应该处于Bootloader的入口。 这就有点不明白了,不是每个芯片都有厂商固化好的一段固件程序嘛,这样的话应该是上电先固件代码 Bootloader代码 再加载其他用户程序或者内核才对。 这些基础概念有些迷糊了,还望大家给指点一二,不胜感激!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hinzer
2018-10-24
打赏
举报
回复
明白了,固件该是厂家固化的代码,对自家的硬件进行配置,可以BootLoader 替代这段代码。谢谢 谢谢!
of123
2018-10-24
打赏
举报
回复
每一种芯片是不一样的。共同点就是,从芯片的起始地址开始运行。至于起始地址被分配在何种非易失性存储器上,就不同了。可以是 ROM、EEPROM、FLash……。现在的芯片,多数是 Flash 了。
宽泛地说,存储在 Flash 中的可执行代码都可以叫固件,包括 Bootloader(引导代码)和 COS(应用代码)。
以往一些芯片中的引导程序(Bootloader)是固化在 ROM 中的,是在芯片制造时通过掩膜一次性生成的,不可更改。早期的社保卡就要求必须是这种 Bootloader。
现在 Flash 中的 Bootloader 也分成可覆盖的和不可覆盖的。需要反复下载更新 COS 的,一般选择不可覆盖方式。可覆盖的,国外用户用的较多,他们的 COS 一般包括初始引导操作。这种情况下,芯片起始地址(多数芯片的地址 0 和 ARM 芯片的地址 4)只是一条跳转指令,真正的 Bootloader 代码在芯片的高地址。因此,COS 下载过程覆盖并抢占了引导区。当然,如果愿意,COS 将引导区恢复为原来的跳转指令,还可以恢复 Bootloader 功能。
ckc
2018-10-24
打赏
举报
回复
厂商固化的这段代码就是上电引导程序,你可以用自己的代码替换掉这个代码
worldy
2018-10-23
打赏
举报
回复
固化程序也有一个入口点。CPU程序运行到哪里一般都是依赖于PC寄存器及相关段寄存器的当前值确定,CPU复位后,硬件会确定一个PC寄存器值及相关段寄存器一个固定值(不同的CPU不同),这个值就是入口点。固化程序的入口必须位于PC寄存器及相关段寄存器的复位值位置上,该位置一般是一个跳转指指令,将运行引导到真正的程序入口位置。
hinzer
2018-10-23
打赏
举报
回复
谢谢答复!照你这个说法,CPU上电后执行的第一个程序应该是固件代码,,为什么有些地方有 CPU上电首先执行引导程序的说法呢?
这方面的概念一直比较迷糊,能从先后执行顺序和作用的方面讲讲这两者的区分吗?
虚拟机设计:从0构造8051虚拟机
分析其
指令
编码,了解不同的寻址模式,分析其具体的
执行
过程,最后实现
指令
的加载、
执行
。通过这样的过程,提供了深入理解计算机
指令
运行的好机会。 在课程的最后,该虚拟机将会被移植到ST公司的STM32芯片(ARM内核)...
计算机开机后
执行
的
第一条
指令
,关于
CPU
上电
读
第一条
指令
的问题
该楼层疑似违规已被系统折叠隐藏此楼查看此楼这个问题困扰了我好久,老是想不明白,请大家指点一下。
CPU
上电
后会从某个固定的地方读...直接读出来
第一条
指令
,放到寄存器里, 然后译码,接着就
执行
第一条
指令
了。...
PC加电后,
CPU
如何
执行
第一条
指令
带着这些问题,我开始对
cpu
执行
第一条
指令
开始研究。 加电后的启动流程
CPU
首先会进行硬件初始化(hardware reset)。 然后是可选的自检过程(BIST built-in self-test)。
CPU
开始
执行
第一条
指令
。从此开始
CPU
...
CPU
加电
执行
的
第一条
指令
当按下开关时,刚开始电压不稳定,主板会给
cpu
发出并保持RESET信号,rang
CPU
自动恢复到初 始状态,当芯片组检测到稳定供电时,便撤去了RESET信号,
CPU
开始
执行
第一条
指令
. 2.
第一条
指令
在哪? 首先可以肯定的是刚加电是RAM...
CPU
加电后
第一条
指令
当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向
CPU
发出并保持一个RESET(重置)信号,让
CPU
内部自动恢复到初始状态,但
CPU
在此刻不会马上
执行
指令
。...
驱动开发/核心开发
21,595
社区成员
21,708
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章