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;
 | 
						|
}
 | 
						|
 |