From 4697714fdcac6e1fff100b4bc54ff463e3e5994c Mon Sep 17 00:00:00 2001
From: isiora <none@example.com>
Date: Wed, 24 Jan 2018 20:51:18 +0000
Subject: Stack resize.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11404 35acf78f-673a-0410-8e92-d51de3d6d3f4
---
 demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/Makefile |  6 ++--
 demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/main.c   | 35 ++++++++++--------------
 2 files changed, 17 insertions(+), 24 deletions(-)

diff --git a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/Makefile b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/Makefile
index 7d9752479..570dfbd1f 100755
--- a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/Makefile
+++ b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/Makefile
@@ -60,19 +60,19 @@ endif
 # Stack size to be allocated to the ARM System/User stack. This
 # stack is the stack used by the main() thread.
 ifeq ($(USE_SYSTEM_STACKSIZE),)
-  USE_SYSTEM_STACKSIZE = 0x400
+  USE_SYSTEM_STACKSIZE = 0x800
 endif
 
 # Stack size to the allocated to the ARM IRQ stack. This
 # stack is used for processing interrupts and exceptions.
 ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
-  USE_IRQ_STACKSIZE = 0x400
+  USE_IRQ_STACKSIZE = 0x800
 endif
 
 # Stack size to the allocated to the ARM FIQ stack. This
 # stack is used for processing interrupts and exceptions.
 ifeq ($(USE_FIQ_STACKSIZE),)
-  USE_FIQ_STACKSIZE = 0x400
+  USE_FIQ_STACKSIZE = 0x800
 endif
 
 # Stack size to the allocated to the ARM Supervisor stack. This
diff --git a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/main.c b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/main.c
index 4815ba90c..25218594f 100755
--- a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/main.c
+++ b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-SEC/main.c
@@ -21,7 +21,6 @@
 #include "chprintf.h"
 #include "chsmc.h"
 
-static thread_reference_t main_t;
 /*
  * LED blinker thread, times are in milliseconds.
  */
@@ -57,17 +56,18 @@ static const SerialConfig sdcfg = {
  *  Dummy trust service thread.
  */
 static THD_WORKING_AREA(waDummyTrustedService, 512);
-static THD_FUNCTION(DummyTrustedService, eventMask) {
+static THD_FUNCTION(DummyTrustedService, arg) {
+  (void) arg;
 
-  msg_t m;
+  msg_t msg;
   smc_service_t *svcp;
   chRegSetThreadName("DTS");
 
   /*
    * Register the trust service
    */
-  registered_object_t *smc_hdl = smcRegisterMeAsService("DummyTrustedService");
-  if (smc_hdl == NULL) {
+  svcp = smcRegisterMeAsService("DummyTrustedService");
+  if (svcp == NULL) {
     /*
      * Error: the service is already registered
      * or memory is exhausted.
@@ -77,23 +77,18 @@ static THD_FUNCTION(DummyTrustedService, eventMask) {
   /*
    * Wait and process requests
    */
-  svcp = (smc_service_t *)smc_hdl->objp;
-  svcp->svct = NULL;
   while (true) {
-    chSysLock();
-    chEvtSignalI(main_t, (eventmask_t) eventMask);
-    m = smcServiceWaitRequestS(svcp);
-    chSysUnlock();
-    if (m == MSG_OK && svcp->svc_datalen > 0) {
+    msg = smcServiceWaitRequest(svcp, MSG_OK);
+    if (msg == MSG_OK && svcp->svc_datalen > 0) {
       *((char *)svcp->svc_data + svcp->svc_datalen - 1) = '\0';
-#if 0
+#if 1
       chprintf((BaseSequentialStream*)&SD1,
           "My non secure 'alter ego' has a request.\r\n");
       chprintf((BaseSequentialStream*)&SD1,
           "She tells: '");
 #endif
       chprintf((BaseSequentialStream*)&SD1, (char *)svcp->svc_data);
-      chprintf((BaseSequentialStream*)&SD1, "\r\n");
+      chprintf((BaseSequentialStream*)&SD1, "'\r\n");
     }
     chThdSleepMilliseconds(500);
   }
@@ -104,8 +99,7 @@ static THD_FUNCTION(DummyTrustedService, eventMask) {
  */
 int main(void) {
 
-  eventmask_t eventMask = 1;
-  eventmask_t eventMaskAll = 0;
+  uint32_t n;
 
   /*
    * System initializations.
@@ -119,7 +113,6 @@ int main(void) {
   chSysInit();
   smcInit();
 
-  main_t = chThdGetSelfX();
   /*
    * Activates the serial driver 0 using the driver default configuration.
    */
@@ -135,10 +128,10 @@ int main(void) {
   /*
    * Creates the dummy service thread.
    */
+  n = 0;
   chThdCreateStatic(waDummyTrustedService, sizeof(waDummyTrustedService), NORMALPRIO-32,
-      DummyTrustedService, (void *)eventMask);
-  eventMaskAll |= eventMask;
-  eventMask <<= 1;
+      DummyTrustedService, (void *)n);
+  ++n;
 
   /*
    * The DDR memory is divided in 4 regions. Each region is 2MB large.
@@ -186,7 +179,7 @@ int main(void) {
   /*
    * Wait that all services are initialized
    */
-  chEvtWaitAll(eventMaskAll);
+  smcWaitServicesStarted(n);
   /*
    * Jump in the NON SECURE world
    * This 'main' thread become the non secure environment as view by
-- 
cgit v1.2.3