编译环境:KEIL MDK5,运行在TM4C123GXL,系统运行大约一至两秒之后,就会跑飞,使用Debug后发现一只停在startup.S的B SysTick_Handler,
程序如下
#include "inc/hw_memmap.h"
#include "inc/hw_gpio.h"
#include "inc/hw_sysctl.h"
//#include "inc/tm4c123gh6pm.h"
#include "inc/hw_ints.h"
#include "inc/hw_nvic.h"
#include "inc/hw_types.h"
#include "inc/hw_ints.h"
#include "driverlib/debug.h"
#include "driverlib/systick.h"
#include "driverlib/interrupt.h"
#include "driverlib/rom_map.h"
#include "driverlib/rom.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_1 |SYSCTL_USE_OSC|
SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ);
ROM_FPUEnable();
ROM_FPULazyStackingEnable();
ROM_SysTickPeriodSet(ROM_SysCtlClockGet());
ROM_SysTickEnable();
IntEnable(0x0f);
SysTickIntEnable();
IntMasterEnable();
}
extern void SysTick_Handler(void)
{
sysTickUptime++;
scheduler_cnt_1ms++;
scheduler_cnt_2ms++;
scheduler_cnt_5ms++;
scheduler_cnt_10ms++;
scheduler_cnt_20ms++;
// UARTprintf("int……………..\n");
}
启动代码使用的是startup_TM4C123.S
SysTick_Handler\
PROC
EXPORT SysTick_Handler [WEAK]
B . (程序运行后停留在这里)
ENDP
Xiaozhou Ye:
启动文件更换为startup_rvmdk.s
在EXOPRT之前声明了外部函数EXTERN SysTick_Handler
在向量表中改为 DCD SysTick_Handler ; The SysTick handler
但是却报错为.\Output\Copter_4x.axf: Error: L6218E: Undefined symbol SysTick_Handler (referred from startup_rvmdk.o).
仍未解决
xyz549040622:
回复 Xiaozhou Ye:
居然用的是c++,好高大上。
TI中文支持网
