초보의 아웅다웅 설계하기/Adstar

WatchDog Clear 문제

로망와니 2015. 6. 29. 23:46

WatchDog Clear을 Main()에 넣었을 경우 아래의 에러가 발생하고

Timer에 넣으면 에러가 발생하지 않네요.


======== unrecoverable error ==========
Coprocessor 0

======== DUMP ALL REGISTER ========
interrupt.c:89,R0 = 0x00000111 interrupt.c:89,R1 = 0x00000000 interrupt.c:89,R2 = 0x00000000 interrupt.c:89,R3 = 0x00000000
interrupt.c:89,R4 = 0x00000000 interrupt.c:89,R5 = 0x00000000 interrupt.c:89,R6 = 0x20ffffe8 interrupt.c:89,R7 = 0x20fffc90
interrupt.c:89,R8 = 0x00000031 interrupt.c:89,R9 = 0xffff0000 interrupt.c:89,R10 = 0x00000000 interrupt.c:89,R11 = 0x00000000
interrupt.c:89,R12 = 0x00000000 interrupt.c:89,R13 = 0x00000000 interrupt.c:89,R14 = 0x00000000 interrupt.c:89,R15 = 0x00000000
interrupt.c:98,CR0 = 0x00000000 interrupt.c:98,CR1 = 0x00000000 interrupt.c:98,ML = 0x00000000 interrupt.c:98,MH = 0x00000100
interrupt.c:98,ER = 0x00000000 interrupt.c:98,LR = 0x000003b2 interrupt.c:98,PC = 0x68f9e005 interrupt.c:98,SR = 0x431010a0
===================================
=======================================

 

void WDG_Init(void)
{
// About 1000ms @ APB 54MHz
// WDTCNT = ( Set_time(s) * APB Clk(Hz) )
*R_WDTCNT = 0x337F980;//54000000//1s
*R_WDTCTRL = F_WDTCTRL_WDTMOD_RST | F_WDTCTRL_WDTEN_ENABLE;
}

 

void WDG_Clr(void)
{
*R_WDTCNT = 0x337F980;//54000000//1s
}

main()

{

WDG_Init();

while(1)
{
WDG_Clr();
}

}

 

개인적으로는 ADSTAR의 LCD 인터페이스를 제외하고는 정말 사용하기 안 좋은 칩이라고 생각합니다.

CORTEX-M3와 SSD1963을 사용하여 800*600에 이미지를 뿌렸을 때에 비해서 정말 신세계라고 생각할 정도로 좋은 칩이라 생각했지만 이런 저런 BUG들이 많고 사용하는 사람들이 많지 않아 해결부분이 많이 나와있지 않다는게 큰 단점입니다.

거기다 J-TAG의 병진같은 라이팅 실력은 개발자에게 암울이라는 단어만을 생각나게 합니다.

하지만 LCD 인터페이스에서의 가성비는 최강인듯 싶습니다.

 

그래도 AMAZON-2의 사용은... 아닌 듯 싶습니다. 무척이나 암울한 버그들 천국

노답입니다. AMAZON-2를 갈바에야 비글본을 공부해서 비글본으로 올라가거나 저가가 필요하면 ROCK 칩이나 텔레칩스로 가는게 더 나을 것 같습니다.