以下以stm8s103为例介绍在ST Visual Develop和IAR环境下的中断设置;这两种只是环境不同其实中断向量是不会变的,先看一下数据手册,
再结合芯片手册中中断向量映像表,如下图所示
结合起来的话我们就能够理解的。
在用ST Visual Develop环境时新建一个新的Stm8工程它会自动生成一个main.c和一个stm8_interrupt_vector.c文件。
空白的main.c文件时如下所示的:
[cpp] view plaincopy
/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/
main()
{
while (1);
}
新的空白的stm8_interrupt_vector.c是如下面所示的:
[cpp] view plaincopy
/* BASIC INTERRUPT VECTOR TABLE FOR STM8 devices
* Copyright (c) 2007 STMicroelectronics
*/
typedef void @far (*interrupt_handler_t)(void);
struct interrupt_vector {
unsigned char interrupt_instruction;
interrupt_handler_t interrupt_handler;
};
@far @interrupt void NonHandledInterrupt (void)
{
/* in order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction
*/
return;
}
extern void _stext(); /* startup routine */
struct interrupt_vector const _vectab[] = {
{0x82, (interrupt_handler_t)_stext}, /* reset */
{0x82, NonHandledInterrupt}, /* trap */
{0x82, NonHandledInterrupt}, /* irq0 */ </