标题: 关于51内核的单片机启动流程的理解 [打印本页]

作者: no_ending    时间: 2024-9-30 09:13
标题: 关于51内核的单片机启动流程的理解
51内核以STC系列的STC8H8K64U单片机为例,采用哈佛结构,即程序和数据分开存储,那编译生成的HEX文件下载到flash后,系统复位上电,是不是需要将数据先从flash或者说是ROM中复制到SRAM中呢?然后程序计数器开始读指令运行?有没有大佬讲下这个流程,或者说想知道这个过程需要看什么书呢?

作者: xiaobendan001    时间: 2024-9-30 16:33
复位从0000开始吧,没有啥SRAM吧,直接在flash中运行吧
作者: aking991    时间: 2024-9-30 19:00
就跟原来51单片机一样用就可以了
作者: 单片机研究协会    时间: 2024-10-1 12:10
51是冯诺依曼结构吧,STM8、ARM才是哈佛结构。
作者: npn    时间: 2024-10-1 22:43
STC单片机上电需要执行一段ISP引导程序(固定不可修改)用于检测有无下载请求,然后才会执行用户程序。
作者: no_ending    时间: 2024-10-5 15:43
npn 发表于 2024-10-1 22:43
STC单片机上电需要执行一段ISP引导程序(固定不可修改)用于检测有无下载请求,然后才会执行用户程序。

嗯嗯明白
作者: no_ending    时间: 2024-10-5 15:45
单片机研究协会 发表于 2024-10-1 12:10
51是冯诺依曼结构吧,STM8、ARM才是哈佛结构。

啊,这样的啊
作者: no_ending    时间: 2024-10-5 15:45
xiaobendan001 发表于 2024-9-30 16:33
复位从0000开始吧,没有啥SRAM吧,直接在flash中运行吧

我看手册上都有标sram大小
作者: 188610329    时间: 2024-10-5 21:34
no_ending 发表于 2024-10-5 15:45
我看手册上都有标sram大小

SRAM 是放变量的,程序是直接在 Flash 运行的。
作者: 人中狼    时间: 2024-10-6 13:42
这个问题应该先学习了51单片机的基础内容然后再考虑,没有基础知识考虑超过基础知识的内容也只会一知半解
作者: yzwzfyz    时间: 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处的程序了。
作者: wufa1986    时间: 2024-10-7 11:08
51不是哈弗,启动流程这玩意只有你自己去设计一款单片机才会真正明白,比如用fpga做一款你自己的51单片机
作者: STC庄伟    时间: 2024-10-12 10:43
你去冠方 看何宾老师的面肥教学视频, 有这部分的讲解
作者: no_ending    时间: 2024-10-14 17:54
人中狼 发表于 2024-10-6 13:42
这个问题应该先学习了51单片机的基础内容然后再考虑,没有基础知识考虑超过基础知识的内容也只会一知半解

嗯嗯
作者: no_ending    时间: 2024-10-14 17:55
yzwzfyz 发表于 2024-10-6 17:07
传统的51,从【程序存储器】的0000单元开始取指运行。
早期这个【程序存储器】在CPU外面,需要外置,如803 ...

嗯嗯,受教了,多谢
作者: no_ending    时间: 2024-10-14 17:58
STC庄伟 发表于 2024-10-12 10:43
你去冠方 看何宾老师的面肥教学视频, 有这部分的讲解

好的





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1