微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 以stm32为例讲述单片机上电后那些你不知道的秘密

以stm32为例讲述单片机上电后那些你不知道的秘密

时间:08-29 来源: 点击:

  单片机上电后它的 指令数据都被写在了哪? ,它的内部又会发生哪些故事,本文就为你讲解一下,它的内部是如何运作的。

  单片机上电后,如果晶振正常起震的话,cpu就会在晶振的驱动下开始工作,cpu的工作就是在每个机器周期到指定的地方提取指令,然后解析并执行,51单片机只有一个时钟源所以51单片机永远只能以一种时钟频率工作,单片机一上电单片机的频率就固定了不能更改了,上电后单片机就以固定的频率开始工作了,因此51单片机也没有配置系统时钟的寄存器,stm32等高级单片机就不一样了,这种单片机有多个时钟源,上电后单片机以某种固定的时钟频率开始工作,到指定的地址提取指令,然后解析并执行,在后面的程序中可以更改系统的工作时钟与工作频率,

  除非是没有晶振提供时钟,或者是系统没有上电,否则cpu是不可能停止工作的,cpu的任务就是不停的提取指令,然后解析并执行,而且单片机在我们下载程序之前,就已经有程序了,出厂之前厂家就已经下载了一部分程序在单片机里面。单片机上电之后就会先执行这部分程序。例如:stm32系统存储器中的用于ISP串口下载的bootloard程序,这段代码的任务是与下载器通讯将用户写得代码下载到指定地方。

  stm32上电后可能在三个不同的地址开始提取指令并解析执行,

  一:用户FLASH;里面装载的是用户下载的程序,如果没有程序或者程序不正确,单片机将会跑飞,

  二:系统存储器:里面出厂前下载了用于ISP串口下载的bootloard程序,这段代码的任务是与下载器通讯将用户写得代码下载到指定地方。如果这部分代码被破坏这个单片机将再也不能通过串口下载程序了。

  三:片上内存SRAM;内存中的代码是掉电不保存的,如果从这里启动, 单片机将会跑飞 因为复位后的内存里面存的都是111111,cpu不认识这些是什么意思。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top