示例#1
0
void setup() {
    pinMode(BOARD_BUTTON_PIN, INPUT);

    comm.begin(9600);
    comm.println("*** Beginning BKP test");

    comm.println("Init...");
    bkp_init();
    comm.println("Done.");

    print_bkp_contents();
    write_to_bkp(10);
    print_bkp_contents();

    comm.println("Enabling backup writes.");
    bkp_enable_writes();
    write_to_bkp(20);
    print_bkp_contents();

    comm.println("Disabling backup writes.");
    bkp_disable_writes();
    write_to_bkp(30);
    print_bkp_contents();

    comm.println("Done testing backup registers; press button to enable "
                    "independent watchdog (in order to cause a reset).");
    waitForButtonPress(0);
    iwdg_init(IWDG_PRE_4, 1);
    comm.println();
}
示例#2
0
/**
 * This function will initial STM32 board.
 */
void rt_hw_board_init()
{
	RCC_Configuration();
	GPIO_Configuration();
	exti_config(); /* mark by David */
	Exti_Pvd_Init();
	NVIC_Configuration();

	/* Configure the SysTick */
	SysTick_Config( SystemCoreClock / RT_TICK_PER_SECOND );

#if STM32_EXT_SRAM
	EXT_SRAM_Configuration();
#endif

	rt_hw_usart_init();
	rt_console_set_device(CONSOLE_DEVICE);

	spi_config();

#if 1==USE_TO_7INCH_LCD
	FSMC_LCD_Init();
#elif 1==STM32_USE_FSMC_NOR_MUX
	//sys_fsmc_nor_mux_config();
#elif 1==STM32_USE_FSMC_NOR_MUX2LCD
	lcd_fsmc_nor_mux_config();
#endif

#if USE_STM32_IWDG
	iwdg_init();
#endif
//	led_on(LED_PORTX, LED3_PIN);
}
示例#3
0
void watchdog_init(uint8_t v, WDT_TIME sec){

	if (v == true){
		switch (sec){
			case WDT_10_SEC:
				iwdg_init(IWDG_PRE_128, 0x0C35);
				break;
			case WDT_16_SEC:
				iwdg_init(IWDG_PRE_256, 0x9C4);
				break;
			case WDT_20_SEC:
				iwdg_init(IWDG_PRE_256, 0xFA);
				break;
			case WDT_24_SEC:
				iwdg_init(IWDG_PRE_256, 0xEA6);
				break;
		}
	}
}
示例#4
0
/***********************************************************
*   函数说明:系统初始化函数                               *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:Device_Init() Driver_Init()                  *
***********************************************************/
void System_Init(void)
{
	Driver_Init();  /* 先初始化串口缓冲区, mark by David */
	Device_Init();

#if USE_STM32_IWDG
	iwdg_init();
#endif
	//*在这里插入你的系统环境变量初始化代码*//

	//LED_WORK = LED_FLASH_SLOW;
}
示例#5
0
/**
 * This function will initial STM32 board.
 */
void rt_hw_board_init()
{
	RCC_Configuration();
	GPIO_Configuration();

#if STM32_EXT_SRAM
	EXT_SRAM_Configuration();
#endif
	NVIC_Configuration();

	/* Configure the SysTick */
	SysTick_Config( SystemCoreClock / RT_TICK_PER_SECOND );

	/* rand */
#if ENABLE_RAND
	ADC_Configration();
	ADC_Channel_Config();
#endif


	rt_hw_usart_init();
	rt_console_set_device(CONSOLE_DEVICE);

	board_debug(("func:%s(), line:%d\n", __FUNCTION__, __LINE__));

	exti_config(); /* mark by David */

	spi_config();

	board_debug(("func:%s(), line:%d\n", __FUNCTION__, __LINE__));

#if RT_USING_ADE7880
#if ADE7880_USE_SPI
	ade7880_spi_cfg();
#else       
	ade7880_i2c_cfg();    
	start_7880_i2c();    
	
	ade7880_spi_withdma_hsdccfg();
	dma_configuration_spi1_rx();
#endif  
#endif
	board_debug(("func:%s(), line:%d\n", __FUNCTION__, __LINE__));

#if USE_STM32_IWDG
	iwdg_init();
#endif
	board_debug(("func:%s(), line:%d\n", __FUNCTION__, __LINE__));


	return;
}
示例#6
0
/***********************************************************
*   函数说明:系统初始化函数                               *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:Device_Init() Driver_Init()                  *
***********************************************************/
void System_Init(void)
{
	Driver_Init();

	stm32f10x_it_init();

	Device_Init();
#if USE_STM32_IWDG
	iwdg_init();
#endif

	//*在这里插入你的系统环境变量初始化代码*//
	//LED_WORK = LED_FLASH_SLOW;
}
示例#7
0
static void ifaceSetupHook(unsigned hook __attribute__((unused)), void *requestvp) {
    uint8 request = *(uint8*)requestvp;

    // Ignore requests we're not interested in.
    if (request != USB_CDCACM_SET_CONTROL_LINE_STATE) {
        return;
    }

#ifdef SERIAL_USB 
    // We need to see a negative edge on DTR before we start looking
    // for the in-band magic reset byte sequence.
    uint8 dtr = usb_cdcacm_get_dtr();
    switch (reset_state) {
    case DTR_UNSET:
        reset_state = dtr ? DTR_HIGH : DTR_LOW;
        break;
    case DTR_HIGH:
        reset_state = dtr ? DTR_HIGH : DTR_NEGEDGE;
        break;
    case DTR_NEGEDGE:
        reset_state = dtr ? DTR_HIGH : DTR_LOW;
        break;
    case DTR_LOW:
        reset_state = dtr ? DTR_HIGH : DTR_LOW;
        break;
    }
#endif

#if defined(BOOTLOADER_robotis)
    uint8 dtr = usb_cdcacm_get_dtr();
    uint8 rts = usb_cdcacm_get_rts();

    if (rts && !dtr) {
        reset_state = DTR_NEGEDGE;
    }
#endif

	if ((usb_cdcacm_get_baud() == 1200) && (reset_state == DTR_NEGEDGE)) {
		iwdg_init(IWDG_PRE_4, 10);
		while (1);
	}
}
示例#8
0
void setup() {

    int logNo;
	char configLineBuffer[LINE_BUFFER_MAX];
    spi.begin(SPI_281_250KHZ, MSBFIRST, 0);
	
	pinMode(GRN_LED,OUTPUT);
	pinMode(ORN_LED,OUTPUT);
	pinMode(RED_LED,OUTPUT);
	digitalWrite(GRN_LED,HIGH);
	digitalWrite(ORN_LED,LOW);
	digitalWrite(RED_LED,LOW);

    iwdg_init(IWDG_PRE_256, WATCHDOG_TIMEOUT);
    Watchdog_Reset();

	
    if (!card.init(&spi)) { 
    //if (!card.init()) { 
        console.printf("FTL: card.init failed");
    }
    delay(100);
    
    // initialize a FAT volume
    if (!volume.init(&card)) {
        console.printf("FTL: volume.init failed");
    }
    
    // open the root directory
    if (!root.openRoot(&volume)) 
        ;//SerialUSB.println("FTL: openRoot failed");
    
    for (logNo=0; (!logOpened) && logNo<512; logNo++) {
        Watchdog_Reset();
       //int snprintf(char *str, size_t size, const char *format, ...);
        snprintf(logFileName,15,"LOG%03d.TXT",logNo);
        if (file.open(&root, logFileName, O_READ)) {
            //SerialUSB.print("DBG: Exists  :"); SerialUSB.println(logFileName);
            file.close();
        } else if (file.open(&root, logFileName, O_CREAT|O_READ|O_WRITE)) {
            //SerialUSB.print("DBG: New File:"); SerialUSB.println(logFileName); 
            logOpened=true;
            file.sync();
            file.close();
            file.open(&root,logFileName,O_WRITE|O_READ);
			while (file.read(configLineBuffer,LINE_BUFFER_MAX)) {
				
			}
            file.sync();
        }    
    }
    //if (!logOpened) SerialUSB.println("FTL: openRoot failed");

	digitalWrite(GRN_LED,LOW);
	digitalWrite(RED_LED,HIGH);
    readSettings();
	console.printf("LSV:" BOM_VERSION "\r\n");
    console.printf("NST: %s\r\n",networkStatus()?"CONNECTED":"NOT CONNECTED");
	digitalWrite(ORN_LED,HIGH);
	digitalWrite(RED_LED,networkStatus()?HIGH:LOW);
	
}