标题: stm32程序是怎么进入入口地址的? [打印本页]

作者: zhaoshijie1991    时间: 2018-1-17 19:55
标题: stm32程序是怎么进入入口地址的?
keil自带stm32的启动文件,但在程序又是如何执行到启动文件的第一条汇编语句的呢?

作者: yzwzfyz    时间: 2018-1-18 21:34
任何单片机的第一条取指地址,都是由硬件决定的。RESET的目的之一就是硬件强行到指定的地址去运行。
常用的硬件方案有两种(不限于此两种):
1、从固定地址取指令执行。如51系列,是从0000H开始取指令执行。
2、从固定地址取出地址,再从这个地址处取指令执行。例如6502芯片(任天堂游戏机),是从FFFEH和FFFFH这两个地址中取出两个字节,假设这两个字节是1234H,则再从1234H起取指令运行。

stm32是从何处开始呢?不告诉你,请你查一下手册(在关于RESET的地方应当有)。

C语言规定程序从MAIN开始,KELL在编译MAIN时,必须知道是用的什么单片机。否则它无法确定MAIN程序从什么地址开始存放。(这就是你仿真时为什么要先选择单片机型号的道理之一)

而用汇编写程序的人,也必须知道CPU复位后是从何处开始运行的,程序也从这里开始写。




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