GR-MANGO sample using mbed-os library from my repository.

Dependencies:   mbed-http

Revision:
0:b4c1e32627f2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sample_programs/sample_21_deep_standby_alarm.cpp	Mon Oct 12 02:25:49 2020 +0000
@@ -0,0 +1,85 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+*
+* Copyright (C) 2019 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+#include "sample_select.h"
+
+#if (SAMPLE_PROGRAM_NO == 21)
+// SAMPLE_PROGRAM_NO 21 : Deep standby and RTC alarm sample
+//
+// Wake up from deep standby every 5 seconds using RTC alarm interrupt.
+// It also wakes up when BUTTON1(SW2) is pressed.
+
+#include "mbed.h"
+#include "AlarmTimer.h"
+#include "DeepStandby.h"
+
+// On-Chip Data Retention RAM
+#if defined ( __CC_ARM ) || (defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
+#define DATA_RETENTION_RAM ".bss.NoInit"
+#else
+#define DATA_RETENTION_RAM "NV_DATA"
+#endif
+static int wake_up_cnt __attribute((section(DATA_RETENTION_RAM)));
+
+int main() {
+    time_t seconds;
+    DeepStandby::cancel_src_simple_t cancel_src;
+
+    if (DeepStandby::GetCancelSourceSimple(&cancel_src) == false) {
+        // Reset start
+        printf("Reset start\r\n");
+        // initialization of On-Chip Data Retention RAM
+        wake_up_cnt = 0;
+    } else {
+        // Deep standby cancel
+        wake_up_cnt++;
+        printf("Deep standby cancel %d :", wake_up_cnt);
+        if (cancel_src.button0) {  // Works with RZ_A2M_EVB and SEMB1402.
+            printf(" BUTTON0");
+        }
+        if (cancel_src.button1) {  // Works with RZ_A2M_EVB and RZ_A2M_SBEV.
+            printf(" BUTTON1");
+        }
+        if (cancel_src.rtc) {      // Works with RZ_A1H, RZ_A2M_EVB, RZ_A2M_SBEV and SEMB1402.
+            printf(" RTC");
+        }
+        printf("\r\n");
+    }
+
+    // RTC time
+    seconds = time(NULL);
+    struct tm *t = localtime(&seconds);
+    printf("RTC time : %02d/%02d/%04d %02d:%02d:%02d\r\n\r\n",
+           t->tm_mon + 1, t->tm_mday, t->tm_year + 1900, t->tm_hour, t->tm_min, t->tm_sec);
+
+    // Set alarm interrupt
+    AlarmTimer::set(seconds + 5);  // 5 seconds later
+
+    // Set deep standby mode
+    cancel_src.button0 = false;    // Works with RZ_A2M_EVB and SEMB1402. (Used with custom boot loader)
+    cancel_src.button1 = true;     // Works with RZ_A2M_EVB and RZ_A2M_SBEV.
+    cancel_src.rtc     = true;     // Works with RZ_A1H, RZ_A2M_EVB, RZ_A2M_SBEV and SEMB1402.
+    DeepStandby::SetDeepStandbySimple(&cancel_src);
+}
+
+#endif