找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3862|回复: 1
打印 上一主题 下一主题
收起左侧

stm32程序是怎么进入入口地址的?

[复制链接]
跳转到指定楼层
楼主
ID:277125 发表于 2018-1-17 19:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
keil自带stm32的启动文件,但在程序又是如何执行到启动文件的第一条汇编语句的呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

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

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表