101 lines
2.5 KiB
C
101 lines
2.5 KiB
C
/****************************************************************************
|
|
|
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
|
|
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
|
be copied by any method or incorporated into another program without
|
|
the express written consent of Aerospace C.Power. This Information or any portion
|
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
|
liability for its use in any way and conveys no license or title under
|
|
any patent or copyright and makes no representation or warranty that this
|
|
Information is free from patent or copyright infringement.
|
|
|
|
****************************************************************************/
|
|
#include "chip_reg_base.h"
|
|
#include "hw_reg_api.h"
|
|
#include "ahb_rf.h"
|
|
#include "sram.h"
|
|
#include "irq.h"
|
|
|
|
#if HW_PLATFORM > HW_PLATFORM_SIMU
|
|
#include "dbg_io.h"
|
|
#endif
|
|
#include "iot_io.h"
|
|
|
|
#include "watchdog.h"
|
|
#include "ahb.h"
|
|
|
|
#define TEST_CPU 0
|
|
|
|
#if TEST_CPU == 0
|
|
extern iot_wdg_info g_wdg_info;
|
|
extern iot_wdg_info g_wdg_timeout;
|
|
extern int g_feed_dog;
|
|
#else
|
|
extern iot_wdg_info g_wdg_info_1;
|
|
extern iot_wdg_info g_wdg_timeout_1;
|
|
extern int g_feed_dog_1;
|
|
#endif
|
|
int cnt = 0;
|
|
|
|
void wdg_main() {
|
|
dbg_uart_init();
|
|
int i = 0;
|
|
int j =0;
|
|
int k = 0;
|
|
volatile int len = 1000000;
|
|
#if TEST_CPU == 0
|
|
uint32_t *reg = (uint32_t *) 0x4400e010;
|
|
//wdg_init(0);
|
|
#else
|
|
uint32_t *reg = (uint32_t *) 0x62010010;
|
|
//wdg_init(1);
|
|
#endif
|
|
iot_printf("aaaaaaaaa");
|
|
|
|
while(1) {
|
|
for (i=0; i<len; i++);
|
|
iot_printf("k = %d, j = %d\n", k, j);
|
|
iot_printf("intc: %08x, timeout: %08x, cpu: %08x, full: %08x\n",
|
|
*reg, *(reg+2), *(reg+4), *(reg+6));
|
|
j++;
|
|
if (j == 10000) {
|
|
j = 0;
|
|
k++;
|
|
}
|
|
|
|
if ( k == 100) {
|
|
k = 0;
|
|
}
|
|
#if TEST_CPU == 0
|
|
if(g_feed_dog == 1 && cnt < 5){
|
|
iot_printf("cnt %d, feed dog\n", cnt);
|
|
wdg_feed_dog(0);
|
|
|
|
iot_interrupt_unmask(g_wdg_info.handle);
|
|
g_feed_dog = 0;
|
|
cnt++;
|
|
}
|
|
#else
|
|
if(g_feed_dog_1 == 1 && cnt < 5){
|
|
iot_printf("cnt %d, feed dog\n", cnt);
|
|
wdg_feed_dog(1);
|
|
|
|
iot_interrupt_unmask(g_wdg_info_1.handle);
|
|
g_feed_dog_1 = 0;
|
|
cnt++;
|
|
}
|
|
|
|
#endif
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
int main(void) {
|
|
wdg_main();
|
|
return 0;
|
|
}
|
|
|