Revision fc7151bb Target/Modules/PowerManagement_1-1/Boot/main.c
Target/Modules/PowerManagement_1-1/Boot/main.c | ||
---|---|---|
88 | 88 |
|
89 | 89 |
const blCallbackTable_t cbtable __attribute__ ((section ("_callback_table"))) = { |
90 | 90 |
.magicNumber = BL_MAGIC_NUMBER, |
91 |
.vBootloader = {BL_VERSION_ID_AMiRoBLT_Beta, BL_VERSION_MAJOR, BL_VERSION_MINOR, 0},
|
|
91 |
.vBootloader = {BL_VERSION_ID_AMiRoBLT_Beta, BL_VERSION_MAJOR, BL_VERSION_MINOR, 3},
|
|
92 | 92 |
.vSSSP = {BL_VERSION_ID_SSSP, BL_SSSP_VERSION_MAJOR, BL_SSSP_VERSION_MINOR, 0}, |
93 | 93 |
.vCompiler = {BL_VERSION_ID_GCC, __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__}, // currently only GCC is supported |
94 | 94 |
.cbShutdownHibernate = blCallbackShutdownHibernate, |
... | ... | |
309 | 309 |
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; |
310 | 310 |
GPIO_Init(GPIOA, &GPIO_InitStructure); |
311 | 311 |
#endif |
312 |
|
|
313 | 312 |
} /*** end of Init ***/ |
314 | 313 |
|
315 | 314 |
/* |
... | ... | |
545 | 544 |
} /*** end of shutdownToTransportation ***/ |
546 | 545 |
|
547 | 546 |
/* |
548 |
* Final shutdown of the system to enter deepseleep mode.
|
|
547 |
* Final shutdown of the system to enter deepsleep mode. |
|
549 | 548 |
*/ |
550 | 549 |
void shutdownToDeepsleep() { |
551 | 550 |
/* configure some criticpal GPIOs as input |
... | ... | |
604 | 603 |
PWR_BackupAccessCmd(ENABLE); |
605 | 604 |
RTC_WriteBackupRegister(BL_RTC_BACKUP_REG, backup.raw); |
606 | 605 |
|
607 |
/* morse 'OK' via the LED to signal that shutodnw was successful */
|
|
606 |
/* morse 'OK' via the LED to signal that shutdown was successful */
|
|
608 | 607 |
blinkOK(1); |
609 | 608 |
|
610 | 609 |
/* reset the MCU */ |
... | ... | |
633 | 632 |
PWR_BackupAccessCmd(ENABLE); |
634 | 633 |
RTC_WriteBackupRegister(BL_RTC_BACKUP_REG, backup.raw); |
635 | 634 |
|
636 |
/* morse 'OK' via the LED to signal that shutodnw was successful */
|
|
635 |
/* morse 'OK' via the LED to signal that shutdown was successful */
|
|
637 | 636 |
blinkOK(1); |
638 | 637 |
|
639 | 638 |
/* reset the MCU */ |
... | ... | |
648 | 647 |
*/ |
649 | 648 |
void configGpioForShutdown() { |
650 | 649 |
/* setup the configuration */ |
651 |
GPIO_InitTypeDef gpio_init;
|
|
650 |
GPIO_InitTypeDef gpio_init; |
|
652 | 651 |
gpio_init.GPIO_Mode = GPIO_Mode_IN; |
653 | 652 |
gpio_init.GPIO_Speed = GPIO_Speed_50MHz; |
654 | 653 |
gpio_init.GPIO_OType = GPIO_OType_PP; |
... | ... | |
1297 | 1296 |
shutdownToTransportation(); |
1298 | 1297 |
|
1299 | 1298 |
return; |
1300 |
} /*** end of bLCallbackTransportation ***/
|
|
1299 |
} /*** end of blCallbackTransportation ***/
|
|
1301 | 1300 |
|
1302 | 1301 |
/* |
1303 | 1302 |
* Callback function that handles the system shutdown and enters deepsleep mode. |
... | ... | |
1338 | 1337 |
shutdownToDeepsleep(); |
1339 | 1338 |
|
1340 | 1339 |
return; |
1341 |
} /*** end of bLCallbackDeepsleep ***/
|
|
1340 |
} /*** end of blCallbackDeepsleep ***/
|
|
1342 | 1341 |
|
1343 | 1342 |
/* |
1344 | 1343 |
* Callback function that handles the system shutdown and enters hibernate mode. |
... | ... | |
1378 | 1377 |
shutdownToHibernate(); |
1379 | 1378 |
|
1380 | 1379 |
return; |
1381 |
} /*** end of bLCallbackShutdownHibernate ***/
|
|
1380 |
} /*** end of blCallbackShutdownHibernate ***/
|
|
1382 | 1381 |
|
1383 | 1382 |
/* |
1384 | 1383 |
* Callback function that handles the system shutdown and initializes a restart. |
... | ... | |
1390 | 1389 |
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD, ENABLE); |
1391 | 1390 |
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); |
1392 | 1391 |
|
1393 |
/* set/keep the SYS_SYNC and SYS_PD signal active */ |
|
1392 |
/* set/keep the SYS_SYNC and SYS_PD signals active */
|
|
1394 | 1393 |
GPIO_ResetBits(SYS_SYNC_N_GPIO, SYS_SYNC_N_PIN); |
1395 | 1394 |
GPIO_ResetBits(SYS_PD_N_GPIO, SYS_PD_N_PIN); |
1396 | 1395 |
|
... | ... | |
1423 | 1422 |
shutdownAndRestart(); |
1424 | 1423 |
|
1425 | 1424 |
return; |
1426 |
} /*** end of bLCallbackRestart ***/ |
|
1427 |
|
|
1425 |
} /*** end of blCallbackRestart ***/ |
|
1428 | 1426 |
|
1429 | 1427 |
/* |
1430 | 1428 |
* Callback function that handles a system shutdown/restart request from another module. |
... | ... | |
1436 | 1434 |
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD, ENABLE); |
1437 | 1435 |
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); |
1438 | 1436 |
|
1439 |
/* set/keep the SYS_SYNC and SYS_PD signal active */ |
|
1437 |
/* set/keep the SYS_SYNC and SYS_PD signals active */
|
|
1440 | 1438 |
GPIO_ResetBits(SYS_SYNC_N_GPIO, SYS_SYNC_N_PIN); |
1441 | 1439 |
GPIO_ResetBits(SYS_PD_N_GPIO, SYS_PD_N_PIN); |
1442 | 1440 |
|
... | ... | |
1453 | 1451 |
/* wait for all boards to be ready for shutdown */ |
1454 | 1452 |
GPIO_SetBits(SYS_SYNC_N_GPIO, SYS_SYNC_N_PIN); |
1455 | 1453 |
if (GPIO_ReadOutputDataBit(SYS_REG_EN_GPIO, SYS_REG_EN_PIN) == Bit_SET) { |
1456 |
// this must skipped if the pullup voltage (VIO3.3) is not active |
|
1454 |
// this must be skipped if the pullup voltage (VIO3.3) is not active
|
|
1457 | 1455 |
setLed(BLT_TRUE); |
1458 | 1456 |
waitForSignal(SYS_SYNC_N_GPIO, SYS_SYNC_N_PIN, Bit_SET); |
1459 | 1457 |
setLed(BLT_FALSE); |
... | ... | |
1510 | 1508 |
return; |
1511 | 1509 |
} /*** end of blCallbackHandleShutdownRequest ***/ |
1512 | 1510 |
|
1513 |
|
|
1514 | 1511 |
/*********************************** end of main.c *************************************/ |
Also available in: Unified diff