单片机上电后,假如晶振正常起震的话,cpu就会在晶振的驱动下开端作业,cpu的作业便是在每个机器周期到指定的当地提取指令,然后解析并履行,51单片机只要一个时钟源所以51单片机永久只能以一种时钟频率作业,单片机一上电单片机的频率就固定了不能更改了,上电后单片机就以固定的频率开端作业了,因而51单片机也没有装备体系时钟的寄存器,stm32等高档单片机就不相同了,这种单片机有多个时钟源,上电后单片机以某种固定的时钟频率开端作业,到指定的地址提取指令,然后解析并履行,在后面的程序中能够更改体系的作业时钟与作业频率,
除非是没有晶振供给时钟,或许是体系没有上电,不然cpu是不可能停止作业的,cpu的使命便是不断的提取指令,然后解析并履行,并且单片机在咱们下载程序之前,就现已有程序了,出厂之前厂家就现已下载了一部分程序在单片机里边。单片机上电之后就会先履行这部分程序。例如:stm32体系存储器中的用于ISP串口下载的bootloard程序,这段代码的使命是与下载器通讯将用户写得代码下载到指定当地。
stm32上电后可能在三个不同的地址开端提取指令并解析履行,
一:用户FLASH;里边装载的是用户下载的程序,假如没有程序或许程序不正确,单片机将会跑飞,
二:体系存储器:里边出厂前下载了用于ISP串口下载的bootloard程序,这段代码的使命是与下载器通讯将用户写得代码下载到指定当地。假如这部分代码被损坏这个单片机将再也不能通过串口下载程序了。
三:片上内存SRAM;内存中的代码是掉电不保存的,假如从这儿发动, 单片机将会跑飞 由于复位后的内存里边存的都是111111,cpu不认识这些是什么意思。