问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

stm32启动不见程序指针

发布网友 发布时间:2022-12-10 03:59

我来回答

1个回答

热心网友 时间:2024-10-22 18:53

我们知道,我们的程序是放在Flash里的,这个Flash可以存储的时间长,即使断电也不会丢失,可以想象类似我们的手机ROM,一般比较大。所以我们的启动方式就选择这个,看他的芯片手册可以直到怎么去选择。其他两种方式我还不是很了解,后期我学习后会分享给大家。

2. 中断向量表

在正式开始之前,要知道一个东西,中断向量表,很重要。

中断向量表就是中断向量的列表。
中断向量表在内存中保存,其中存放着中断源(中断向量号或者中断类型号)所对应的中断处理程序的入口地址。
一个中断源对应一个中断处理程序,这种关系索引表,就是中断向量表。
中断是很重要的东西对吧,中断的实现就是由中断向量表中的程序实现的,假如这一个定时器中断,它会对应中断表中一项,这一项放着中断处理程序的地址,这个有点像指针。记得之前手写过一些中断(异常)向量表,是ARM汇编,有兴趣的可以了解一下。

3. 启动过程

为什么每次上电都是可以执行哪些程序呢?因为我们选择的是Flash启动。他是怎么找到那些我们烧录的程序的。每次启动就是一次中断,对应中断向量表中的复位中断,这就找到了我们的程序。

3.1 STM32启动文件

我们以具体的代码来说明。

项目里有个startup_stm32f103xb.s的文件,这就是启动文件。我们先看看他的描述。

;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
;* File Name : startup_stm32f103xb.s
;* Author : MCD Application Team
;* Description : STM32F103xB Devices vector table for MDK-ARM toolchain.
;* This mole performs:
;* - Set the initial SP
;* - Set the initial PC == Reset_Handler
;* - Set the vector table entries with the exceptions ISR address
;* - Configure the clock system
;* - Branches to __main in the C library (which eventually
;* calls main()).
;* After Reset the Cortex-M3 processor is in Thread mode,
;* priority is Privileged, and the Stack is set to Main.
;******************************************************************************
从这个文件看一看出来启动过程大致分为五步:

初始化堆栈指针。
设置PC指针的值。
设置中断向量表。
配置系统时钟。
调用C库函数__main()。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 为什么STM32重新上电程序就没有了 烧录的程序怎么会丢失呢?搞不懂 kms激活到底安全吗? 发财的销售网名 做销售取什么网名 宝玩05 游戏互动 大草莓开直播怎么开发个小视频呢 大草莓-3DJ 暗夜将至的沈辣实力 《暗夜将至》全集_by儿东水寿_txt下载免费全文阅读 多媒体教室各种设备用英语怎么说 梦到佛和圣母在一所庙里是什么意思?!求解! 博约司机总是更新啥意思 博约司机和博约出行一样吗 博约网约车平台怎么样怎么提现 博约司机怎么显示地图 这个LOL召唤师头像怎么获得,求告知 植物大战僵尸选择3D加速会卡?为什么? 专业养鸡合作社取名免费测试网德丰园养鸡专业合作社 植物大战僵尸3D加速为什么会卡 2022数据智能峰会比赛是真的吗 {数码宝贝2}黑暗战斗暴龙兽,黑暗的命运挡不住正义的心。怀念英雄... 《王者荣耀》打野铠如何去切公孙离? 水果香橼有什么? 抖音听歌猜歌名 盗贼刀扇换武器技巧 花生有哈喇味不能吃 什么是做市商新三板做市商制度? 城堡战争魔兽还得充钱? 魔兽世界城堡法是谁 尸体白骨化后还会臭吗? 常温常湿下,一具新鲜的尸体暴露在空气中白骨化大约需要多少时间?_百度... 尸体要经过多久才白骨化如题 谢谢了 死人什么时候开始腐烂? 尸体白骨化要多长时间? 化学里面有哪些符号? playconomics怎么建立一个agent cs1.5的玩法与窍门 很急很急的问题 知道cs怎么设置的进 微信公众账号的服务号是否对于非营利机构免费呢? 战斗王陀罗飓风战魂里多朗是潘多拉吗?