找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 485|回复: 15
收起左侧

关于51内核的单片机启动流程的理解

[复制链接]
ID:929089 发表于 2024-9-30 09:13 | 显示全部楼层 |阅读模式
51内核以STC系列的STC8H8K64U单片机为例,采用哈佛结构,即程序和数据分开存储,那编译生成的HEX文件下载到flash后,系统复位上电,是不是需要将数据先从flash或者说是ROM中复制到SRAM中呢?然后程序计数器开始读指令运行?有没有大佬讲下这个流程,或者说想知道这个过程需要看什么书呢?
回复

使用道具 举报

ID:1109793 发表于 2024-9-30 16:33 | 显示全部楼层
复位从0000开始吧,没有啥SRAM吧,直接在flash中运行吧
回复

使用道具 举报

ID:65956 发表于 2024-9-30 19:00 | 显示全部楼层
就跟原来51单片机一样用就可以了
回复

使用道具 举报

ID:828160 发表于 2024-10-1 12:10 | 显示全部楼层
51是冯诺依曼结构吧,STM8、ARM才是哈佛结构。
回复

使用道具 举报

ID:57657 发表于 2024-10-1 22:43 | 显示全部楼层
STC单片机上电需要执行一段ISP引导程序(固定不可修改)用于检测有无下载请求,然后才会执行用户程序。
回复

使用道具 举报

ID:929089 发表于 2024-10-5 15:43 | 显示全部楼层
npn 发表于 2024-10-1 22:43
STC单片机上电需要执行一段ISP引导程序(固定不可修改)用于检测有无下载请求,然后才会执行用户程序。

嗯嗯明白
回复

使用道具 举报

ID:929089 发表于 2024-10-5 15:45 | 显示全部楼层
单片机研究协会 发表于 2024-10-1 12:10
51是冯诺依曼结构吧,STM8、ARM才是哈佛结构。

啊,这样的啊
回复

使用道具 举报

ID:929089 发表于 2024-10-5 15:45 | 显示全部楼层
xiaobendan001 发表于 2024-9-30 16:33
复位从0000开始吧,没有啥SRAM吧,直接在flash中运行吧

我看手册上都有标sram大小
回复

使用道具 举报

ID:624769 发表于 2024-10-5 21:34 | 显示全部楼层
no_ending 发表于 2024-10-5 15:45
我看手册上都有标sram大小

SRAM 是放变量的,程序是直接在 Flash 运行的。
回复

使用道具 举报

ID:384109 发表于 2024-10-6 13:42 | 显示全部楼层
这个问题应该先学习了51单片机的基础内容然后再考虑,没有基础知识考虑超过基础知识的内容也只会一知半解
回复

使用道具 举报

ID:123289 发表于 2024-10-6 17:07 | 显示全部楼层
传统的51,从【程序存储器】的0000单元开始取指运行。
早期这个【程序存储器】在CPU外面,需要外置,如8039,8035,8031。
后期这个【程序存储器】与CPU集成到一起了,如8051,8052。
它门的程序都需要用专用的烧写器进行烧录,而后运行程序。
现在的51,将【烧录器】也与CPU集成到一起了,如STC系列。不过它面临一个新的问题:开机后是进行烧录呢?还是去执行0000处的用户程序呢?
它是这样处理:
冷起动上电后,运行烧录程序(这段程序是设计CPU的人设计好的,在CPU内,有的不占用程序空间,有的会占用程序空间,由机型决定。),它先检测烧录口的IO线上,有无约定的数据输入,有则烧录;无则转入0000取指运行用户程序。
所以烧录程序时,应该先下达烧录命令(让CPU的IO口出现约定的数据),而后再冷起动一下(上电)。
很多人烧录不了,就是顺序不对。
而热起动,则是直接运行用户0000处的程序了。
回复

使用道具 举报

ID:879348 发表于 2024-10-7 11:08 | 显示全部楼层
51不是哈弗,启动流程这玩意只有你自己去设计一款单片机才会真正明白,比如用fpga做一款你自己的51单片机
回复

使用道具 举报

ID:961114 发表于 2024-10-12 10:43 | 显示全部楼层
你去冠方 看何宾老师的面肥教学视频, 有这部分的讲解
回复

使用道具 举报

ID:929089 发表于 2024-10-14 17:54 | 显示全部楼层
人中狼 发表于 2024-10-6 13:42
这个问题应该先学习了51单片机的基础内容然后再考虑,没有基础知识考虑超过基础知识的内容也只会一知半解

嗯嗯
回复

使用道具 举报

ID:929089 发表于 2024-10-14 17:55 | 显示全部楼层
yzwzfyz 发表于 2024-10-6 17:07
传统的51,从【程序存储器】的0000单元开始取指运行。
早期这个【程序存储器】在CPU外面,需要外置,如803 ...

嗯嗯,受教了,多谢
回复

使用道具 举报

ID:929089 发表于 2024-10-14 17:58 | 显示全部楼层
STC庄伟 发表于 2024-10-12 10:43
你去冠方 看何宾老师的面肥教学视频, 有这部分的讲解

好的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表