⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vectormap.c

📁 牛人张明峰写的bootloader。很有参考价值。和很多freescale的例子不太一样
💻 C
字号:
//=============================================================================
// All the code below are provided for demo purpose only.
// It'll be on your own risk if you like to adopt all or parts of the code into
// your own application.
//
// This module does the redirection of all vectors.
// The order and code lines MUST keep the exactly the same as the file in boot-
// loader project.
// User are requested to update the destination address for those utilized interrupts
// and keep the rest as default trap.
//
// Please do not change the order of each function entry, nor delete/insert
// any code lines while making changes on redirected destination addresses.
//
// Designed by Paul Zhang (paul.zhang@freescale.com)
// May 10, 2008 
//=============================================================================

#include "derivative.h"   // include peripheral declarations

asm void _startup(void); // Convetional startup routine, defined in "startcf.c"
void App_TPM1Overflow_ISR(void);
void App_SCI1Rx_ISR(void);

void IllegalTrap(void);

//=============================================================================
// All interrupt vector numbers are predefined via "derivative.h"
//=============================================================================

#pragma CODE_SEG __FAR_SEG text_vectormap

//=============================================================================
// Entry of normal code follow
//=============================================================================
void StartupEntry(void)
{
   asm (jmp _startup);
}

//=============================================================================
// Following are redirections for all available interrupt vectors
//=============================================================================

void interrupt VectorNumber_Vaccerr      ISR_Vaccerr(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vadderr      ISR_Vadderr(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Viinstr      ISR_Viinstr(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vdivz        ISR_Vdivz(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved6   ISR_VReserved6(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved7   ISR_VReserved7(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vprviol      ISR_Vprviol(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrace       ISR_Vtrace(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vunilaop     ISR_Vunilaop(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vunilfop     ISR_Vunilfop(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vdbgi        ISR_Vdbgi(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved13  ISR_VReserved13(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vferror      ISR_Vferror(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved15  ISR_VReserved15(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved16  ISR_VReserved16(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved17  ISR_VReserved17(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved18  ISR_VReserved18(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved19  ISR_VReserved19(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved20  ISR_VReserved20(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved21  ISR_VReserved21(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved22  ISR_VReserved22(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved23  ISR_VReserved23(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vspuri       ISR_Vspuri(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved25  ISR_VReserved25(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved26  ISR_VReserved26(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved27  ISR_VReserved27(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved28  ISR_VReserved28(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved29  ISR_VReserved29(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved30  ISR_VReserved30(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved31  ISR_VReserved31(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap0       ISR_Vtrap0(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap1       ISR_Vtrap1(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap2       ISR_Vtrap2(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap3       ISR_Vtrap3(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap4       ISR_Vtrap4(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap5       ISR_Vtrap5(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap6       ISR_Vtrap6(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap7       ISR_Vtrap7(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap8       ISR_Vtrap8(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap9       ISR_Vtrap9(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap10      ISR_Vtrap10(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap11      ISR_Vtrap11(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap12      ISR_Vtrap12(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap13      ISR_Vtrap13(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap14      ISR_Vtrap14(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtrap15      ISR_Vtrap15(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved48  ISR_VReserved48(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved49  ISR_VReserved49(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved50  ISR_VReserved50(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved51  ISR_VReserved51(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved52  ISR_VReserved52(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved53  ISR_VReserved53(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved54  ISR_VReserved54(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved55  ISR_VReserved55(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved56  ISR_VReserved56(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved57  ISR_VReserved57(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved58  ISR_VReserved58(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved59  ISR_VReserved59(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved60  ISR_VReserved60(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved61  ISR_VReserved61(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved62  ISR_VReserved62(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved63  ISR_VReserved63(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Virq         ISR_Virq(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vlvd         ISR_Vlvd(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm1ch0     ISR_Vtpm1ch0(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm1ch1     ISR_Vtpm1ch1(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm1ch2     ISR_Vtpm1ch2(void)
{
   asm (jmp IllegalTrap);
}
   
//*********************************************************
// *** TPM1 overflow interrupt is utilized
//*********************************************************
void interrupt VectorNumber_Vtpm1ovf     ISR_Vtpm1ovf(void)
{
   //asm (jmp IllegalTrap);
   asm (jmp App_TPM1Overflow_ISR);
}
   
void interrupt VectorNumber_Vtpm2ch0     ISR_Vtpm2ch0(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm2ch1     ISR_Vtpm2ch1(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm2ch2     ISR_Vtpm2ch2(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm2ovf     ISR_Vtpm2ovf(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vspi2        ISR_Vspi2(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vspi1        ISR_Vspi1(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vsci1err     ISR_Vsci1err(void)
{
   asm (jmp IllegalTrap);
}
   
//*********************************************************
// *** SCI1 RX interrupt is utilized
//*********************************************************
void interrupt VectorNumber_Vsci1rx      ISR_Vsci1rx(void)
{
   //asm (jmp IllegalTrap);
   asm (jmp App_SCI1Rx_ISR);
}
   
void interrupt VectorNumber_Vsci1tx      ISR_Vsci1tx(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Viicx        ISR_Viicx(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vkeyboard    ISR_Vkeyboard(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vadc         ISR_Vadc(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vacmpx       ISR_Vacmpx(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vsci2err     ISR_Vsci2err(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vsci2rx      ISR_Vsci2rx(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vsci2tx      ISR_Vsci2tx(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vrtc         ISR_Vrtc(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm3ch0     ISR_Vtpm3ch0(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm3ch1     ISR_Vtpm3ch1(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm3ch2     ISR_Vtpm3ch2(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm3ch3     ISR_Vtpm3ch3(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm3ch4     ISR_Vtpm3ch4(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm3ch5     ISR_Vtpm3ch5(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_Vtpm3ovf     ISR_Vtpm3ovf(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved94  ISR_VReserved94(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VReserved95  ISR_VReserved95(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VL7swi       ISR_VL7swi(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VL6swi       ISR_VL6swi(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VL5swi       ISR_VL5swi(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VL4swi       ISR_VL4swi(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VL3swi       ISR_VL3swi(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VL2swi       ISR_VL2swi(void)
{
   asm (jmp IllegalTrap);
}
   
void interrupt VectorNumber_VL1swi       ISR_VL1swi(void)
{
   asm (jmp IllegalTrap);
}
   
//=============================================================================
// Setup a trap for unexpected interrupt request
//=============================================================================
void IllegalTrap(void)
{
   while(1){
      ;
   }
}   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -