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(); }
/** * 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); }
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; } } }
/*********************************************************** * 函数说明:系统初始化函数 * * 输入: 无 * * 输出: 无 * * 调用函数: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; }
/** * 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; }
/*********************************************************** * 函数说明:系统初始化函数 * * 输入: 无 * * 输出: 无 * * 调用函数: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; }
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); } }
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); }