历史上的今天
今天是:2024年12月11日(星期三)
2018年12月11日 | STM32向量表-串口1中断
2018-12-11 来源:eefocus
DCD指令:用于分配一片连续的字存储单元(32bit),并将表达式的值初始化给该字存储单元,类似于C中定义数组并初始化。比如: DCD 0 的意思是:分配一个字存储单元,并将该单元初始化为0。
EXPORT指令:伪指令,用于在程序中声明一个全局标号,该标号可以在其他文件中使用
一、STM32的启动文件分析
https://blog.csdn.net/weicao1990/article/details/46914013
1.STM32启动文件中可以看到如下代码
__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD SVC_Handler ; SVCall Handler
DCD DebugMon_Handler ; Debug Monitor Handler
DCD 0 ; Reserved
DCD PendSV_Handler ; PendSV Handler
DCD SysTick_Handler ; SysTick Handler
......
这一段是分配STM32的中断向量表。从DCD后面表达式的名称可以看出第一个字存储单元分配给了栈顶,其值为__initial_sp。第二个字分配给了复位地址,其值为Reset_Handler,后面接着分配给其他异常或中断。
这里的Reset_Handler,NMIException等,其实是一个地址值,也就是中断处理函数的入口地址。在函数实现时,由编译器分配一个地址值
为什么是这样的分配顺序?
问题的答案好找,我们参考《STM32参考手册》:

可以看到,启动文件中的向量表的分配的顺序是按照固定的规则来的。
2.自定义串口1中断服务函数



三部配置之后,若产生串口1中断,则会进入此函数void feng_usart1_handler(void);
上一篇:STM32向量表详细分析
史海拾趣
|
火线、零线两之间,我用一只红色发光二极管串接一个100K电阻并在火线零线之间后,发光二极管正常工作; 可是我用一蓝色发光二极管串接一个100K电阻并在火线零线之间后,为什么就不能正常工作了呢? 着急啊?请教各位大侠,用蓝灯如何接才能正常、 ...… 查看全部问答> |
|
据金鹰网报道 现年39岁的Vasyl Lazarenko是一位来自乌克兰西部的工匠。由于女友非常喜欢坐敞篷车去兜风,而他自己又觉得硬顶车篷很实用,于是突发奇想,决定自己打造一款世界上独一无二的“双面车”。 这辆车的左边是现代轿车的造型,而右边则 ...… 查看全部问答> |
|
老弟最近在开发过程遇到一个问题,就是开发出的vxworks程序 1、跨网段无法ping通,报文也过不去。 现象与现状: 同网段可以ping通,报文也可以过去。 目前的所跨的两个采用B类地址,从第二位开始有区别区分子网。分 ...… 查看全部问答> |
|
我在学习单片机输出到蜂鸣器的时候有这样一段程序 bb bit p2.4 ;定义bb在下面程序中代表p2.4,连接蜂鸣器 star: clr bb ;使v1 9015导通 &n ...… 查看全部问答> |
|
想用ARM7+RTL8019做一个网络方面的东西.功能是将这个产品接入一个局域网中通过一个服务器件(192.168.1.3)发送数据(没分钟一个包大概几百字节)到另一个服务器(192.168.2.8)所在的局域网中的某一个产品. 见下图: A(ARM+8019) 192.168.1.3 192.168. ...… 查看全部问答> |
|
关于2440 WINCE5.0 BSP中EBOOT的一点疑问,谢谢解疑 我在三星官方下了个SMDK2440A WINCE5.0的BSP,弄NBOOT+EBOOT启动的时候发现个问题: 在EBOOT中的main.c文件: void main(void) { // Clear LEDs. // ...… 查看全部问答> |
|
【 低功耗】利用 Xilinx 功耗估计器分七步精确分析最坏情况下的功耗使用 利用 Xilinx 功耗估计器分七步精确分析最坏情况下的功耗使用 [ 本帖最后由 hangsky 于 2011-11-8 13:26 编辑 ]… 查看全部问答> |
|
本系列全部文章已整理成电子文档,下载地址: https://download.eeworld.com.cn/detail/tiankai001/13375 《那年,一步一步学linux c》全系列(目录索引) 几点说明:该系列文章中所用结构数据代码均来自linux2.6.39.文章中若有不对或某些功 ...… 查看全部问答> |




