主题中讨论的其他器件:DK-TM4C123G
工具/软件:Code Composer Studio
我面临相同的问题、当我调用代码"boot_demo"中的 UART0中断时代码不起作用、它停止工作、没有中断、代码正常工作。
调用 ROM_IntEnable (UART0_BASE)时代码出现问题;
没有调用中断代码的情况下、这是很好的。
//
//
// boot_demo1.c -第一个引导加载程序示例。
//
//版权所有(c) 2012-2017 Texas Instruments Incorporated。 保留所有权利。
//软件许可协议
//
//德州仪器(TI)仅提供和使用此软件
//专门用于 TI 的微控制器产品。 该软件归其所有
// TI 和/或其供应商、受适用版权保护
//法律。 您不能将此软件与"病毒"开源软件结合使用
//软件,以便形成一个更大的程序。
//
//此软件按“原样”提供,且存在所有故障。
//不作任何明示、暗示或法定的保证,包括但
//不限于对适销性和适用性的暗示保证
//此软件的特定用途。 TI 不得以任何方式进行
//情况,对特殊、偶然或从属事件负责
//任何原因造成的损害。
//
//这是 DK-TM4C123G 固件包的版本2.1.4.178的一部分。
//
//
#include
#include
#include "inc/hw_flash.h"
#include "inc/hw_memmap.h"
#include "inc/hw_sysctl.h"
#include "inc/hw_gpio.h"
#include "inc/hw_NVIC.h"
#include "inc/hw_types.h"
#include "driverlib/pin_map.h"
#include "driverlib/debug.h"
#include "driverlib/fpu.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
#include "driverlib/flash.h"
#include "driverlib/interrupt.h"
#include "driverlib/uart.h"
#include "driverlib/rom.h"
#include "utils/ustdlib.h"
#include "grlib/grlib.h"
#include "drivers/cfal96x64x16.h"
uint8_t ui8PinData=2;
int gtch = 0;
int getpin=0;
//
//
//! \addtogroup example_list
//!
引导加载程序演示1 (BOOT_DEMO1)
//!
//! 演示基于闪存的引导加载程序用法的示例。 在
//! 应用程序将配置 UART 和 USB 外设、
//! 然后分支到引导加载程序以等待启动
//! 更新了。 如果使用串行引导加载程序(boot_serial)、UART 将会
//! 始终配置为115、200波特、无需使用
//! 自动波特率。
//!
//! 此应用旨在与三个基于闪存的引导系统中的任何一个配合使用
//! 软件中包含的加载程序类型(boot_serial 或 boot_USB)
//! 版本。 为了适应其中最大的(BOOT_USB)、链接地址
//! 设置为0x2800。 如果您使用的是串行,则可以更改此项
//! 地址到比上次占用地址高1KB 的边界
//! 引导加载程序二进制文件的执行、只要您还重建引导
//! 在修改其 bl_config.h 文件以设置 APP_START_ADDRESS 后、加载器本身
//! 相同的值。
//!
//! boot_demo2应用程序可与此应用程序一同使用
//! 轻松演示引导加载程序实际上正在更新片上
//! 闪存。
//!
//! 请注意、TM4C123G 和其他 Blizzard 级器件也是如此
//! 支持 ROM 中的串行和 USB 引导加载程序。 来利用它
//! 链接应用程序以在闪存中的地址0x0000处运行、然后输入
//! 使用 ROM_UpdateSerial 和 ROM_UpdateUSB 函数的引导加载程序
//! (在 ROM.h 中定义)。 此机制在 utils/swupdate.c 中使用
//! 模块时、该模块专门针对合适的 Blizzard 类器件而构建。
//
//
//
//
//图形上下文用于在 CSTN 显示屏上显示文本。
//
//
tContext g_sContext;
//
//
//驱动程序库遇到错误时调用的错误例程。
//
//
#ifdef 调试
无效
_error__(char * pcFilename、uint32_t ui32Line)
{
}
#endif
//
//
//将控制权传递给引导加载程序并启动远程软件更新。
//
//此函数将控制权传递给引导加载程序并启动的更新
//通过 UART0或 USB 获取主应用固件映像,具体取决于
//基于使用的特定引导加载程序二进制文件。
//
//\return 永不返回。
//
//
无效
JumpToBootLoader (空)
{
//
//禁用所有处理器中断。 而不是禁用它们
//一次一个,直接写入 NVIC 即可禁用所有功能
//外设中断。
//
HWREG (NVIC_DIS0)= 0xffffffff;
HWREG (NVIC_DIS1)= 0xffffffff;
//
//将控制权返回给引导加载程序。 这是对 SVC 的调用
//引导加载程序中的处理程序。
//
(*(void (*)(void))(*(uint32_t *) 0x2C))();
}
//
//
//初始化 UART0并设置适当的通信参数。
//
//
无效
SetupForUART (空)
{
//
//我们需要确保 UART0及其关联的 GPIO 端口为
//在我们将控制权传递给引导加载程序之前启用。 串行引导
//加载程序不会为我们启用或配置这些外设
//通过其 SVC 矢量输入它。
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
//
//将 GPIO A0和 A1设置为 UART。
//
ROM_GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_0 | GPIO_PIN_1);
//
//将 UART 配置为115200、n、8、1
//
ROM_UARTConfigSetExpClk (UART0_BASE、SysCtlClockGet ()、115200、
(UART_CONFIG_PAR_NONE | UART_CONFIG_STOP_ONE |
UART_CONFIG_WLEN_8));
//
//启用 UART 操作。
//
ROM_UARTEnable (UART0_BASE);
ROM_UARTIntEnable (UART0_BASE、UART_INT_RX | UART_INT_RT);//仅启用 RX 和 TX 中断
ROM_IntEnable (UART0_BASE);//启用 UART 中断
ROM_IntMasterEnable();
}
//
//
//启用 USB 控制器
//
//
无效
SetupForUSB (空)
{
//
// USB 引导加载程序负责所有必需的 USB 初始化、
//如果应用本身不需要使用 USB 控制器,我们
//实际上不需要在此处启用它。 所规定的唯一要求
// USB 引导加载程序是系统时钟从 PLL 运行
//输入引导加载程序时。
//
}
//启用 LED
void Setup_LED (void)
{
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF);
GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、GPIO_PIN_1_GPIO_PIN_2|GPIO_PIN_3);
GPIOPinTypeGPIOInput (GPIO_PORTF_BASE、GPIO_PIN_4);
GPIOPadConfigSet (GPIO_PORTF_BASE、GPIO_PIN_4、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD_WPU);
}
//
//
//演示引导加载程序的使用。
//
//
内部
main (空)
{
// tRectangle sRect;
// tContext sContext;
//
//为中断处理程序启用怠惰堆栈。 这允许使用浮点
//在中断处理程序中使用的指令,但代价是
//额外的堆栈用法。
//
// ROM_FPULazyStackingEnable();
//
//将系统时钟设置为从 PLL 以50MHz 运行
//
SysCtlClockSet (SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHz |
SYSCTL_OSC_MAIN);
//
//初始化每个引导加载程序类型的外设
//支持。 因为该示例旨在与任何一起使用
//启动加载程序,我们不知道实际使用的是什么,我们涵盖了所有内容
//此处为串行和 USB 使用进行基址和初始化。
//
// SetupForUSB();
Setup_LED();
SetupForUART();
// SetupForUART();
//初始化显示驱动程序。
//
// CFAL96x64x16Init();
//
//初始化图形上下文。
//
// GrContextInit (&sContext、&g_sCFAL96x64x16);
//
//用蓝色填充屏幕顶部以创建横幅。
//
// sRect.i16XMin = 0;
// sRect.i16YMin = 0;
// sRect.i16XMax = GrContextDWidthGet (&sContext)-1;
// sRect.i16YMax = 9;
// GrContextForegroundSet (&sContext、ClrDarkBlue);
// GrRectFill (&sContext、&sRect);
//
//更改白色文本的前景。
//
// GrContextForegroundSet (&sContext、ClrWhite);
//
//将应用程序名称放在横幅中间。
//
// GrContextFontSet (&sContext、g_psFontFixed6x8);
// GrStringDrawCenter(&sContext,“boot-demo1",-1,
// GrContextDpyWidthGet (&sContext)/2、4、0);
//
//指示正在发生的情况。
//
// GrStringDrawCenter(&sContext,“引导加载程序”,-1,
// GrContextDpyWidthGet (&sContext)/2、20、false);
// GrStringDrawCenter(&sContext,“现在正在运行”,-1,
// GrContextDpyWidthGet (&sContext)/2、30、false);
// GrStringDrawCenter(&sContext,“和等待”,-1,
// GrContextDpyWidthGet (&sContext)/2、40、false);
// GrStringDrawCenter(&sContext,“更新”,-1,
// GrContextDpyWidthGet (&sContext)/2、50、false);
//
//将控制权传递给配置了电路板的引导加载程序的任何类型
//带有。
//
// JumpToBootLoader();
//
//以前的函数永远不会返回,但我们需要在返回中继续
//此处的代码可防止编译器生成警告。
//
//返回(0);
while (1)
{
getpin = GPIOPinRead (GPIO_PORTF_BASE、GPIO_PIN_4);//PA6
if (getpin<=0)
{
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_1| GPIO_PIN_2| GPIO_PIN_3、ui8PinData);
SysCtlDelay (10000000);
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3、0x00);
SysCtlDelay (10000000);
JumpToBootLoader();
if (ui8PinData=8){ui8PinData=2;}否则{ui8PinData=ui8PinData*2;}
}
其他
{
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_1| GPIO_PIN_2| GPIO_PIN_3、ui8PinData);
SysCtlDelay (1000000);
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3、0x00);
SysCtlDelay (1000000);
if (ui8PinData=8){ui8PinData=2;}否则{ui8PinData=ui8PinData*2;}
}
//JumpToBootLoader();
}
}
空 UART0IntHandler (空)
{
uint32_t ui32Status;
ui32Status = UARTIntStatus (UART0_BASE、TRUE);//获取中断状态
UARTIntClear (UART0_BASE、ui32Status);//清除已发出的中断
while (UARTCharsAvail (UART0_BASE))//循环(有字符时)
{
gtch = UARTCharGet (UART0_BASE);
if (gtch=0x48)
{
UARTCharPut (UART0_BASE、0x59);
}
}
}
boot_demo1_ccs.cmd 文件
/*********
*
* boot_dem1_ccs.cmd - boot_dem1的 CCS 链接器配置文件。
*
*版权所有(c) 2012-2017 Texas Instruments Incorporated。 保留所有权利。
*软件许可协议
*
*德州仪器(TI)提供此软件仅用于和
*专门用于 TI 的微控制器产品。 该软件归其所有
* TI 和/或其供应商、受适用版权保护
*法律。 您不能将此软件与"病毒"开源软件结合使用
*软件、以便形成更大的程序。
*
*此软件按"原样"提供、且存在所有缺陷。
*不作任何明示、默示或法定的保证、包括但
*不限于对适销性和适用性的暗示保证
*此软件有一个特殊用途。 TI 不得以任何方式进行
*情况下、应对特殊、偶然或必然的情况负责
*任何原因造成的损失。
*
*这是 DK-TM4C123G 固件包版本2.1.4.178的一部分。
*
(小部分 /
--retain=g_pfnVectors
/*以下命令行选项作为 CCS 项目的一部分进行设置。 *
/*如果您使用命令行构建,或者出于某种原因想要*/
/*在此处定义它们,您可以根据需要取消注释并修改这些行。 *
/*如果您使用 CCS 进行构建、最好进行任何这样的构建*/
/*对 CCS 项目进行修改并将此文件保留为单独文件。 *
/**//
/*--heap_size=0 */
/*--stack_size=256 */
/*--library=rtsv7M3_T_le_eabi.lib */
/*应用程序的起始地址。 通常是中断矢量*/
/*必须位于应用程序的开头。 *
//#define APP_BASE 0x00002800
#define APP_BASE 0x00002800
#define RAM_base 0x20000000
/*系统内存映射*/
存储器
{
/*存储在内部闪存中并从内部闪存执行的应用程序*/
闪存(RX):origin = app_BASE,length = 0x0003d800
/*应用程序使用内部 RAM 进行数据*/
SRAM (rwx):origin = 0x20000000,length = 0x00008000
}
/*内存中的段分配*/
部分
{
.intvecs:> app_base
.text:> FLASH
.const:> FLASH
.cinit:>闪存
.pinit:> FLASH
init_array:> FLASH
.vtable:> RAM_base
.data :> SRAM
.bss:> SRAM
.sysmem:> SRAM
.stack:> SRAM
}
__STACK_TOP =__STACK + 1024;
startup_ccs.c 文件
//
//
// startup_ccs.c -用于 TI Code Composer Studio 的启动代码。
//
//版权所有(c) 2012-2017 Texas Instruments Incorporated。 保留所有权利。
//软件许可协议
//
//德州仪器(TI)仅提供和使用此软件
//专门用于 TI 的微控制器产品。 该软件归其所有
// TI 和/或其供应商、受适用版权保护
//法律。 您不能将此软件与"病毒"开源软件结合使用
//软件,以便形成一个更大的程序。
//
//此软件按“原样”提供,且存在所有故障。
//不作任何明示、暗示或法定的保证,包括但
//不限于对适销性和适用性的暗示保证
//此软件的特定用途。 TI 不得以任何方式进行
//情况,对特殊、偶然或从属事件负责
//任何原因造成的损害。
//
//这是 DK-TM4C123G 固件包的版本2.1.4.178的一部分。
//
//
#include
#include "inc/hw_NVIC.h"
#include "inc/hw_types.h"
//
//
//转发默认故障处理程序的声明。
//
//
void ResetISR (void);
静态空 NmiSR (空);
静态空 FaultISR (空);
静态空 IntDefaultHandler (void);
//
//
//在时要调用的复位处理程序的外部声明
//处理器启动
//
//
extern void _c_int00 (void);
extern void UART0IntHandler (void);
//
//
//标记栈顶的链接器变量。
//
//
extern uint32_t __stack_top;
//extern void UART0IntHandler (void);
//
//
//矢量表。 请注意、必须将适当的构造放置在到上
//确保它在物理地址0x0000.0000或开始处结束
//程序(如果位于0以外的起始地址)。
//
//
#pragma DATA_SECTION (g_pfnVectors、".intvecs")
void (* const g_pfnVectors [])(void)=
{
(void (*)(void)((uint32_t)&_stack_top)、
//初始堆栈指针
ResetISR、//复位处理程序
NmiSR、// NMI 处理程序
FaultISR、//硬故障处理程序
IntDefaultHandler、// MPU 故障处理程序
IntDefaultHandler、//总线故障处理程序
IntDefaultHandler、//用法故障处理程序
0、//保留
0、//保留
0、//保留
0、//保留
IntDefaultHandler、// SVCall 处理程序
IntDefaultHandler、//调试监视器处理程序
0、//保留
IntDefaultHandler、// PendSV 处理程序
IntDefaultHandler、// SysTick 处理程序
IntDefaultHandler、// GPIO 端口 A
IntDefaultHandler、// GPIO 端口 B
IntDefaultHandler、// GPIO 端口 C
IntDefaultHandler、// GPIO 端口 D
IntDefaultHandler、// GPIO 端口 E
UART0IntHandler、// UART0 Rx 和 Tx
IntDefaultHandler、// UART1 Rx 和 Tx
IntDefaultHandler、// SSI0 Rx 和 Tx
IntDefaultHandler、// I2C0主设备和从设备
IntDefaultHandler、// PWM 故障
IntDefaultHandler、// PWM 发生器0
IntDefaultHandler、// PWM 发生器1.
IntDefaultHandler、// PWM 发生器2.
IntDefaultHandler、//正交编码器0
IntDefaultHandler、// ADC 序列0
IntDefaultHandler、// ADC 序列1.
IntDefaultHandler、// ADC 序列2.
IntDefaultHandler、// ADC 序列3.
IntDefaultHandler、//看门狗计时器
IntDefaultHandler、//计时器0子计时器 A
IntDefaultHandler、// Timer 0子计时器 B
IntDefaultHandler、//计时器1子计时器 A
IntDefaultHandler、//计时器1子计时器 B
IntDefaultHandler、//计时器2子计时器 A
IntDefaultHandler、//计时器2子计时器 B
IntDefaultHandler、//模拟比较器0
IntDefaultHandler、//模拟比较器1.
IntDefaultHandler、//模拟比较器2.
IntDefaultHandler、//系统控制(PLL、OSC、BO)
IntDefaultHandler、//闪存控制
IntDefaultHandler、// GPIO 端口 F
IntDefaultHandler、// GPIO 端口 G
IntDefaultHandler、// GPIO 端口 H
IntDefaultHandler、// UART2 Rx 和 Tx
IntDefaultHandler、// SSI1 Rx 和 Tx
IntDefaultHandler、//计时器3子计时器 A
IntDefaultHandler、//计时器3子计时器 B
IntDefaultHandler、// I2C1主设备和从设备
IntDefaultHandler、//正交编码器1
IntDefaultHandler、// CAN0
IntDefaultHandler、// CAN1
0、//保留
0、//保留
IntDefaultHandler、// Hibernate
IntDefaultHandler、// USB0
IntDefaultHandler、// PWM 发生器3.
IntDefaultHandler、// uDMA 软件传输
IntDefaultHandler、// uDMA 错误
IntDefaultHandler、// ADC1序列0
IntDefaultHandler、// ADC1序列1.
IntDefaultHandler、// ADC1序列2.
IntDefaultHandler、// ADC1序列3.
0、//保留
0、//保留
IntDefaultHandler、// GPIO 端口 J
IntDefaultHandler、// GPIO 端口 K
IntDefaultHandler、// GPIO 端口 L
IntDefaultHandler、// SSI2 Rx 和 Tx
IntDefaultHandler、// SSI3 Rx 和 Tx
IntDefaultHandler、// UART3 Rx 和 Tx
IntDefaultHandler、// UART4 Rx 和 Tx
IntDefaultHandler、// UART5 Rx 和 Tx
IntDefaultHandler、// UART6 Rx 和 Tx
IntDefaultHandler、// UART7 Rx 和 Tx
0、//保留
0、//保留
0、//保留
0、//保留
IntDefaultHandler、// I2C2主站和从站
IntDefaultHandler、// I2C3主设备和从设备
IntDefaultHandler、//计时器4子计时器 A
IntDefaultHandler、//计时器4子计时器 B
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
IntDefaultHandler、//计时器5子计时器 A
IntDefaultHandler、//计时器5子计时器 B
IntDefaultHandler、//宽定时器0子定时器 A
IntDefaultHandler、//宽定时器0子定时器 B
IntDefaultHandler、//宽定时器1子定时器 A
IntDefaultHandler、//宽定时器1子定时器 B
IntDefaultHandler、//宽定时器2子定时器 A
IntDefaultHandler、//宽定时器2子定时器 B
IntDefaultHandler、//宽定时器3子定时器 A
IntDefaultHandler、//宽定时器3子定时器 B
IntDefaultHandler、//宽定时器4子定时器 A
IntDefaultHandler、//宽定时器4子定时器 B
IntDefaultHandler、//宽定时器5子定时器 A
IntDefaultHandler、//宽定时器5子定时器 B
IntDefaultHandler、// FPU
0、//保留
0、//保留
IntDefaultHandler、// I2C4主设备和从属设备
IntDefaultHandler、// I2C5主设备和从设备
IntDefaultHandler、// GPIO 端口 M
IntDefaultHandler、// GPIO 端口 N
IntDefaultHandler、//正交编码器2
0、//保留
0、//保留
IntDefaultHandler、// GPIO 端口 P (摘要或 P0)
IntDefaultHandler、// GPIO 端口 P1
IntDefaultHandler、// GPIO 端口 P2
IntDefaultHandler、// GPIO 端口 P3
IntDefaultHandler、// GPIO 端口 P4
IntDefaultHandler、// GPIO 端口 P5
IntDefaultHandler、// GPIO 端口 P6
IntDefaultHandler、// GPIO 端口 P7
IntDefaultHandler、// GPIO 端口 Q (摘要或 Q0)
IntDefaultHandler、// GPIO 端口 Q1
IntDefaultHandler、// GPIO 端口 Q2
IntDefaultHandler、// GPIO 端口 Q3
IntDefaultHandler、// GPIO 端口 Q4
IntDefaultHandler、// GPIO 端口 Q5
IntDefaultHandler、// GPIO 端口 Q6
IntDefaultHandler、// GPIO 端口 Q7
IntDefaultHandler、// GPIO 端口 R
IntDefaultHandler、// GPIO 端口 S
IntDefaultHandler、// PWM 1发生器0
IntDefaultHandler、// PWM 1发生器1
IntDefaultHandler、// PWM 1发生器2
IntDefaultHandler、// PWM 1发生器3
IntDefaultHandler、// PWM 1故障
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
0、//保留
IntDefaultHandler、// I2C6主设备和从设备
IntDefaultHandler、// I2C7主站和从站
IntDefaultHandler,// HIM 扫描矩阵键盘0
IntDefaultHandler、//单线0
IntDefaultHandler、//远程温度传感器0
IntDefaultHandler、// HIM PS/2 0
IntDefaultHandler、// HIM LED 序列发生器0
IntDefaultHandler、// HIM Consumer IR 0
IntDefaultHandler、//电源稳压器总线0
(void (*)(void)) 0xFF01FF02、//头文件前缀0
(void (*)(void)) 0xFF03FF04、//头文件前缀1.
(void (*)(void)) 0xFFFFFFFF、//帧头图像 LEN
(void (*)(void)) 0xFFFFFFFF、//标头 CRC32
(void (*)(void)) 0xFFFFFFFF、//标头保留
(void (*)(void)) 0xFFFFFFFF、//标头保留
(void (*)(void)) 0xFFFFFFFF、//标头保留
(void (*)(void)) 0xFFFFFFFF //头保留
};
//
//
//这是处理器首次开始执行时调用的代码
//重置事件之后。 仅执行绝对必要的设置、
//在此之后调用应用程序提供的 entry()例程。 任何花哨的东西
//操作(例如根据复位原因寄存器做出决策)、和
//重置该寄存器中的位)只能由控制
//应用。
//
//
无效
ResetISR (空)
{
//
//跳转到 CCS C 初始化例程。 这将启用
//浮点单元,因此不需要在此处执行此操作。
//
_asm (".global _c_int00\n"
" b.w _c_int00");
}
//
//
//这是当处理器接收到 NMI 时被调用的代码。 这种情况
//只需进入无限循环,保持系统状态以供检查
//由调试器执行。
//
//
静态空
NmiSR (空)
{
//
//输入无限循环。
//
while (1)
{
}
}
//
//
//这是处理器收到故障时调用的代码
//中断。 这只是进入一个无限循环、从而保持系统状态
//供调试器检查。
//
//
静态空
FaultISR (空)
{
//
//输入无限循环。
//
while (1)
{
}
}
//
//
//这是处理器收到意外时调用的代码
//中断。 这只是进入一个无限循环、从而保持系统状态
//供调试器检查。
//
//
静态空
IntDefaultHandler (空)
{
//
//进入无限循环。
//
while (1)
{
}
}
我是否需要更改代码中的其他内容来调用中断
如何解决问题、请提供帮助。