Имеется проектик типа “hello world” под Eclipce (Mars.2 Release (4.5.2)) . Используется Sourcery CodeBench Lite Edition 4.8.3 и JLinkGDBServer для cortex m3.
В течении пары дней гуглинга не удалось найти решения проблемы связанной с пошаговой отладкой Eclipse. Хотя проект загружается и даже в отладке в случае Run все хорошо, НО
При пошаговой отладке сразу же попадает в обработчик Default_Handler(или HardFault_Handler)
Код обработчика выглядит так:
Код
static void HardFault_Handler( void ) __attribute__( ( naked ) );
static void HardFault_Handler(void)
{
__asm volatile
(
" tst lr, #4 \n"
" ite eq \n"
" mrseq r0, msp \n"
" mrsne r0, psp \n"
" ldr r1, [r0, #24] \n"
" ldr r2, handler2_address_const \n"
" bx r2 \n"
" handler2_address_const: .word prvGetRegistersFromStack \n"
);
}
Команды стартапа выглядят так:static void HardFault_Handler(void)
{
__asm volatile
(
" tst lr, #4 \n"
" ite eq \n"
" mrseq r0, msp \n"
" mrsne r0, psp \n"
" ldr r1, [r0, #24] \n"
" ldr r2, handler2_address_const \n"
" bx r2 \n"
" handler2_address_const: .word prvGetRegistersFromStack \n"
);
}
Код
target remote localhost:2331
monitor speed 1000
# monitor flash device = MB9BF506N
monitor flash device = MB9BF618T
monitor flash download = 1
# Set gdb server to little endian
monitor endian little
# Set JTAG speed to 30 kHz
monitor speed 30
# Reset the chip to get to a known state.
monitor reset
monitor sleep 10
# Set JTAG speed in khz
monitor speed auto
load
monitor sleep 100
# Reset the chip to get to a known state.
monitor reset
monitor sleep 10
подскажите пожалуйста, что может вызывать этот обработчик?
monitor speed 1000
# monitor flash device = MB9BF506N
monitor flash device = MB9BF618T
monitor flash download = 1
# Set gdb server to little endian
monitor endian little
# Set JTAG speed to 30 kHz
monitor speed 30
# Reset the chip to get to a known state.
monitor reset
monitor sleep 10
# Set JTAG speed in khz
monitor speed auto
load
monitor sleep 100
# Reset the chip to get to a known state.
monitor reset
monitor sleep 10