请问STM32F10x.S和stm32f10x_vector.S的区别

hhhhh88   2008-4-7 13:48 楼主
请问STM32F10x.S和stm32f10x_vector.S的异同点?

如题.

为什么有的例程中用STM32F10x.S作启动代码,而有的却用stm32f10x_vector.S做启动代码呢?

回复评论 (8)

先顶一下

                                 这两个文件好像都是用来设置CP,SP和向量表的,只是觉得不用中断的时候就用STM32F10x.S作启动;当用到中断时,要用stm32f10x_vector.S作启动代码.
点赞  2008-4-7 13:54

错,

首先,在主函数里设置中断,如下。
void NVIC_Setting(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  /* Enable the TIM1 Interrupt */  
  NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}
然后
void TIM1_UP_IRQHandler(void) __irq
{
//你的代码。
}

就可以了。
 
点赞  2008-4-7 19:40

还没整到这地方

                                  
点赞  2008-4-7 20:42

楼主用的是什么工具?你什么时候要使用这个文件?

                                 看到过stm32f10x_vector.s,但没看到过stm32f10x.s。
点赞  2008-4-8 08:32

我用的工具是RealView MDK

我用的工具是RealView MDK.
每次创建一个工程项目时,系统提示:"是否加载启动代码?"
选择"是",则在工程下的文件组中自动添加了stm32f10x.s文件.

在应用的过程中,觉得不用中断的时候就用STM32F10x.S作启动;当用到中断时,要用stm32f10x_vector.S作启动代码.因为先前我自己编写和调试的一些程序,仅仅用到了RCC,GPIO,用STM32F10x.S做启动代码,可以正常编译运行.后来程序中用到了NVIC,EXTI,SysTick关于中断的外设,用STM32F10x.S就不行了,无法编译.我试着用了stm32f10x_vector.S做启动代码,结果正常编译运行.
我大致看了这两个文件,好像都是用来设置CP,SP和向量表的.有很多相似之处.

关于3楼的回答,我没看懂??!
关于版主主的提问,我做了如上解释.估计大家用的工具多是IAR的EWARM吧.
点赞  2008-4-8 09:26

你那个是RVMDK自动生成的启动代码,创建的时候不要用它,用固件库中的
点赞  2010-5-30 21:42
一直在用stm32f10x_vector.s,在安装keil是确实会生成stm32f10x.s
但是一直都没有使用,以前比较过两个文件的差异
只是都是汇编,没怎么看明白
也搭个顺风车,看看高手的解答,谢谢咯
点赞  2010-5-30 22:41
学习了。
那以后就直接用stm32f10x_vector.s。
这文件一般情况,不需要做更改了吧。
点赞  2010-5-31 14:04
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复