Abort 발생
SPSR : 8000003F : 8000 0000 0000 0000 0000 0000 0011 1111
> 11111 (하위 5bit ) : System mode
> ISR을 실행하는 mode
> R14 를 확인해보자 (Abort의 R14는 믿을만함 )
// 넘어간 후에발생한 상황이므로
> R14 : 0x476A
clock_tick_isr() 이라는 함수에서 ABORT 발생
> clock tick interrupt 가 발생할때마다 불리는 ISR 이 아닐까?
typedef struct
{
boolean (* HWIO_OP)(void);
void (* HWIO_init)(void);
} HWIO_FunctionsType;
HWIO_FunctionsType functionsMarcel = {clock_io, clock_tick_isr};
memset ((void *)(finctiosMarcel.HWIO_init),0xABCD,10);
> system init 하는 부분에서 clock_tick_isr을 0xABAB 로 채워서 init 해버리는 이상한 bug 발견!
'임베디드 > 임베디드 레시피' 카테고리의 다른 글
watch dog Reset in ISR (0) | 2025.01.19 |
---|---|
0x0 go (0) | 2025.01.19 |
Stack corruption (0) | 2025.01.19 |
Data Abort (0) | 2025.01.18 |
Task Lock > Watch Reset, 메모리덤프 보는법 ( stm32 cubeide) (0) | 2025.01.18 |