搜索
bottom↓
回复: 0

关于STM32固件库结构有点不是很清楚,请高手指教!

[复制链接]

出0入0汤圆

发表于 2010-2-23 17:10:32 | 显示全部楼层 |阅读模式
对不起,不小心发错了地方,已改正了,请版主删别此贴,谢谢!
                                         
关于STM32固件库结构有点不是很清楚,问高手指教,谢谢!  
    文件“UM0427用户手册”中,第34页Figure 2. 固件函数库文件体系结构中,为什么需要“stm32f10x_it.h”头文件?其实在汇编启动代码中已经有了下面的说明(如下列表所示):  
; Import exceptions handlers  
IMPORT  NMIException  
IMPORT  HardFaultException  
。。。。  
IMPORT  USBWakeUp_IRQHandler  

    “IMPORT”伪指令已经通知编译器要使用的标号在其他的源文件中定义,但要在当前源文件中引用,而且无论当前源文件是否引用该标号,该标号均会被加入到当前源文件的符号表中,所以似乎stm32f10x_it.h不需要,只需stm32f10x_it.c文件就可以了,而加入“stm32f10x_it.h”文件,我的理解理解是:“第34页Figure 2. 固件函数库文件体系结构”中,程序的执行实际上是分成了二支,一支是正常的应用程序(不包括中断),另一支是中断。  
    正常的应用程序执行流好理解,这个分支下去的库文件体系结构不多作解释,而中断则是比较特殊的一个程序执行流,一旦进入中断,在程序执行时有可能会再次调用其它库文件体(不包括stm32f10x_it.c),而一旦这样做,就得include“stm32f10x_lib.h”这个唯一的头文件,所以需要“stm32f10x_it.h”来include“stm32f10x_lib.h”文件,而“stm32f10x_it.h”文件中如下的函数的声明:  
void NMIException(void);  
void HardFaultException(void);  
void MemManageException(void);  
。。。。。。。。  
void RTCAlarm_IRQHandler(void);  
void USBWakeUp_IRQHandler(void);  
    这里又不好理解了,我的理解是:其实这些声明是可要可不要的,这里加上这些声明是不是一方面是为了保持库代码的一致性,另一方面也是一种习惯写法,不知我的理解是否正确?请高手指正,非常感谢!  
    顺便说一下:平时上来的机会少,关于这部分的理解和解答最好能发到我的邮箱(surge_d@126.com),或者QQ(164862405,加我时请附上信息“STM32”),希望和大家共同学习探讨,谢谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-16 19:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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