添加一些关于midi播放的项目
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* @brief provide interrupt vector table for NV32Fxxx.
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
#include "vectors.h"
|
||||
#include "isr.h"
|
||||
#include "common.h"
|
||||
|
||||
/******************************************************************************
|
||||
* Vector Table
|
||||
******************************************************************************/
|
||||
typedef void (*vector_entry)(void);
|
||||
|
||||
#ifdef KEIL
|
||||
const vector_entry __vector_table[] __attribute__((at(0x00))) =
|
||||
#elif (defined(__GNUC__))
|
||||
//void (* const __vector_table[])() __attribute__ ((section(".vectortable"))) =
|
||||
void (* const InterruptVector[])() __attribute__ ((section(".isr_vector"))) =
|
||||
#else
|
||||
#pragma location = ".intvec"
|
||||
const vector_entry __vector_table[] = //@ ".intvec" =
|
||||
#endif
|
||||
{
|
||||
VECTOR_000, /* Initial SP */
|
||||
VECTOR_001, /* Initial PC */
|
||||
VECTOR_002,
|
||||
VECTOR_003,
|
||||
VECTOR_004,
|
||||
VECTOR_005,
|
||||
VECTOR_006,
|
||||
VECTOR_007,
|
||||
VECTOR_008,
|
||||
VECTOR_009,
|
||||
VECTOR_010,
|
||||
VECTOR_011,
|
||||
VECTOR_012,
|
||||
VECTOR_013,
|
||||
VECTOR_014,
|
||||
VECTOR_015,
|
||||
VECTOR_016,
|
||||
VECTOR_017,
|
||||
VECTOR_018,
|
||||
VECTOR_019,
|
||||
VECTOR_020,
|
||||
VECTOR_021,
|
||||
VECTOR_022,
|
||||
VECTOR_023,
|
||||
VECTOR_024,
|
||||
VECTOR_025,
|
||||
VECTOR_026,
|
||||
VECTOR_027,
|
||||
VECTOR_028,
|
||||
VECTOR_029,
|
||||
VECTOR_030,
|
||||
VECTOR_031,
|
||||
VECTOR_032,
|
||||
VECTOR_033,
|
||||
VECTOR_034,
|
||||
VECTOR_035,
|
||||
VECTOR_036,
|
||||
VECTOR_037,
|
||||
VECTOR_038,
|
||||
VECTOR_039,
|
||||
VECTOR_040,
|
||||
VECTOR_041,
|
||||
VECTOR_042,
|
||||
VECTOR_043,
|
||||
VECTOR_044,
|
||||
VECTOR_045,
|
||||
VECTOR_046,
|
||||
VECTOR_047 // END of real vector table
|
||||
};
|
||||
// VECTOR_TABLE end
|
||||
#ifndef KEIL
|
||||
#ifndef USE_BOOTLOADER
|
||||
#ifdef KEIL
|
||||
const uint32_t __flash_config[] __attribute__((at(0x400))) =
|
||||
#elif (defined(__GNUC__))
|
||||
const uint32_t __flash_config[] __attribute__ ((section(".nv32_flash_config_field"))) =
|
||||
#else
|
||||
#pragma location = 0x400
|
||||
__root const uint32_t __flash_config[] = //@ ".intvec" =
|
||||
#endif
|
||||
{
|
||||
CONFIG_1,
|
||||
CONFIG_2,
|
||||
CONFIG_3,
|
||||
CONFIG_4,
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
/******************************************************************************
|
||||
* default_isr(void)
|
||||
*
|
||||
* Default ISR definition.
|
||||
*
|
||||
* In: n/a
|
||||
* Out: n/a
|
||||
******************************************************************************/
|
||||
void default_isr(void)
|
||||
{
|
||||
#define VECTORNUM (*(volatile uint32_t*)(0xE000ED04))
|
||||
|
||||
printf("\n****default_isr entered on vector %lu*****\r\n\n",VECTORNUM);
|
||||
return;
|
||||
}
|
||||
/******************************************************************************/
|
||||
/* Generic interrupt handler for a GPIO interrupt connected to an
|
||||
* abort switch.
|
||||
* NOTE: For true abort operation this handler should be modified
|
||||
* to jump to the main process instead of executing a return.
|
||||
*/
|
||||
void abort_isr(void)
|
||||
{
|
||||
//printf("\n****Abort button interrupt****\n\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* Exception frame without floating-point storage
|
||||
* hard fault handler in C,
|
||||
* with stack frame location as input parameter
|
||||
*/
|
||||
void
|
||||
hard_fault_handler_c(unsigned int * hardfault_args)
|
||||
{
|
||||
/*
|
||||
unsigned int stacked_r0;
|
||||
unsigned int stacked_r1;
|
||||
unsigned int stacked_r2;
|
||||
unsigned int stacked_r3;
|
||||
unsigned int stacked_r12;
|
||||
unsigned int stacked_lr;
|
||||
unsigned int stacked_pc;
|
||||
unsigned int stacked_psr;
|
||||
|
||||
//Exception stack frame
|
||||
stacked_r0 = ((unsigned long) hardfault_args[0]);
|
||||
stacked_r1 = ((unsigned long) hardfault_args[1]);
|
||||
stacked_r2 = ((unsigned long) hardfault_args[2]);
|
||||
stacked_r3 = ((unsigned long) hardfault_args[3]);
|
||||
|
||||
stacked_r12 = ((unsigned long) hardfault_args[4]);
|
||||
stacked_lr = ((unsigned long) hardfault_args[5]);
|
||||
stacked_pc = ((unsigned long) hardfault_args[6]);
|
||||
stacked_psr = ((unsigned long) hardfault_args[7]);
|
||||
|
||||
printf ("[Hard fault handler]\n");
|
||||
printf ("R0 = %x\n", stacked_r0);
|
||||
printf ("R1 = %x\n", stacked_r1);
|
||||
printf ("R2 = %x\n", stacked_r2);
|
||||
printf ("R3 = %x\n", stacked_r3);
|
||||
printf ("R12 = %x\n", stacked_r12);
|
||||
printf ("LR = %x\n", stacked_lr);
|
||||
printf ("PC = %x\n", stacked_pc);
|
||||
printf ("PSR = %x\n", stacked_psr);
|
||||
printf ("BFAR = %x\n", (*((volatile unsigned long *)(0xE000ED38))));
|
||||
printf ("CFSR = %x\n", (*((volatile unsigned long *)(0xE000ED28))));
|
||||
printf ("HFSR = %x\n", (*((volatile unsigned long *)(0xE000ED2C))));
|
||||
printf ("DFSR = %x\n", (*((volatile unsigned long *)(0xE000ED30))));
|
||||
printf ("AFSR = %x\n", (*((volatile unsigned long *)(0xE000ED3C))));
|
||||
*/
|
||||
//for(;;)
|
||||
//;/*infinite loop*/
|
||||
}
|
||||
|
||||
|
||||
/* End of "vectors.c" */
|
||||
Reference in New Issue
Block a user