OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8867|回复: 2

请教单片机的启动过程

[复制链接]

1

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2014-3-12
在线时间
9 小时
发表于 2014-3-15 17:04:55 | 显示全部楼层 |阅读模式
    以前学51的时候,记得单片机启动后是从00H执行第一条执行,往往这里是一条跳转到主程序的指令,
然后00H地址后面其实是一些中断函数的入口地址;
    后来学stm8的时候,发现多了个叫做中断向量表的东西,单片机启动后就到该中断向量表取跳转地址,
然后...貌似...就启动了...(都不知道说的对不对)

    我记得看过一篇文章说道:
        CPU启动后到有两种方式:
        1、CPU重启后,将其PC寄存器设为特定地址,只要用户的起始程序存在这个地址,就可以被正确执行;
——貌似51就是启动后将PC寄存器设为00H。

        2、CPU重启后,会将CPU中存储中断矢量表地址的寄存器设为某特定地址,接着引发RESET中断,程序
员只要把中断矢量表存在这个地址。并指定RESET中断的处理程序为自己写的某个函数,则该函数就可以在
开机后被CPU执行
——中断矢量表不是固定在FLASH内部的一段内存吗?怎么又多了个存储中断矢量表的寄存器?
——栈、堆等的初始化到底是在RESET中断的执行之前还是之后?
    
    由于,应用到的程序一直是用C写的,很少去关心单片机的启动过程,往往编译器也有现成的傻瓜版启动代码,
至于汇编毕业后就都忘得7788了。所以,单片机启动过程这一块我还是很乱很迷糊的,希望哪位有经验的朋友
能够指导或者做个概述一下,万分感谢!~




功夫再高、也怕羊刀
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-3-15 17:09:28 | 显示全部楼层
回复 支持 反对

使用道具 举报

69

主题

475

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1334
金钱
1334
注册时间
2013-12-28
在线时间
197 小时
发表于 2014-3-15 18:57:56 | 显示全部楼层
楼主的想法很好,帮顶!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-5 04:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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