📄 c_int00.c
字号:
/*****************************************************************************/
/* C_INT00() - C ENVIRONMENT ENTRY POINT */
/*****************************************************************************/
extern void __interrupt c_int00()
{
/*------------------------------------------------------------------------*/
/* SET UP THE STACK POINTER IN B15. */
/* THE STACK POINTER POINTS 1 WORD PAST THE TOP OF THE STACK, SO SUBTRACT */
/* 1 WORD FROM THE SIZE. */
/*------------------------------------------------------------------------*/
__asm(" mvkl __stack,SP");
__asm(" mvkh __stack,SP");
__asm(" mvkl __STACK_SIZE - 4,B0");
__asm(" mvkh __STACK_SIZE - 4,B0");
__asm(" add B0,SP,SP");
/*------------------------------------------------------------------------*/
/* THE SP MUST BE ALIGNED ON AN 8-BYTE BOUNDARY. */
/*------------------------------------------------------------------------*/
__asm(" and ~7,SP,SP");
/*------------------------------------------------------------------------*/
/* SET UP THE GLOBAL PAGE POINTER IN B14. */
/*------------------------------------------------------------------------*/
__asm(" .global $bss");
__asm(" mvkl $bss,DP");
__asm(" mvkh $bss,DP");
/*------------------------------------------------------------------------*/
/* SET UP FLOATING POINT REGISTERS FOR C70 ONLY */
/*------------------------------------------------------------------------*/
#ifdef _TMS320C6700
__asm(" mvk 0,B3"); /* round to nearest */
__asm(" mvc B3,FADCR");
__asm(" mvc B3,FMCR");
#endif
/*------------------------------------------------------------------------*/
/* GET THE POINTER TO THE AUTOINITIALIZATION TABLES INTO THE FIRST */
/* ARGUMENT REGISTER (A4) */
/*------------------------------------------------------------------------*/
__asm(" .global cinit");
__asm(" mvkl cinit,A4");
__asm(" mvkh cinit,A4");
/*------------------------------------------------------------------------*/
/* PASS THE CURRENT DP TO THE AUTOINITIALIZATION ROUTINE. */
/*------------------------------------------------------------------------*/
__asm(" mv DP,B4");
/*------------------------------------------------------------------------*/
/* CALL THE AUTOINITIALIZATION ROUTINE. */
/*------------------------------------------------------------------------*/
__asm(" .global __auto_init");
__asm(" mvkl $aiRL,B3");
__asm(" mvkh $aiRL,B3");
__asm(" mvkl __auto_init, B0");
__asm(" mvkh __auto_init, B0");
__asm(" b B0"); /* far call */
__asm(" NOP 5");
__asm("$aiRL:");
/*------------------------------------------------------------------------*/
/* CALL THE USER'S PROGRAM. */
/*------------------------------------------------------------------------*/
main();
/*------------------------------------------------------------------------*/
/* CALL EXIT. */
/*------------------------------------------------------------------------*/
exit(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -