以stm32为例讲述单片机上电后那些你不知道的秘密
单片机上电后它的 指令数据都被写在了哪? ,它的内部又会发生哪些故事,本文就为你讲解一下,它的内部是如何运作的。
单片机上电后,如果晶振正常起震的话,cpu就会在晶振的驱动下开始工作,cpu的工作就是在每个机器周期到指定的地方提取指令,然后解析并执行,51单片机只有一个时钟源所以51单片机永远只能以一种时钟频率工作,单片机一上电单片机的频率就固定了不能更改了,上电后单片机就以固定的频率开始工作了,因此51单片机也没有配置系统时钟的寄存器,stm32等高级单片机就不一样了,这种单片机有多个时钟源,上电后单片机以某种固定的时钟频率开始工作,到指定的地址提取指令,然后解析并执行,在后面的程序中可以更改系统的工作时钟与工作频率,
除非是没有晶振提供时钟,或者是系统没有上电,否则cpu是不可能停止工作的,cpu的任务就是不停的提取指令,然后解析并执行,而且单片机在我们下载程序之前,就已经有程序了,出厂之前厂家就已经下载了一部分程序在单片机里面。单片机上电之后就会先执行这部分程序。例如:stm32系统存储器中的用于ISP串口下载的bootloard程序,这段代码的任务是与下载器通讯将用户写得代码下载到指定地方。
stm32上电后可能在三个不同的地址开始提取指令并解析执行,
一:用户FLASH;里面装载的是用户下载的程序,如果没有程序或者程序不正确,单片机将会跑飞,
二:系统存储器:里面出厂前下载了用于ISP串口下载的bootloard程序,这段代码的任务是与下载器通讯将用户写得代码下载到指定地方。如果这部分代码被破坏这个单片机将再也不能通过串口下载程序了。
三:片上内存SRAM;内存中的代码是掉电不保存的,如果从这里启动, 单片机将会跑飞 因为复位后的内存里面存的都是111111,cpu不认识这些是什么意思。
- 盘点STM32-NUCLEO开发与仿真平台(03-28)
- 一种基于ZigBee和STM32的室内智能照明系统的设计(05-13)
- 大联大友尚集团推出ST STM32马达控制Nucleo开发工具包,可直接开始运转无刷直流马达(05-27)
- 这些VR设备“内脏”构造大解剖!绝对有你没见过的(02-14)
- 在变频空调风机中永磁同步电机矢量控制方案的运用(04-04)
- 基于STM32和SIM900A的无线通信模块设计(10-07)