为什么 51单片机复位后PC的内容是0000H,但是工作程序并不是从0000H开始连续?

如题所述

前言:这就必须要集成开发环境如keil,iar来背锅咯,它帮我们做了太多东西,以至于弱化了我们的能力。
答:启动文件里,程序从0地址运行,执行跳转指令reset。然后初始化我们MCU时钟、看门狗、中断、设置栈(因为要调用C函数),代码重定位(需要把flash中RW-dota数据搬移到ram当中),最后执行绝对跳转到main函数运行。可以分析反汇编文件,看看具体程序的链接地址,你就知道程序是从main运行的地址。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答