Browse Source

Merge branch 'master' of gitee.com:openLuat/luatos-soc-air101

Wendal Chen 3 years ago
parent
commit
71245d69a6

+ 15 - 4
platform/drivers/adc/wm_adc.c

@@ -495,11 +495,22 @@ int cal_voltage(double vol)
 	}
 	else
 	{
-		return (int)((double)(vol - 46134) / (double)(32.196));
-		voltage = ((double)vol - (double)adc_offset)/4.0;
-		voltage = 1.196 + voltage*(126363/1000.0)/1000000;
+		int val = 0;
+		if (vol < 46134) {
+			val = 0;
+		}
+		else if (vol > 123405) {
+			val = 2300;
+		}
+		else {
+			val = (int)((double)(vol - 46134) / (double)(32.196));
+		}
+		return val;
+
+		// voltage = ((double)vol - (double)adc_offset)/4.0;
+		// voltage = 1.196 + voltage*(126363/1000.0)/1000000;
 		
-	    y1 = voltage*10000;
+	    // y1 = voltage*10000;
 	}
 
 	return (int)(y1/10);

+ 108 - 43
platform/sys/tls_sys.c

@@ -45,7 +45,11 @@ struct tls_sys_msg
 };
 #define SYS_TASK_STK_SIZE          384//256
 
-static tls_os_queue_t *msg_queue;
+static tls_os_queue_t *msg_queue = NULL;
+static tls_os_sem_t *sys_task_sem = NULL;
+void tls_sys_task_del(void);
+int  tls_sys_task_init(void);
+
 
 #if TLS_DBG_LEVEL_DUMP
 void TLS_DBGPRT_DUMP(char *p, u32 len)
@@ -113,6 +117,7 @@ static void sys_net_up()
 		  set wifi powersaving flag according to TLS_PARAM_ID_PSM here.*/
 		tls_param_get(TLS_PARAM_ID_PSM, &enable, TRUE); 	
 		tls_wifi_set_psflag(enable, FALSE);
+		tls_netif_set_status(1);
     }
 
     return ;
@@ -299,7 +304,10 @@ void tls_auto_reconnect(u8 delayflag)
                 }
                 else
                 {
-                    tls_wifi_connect(ssid.ssid, ssid.ssid_len, origin_key.psk, origin_key.key_length);
+					if (ssid.ssid_len && (ssid.ssid_len <= 32))
+					{
+						tls_wifi_connect(ssid.ssid, ssid.ssid_len, origin_key.psk, origin_key.key_length);
+					}
                 }
             }
             break;
@@ -348,6 +356,7 @@ static void tls_proc_rmms(struct rmms_msg *msg)
  * sys task stack
  */
 static u32 *sys_task_stk = NULL;
+tls_os_task_t sys_task_hdl = NULL;
 
 void tls_sys_task(void *data)
 {
@@ -412,6 +421,15 @@ void tls_sys_task(void *data)
         {
 
         }
+		tls_os_sem_acquire(sys_task_sem, 0);
+		if (tls_os_queue_is_empty(msg_queue))
+		{
+			tls_sys_task_del();
+		}
+		else
+		{
+			tls_os_sem_release(sys_task_sem);
+		}
     }
 }
 
@@ -419,15 +437,31 @@ void tls_sys_task(void *data)
 
 void tls_sys_send_msg(u32 msg, void *data)
 {
-    struct tls_sys_msg *pmsg;
+    struct tls_sys_msg *pmsg = NULL;
+	tls_os_status_t os_status = TLS_OS_ERROR;
 
     pmsg = tls_mem_alloc(sizeof(struct tls_sys_msg));
     if (NULL != pmsg)
     {
-        memset(pmsg, 0, sizeof(struct tls_sys_msg));
-        pmsg->msg = msg;
-        pmsg->data = data;
-        tls_os_queue_send(msg_queue, pmsg, 0);
+		tls_os_sem_acquire(sys_task_sem, 0);
+	    if (0 == tls_sys_task_init())
+	    {
+	        memset(pmsg, 0, sizeof(struct tls_sys_msg));
+	        pmsg->msg = msg;
+	        pmsg->data = data;
+	        os_status = tls_os_queue_send(msg_queue, pmsg, 0);
+			if (os_status != TLS_OS_SUCCESS)
+			{
+				tls_mem_free(pmsg);
+				pmsg = NULL;
+			}
+	    }
+		else
+		{
+			tls_mem_free(pmsg);
+			pmsg = NULL;
+		}
+		tls_os_sem_release(sys_task_sem);
     }
 
     return ;
@@ -564,45 +598,76 @@ static void sys_net_status_changed(u8 status)
 
 int tls_sys_init()
 {
-    int err;
-
-    /* create messge queue */
+	int err;
+/* create messge queue */
 #define SYS_MSG_SIZE     20
 
-    err = tls_os_queue_create(&msg_queue, SYS_MSG_SIZE);
-    if (err)
-    {
-        return  - 1;
-    }
-    sys_task_stk = (u32 *)tls_mem_alloc(SYS_TASK_STK_SIZE *sizeof(u32));
-    if (sys_task_stk)
-    {
-        /* create task */
-       err =  tls_os_task_create(NULL, "Sys Task", \
-       	    tls_sys_task, (void*)0, \
-       	    (void *)sys_task_stk,               /* task's stack start address */
-            SYS_TASK_STK_SIZE *sizeof(u32),  /* task's stack size, unit:byte */
-            TLS_SYS_TASK_PRIO, 0);
-        if (err != TLS_OS_SUCCESS)
-        {
-            tls_os_queue_delete(msg_queue);
-            msg_queue = NULL;
-            tls_mem_free(sys_task_stk);
-            sys_task_stk = NULL;
-            return -2;
-        }
-        else
-        {
-            tls_netif_add_status_event(sys_net_status_changed);
-        }
-    }
-    else
-    {
-        tls_os_queue_delete(msg_queue);
-        msg_queue = NULL;
-        return -3;
-    }
+	err = tls_os_queue_create(&msg_queue, SYS_MSG_SIZE);
+	if (err)
+	{
+		return	- 1;
+	}
+	err = tls_os_sem_create(&sys_task_sem, 1);
+	if (err)
+	{
+		tls_os_queue_delete(msg_queue);
+		return -2;
+	}
+	tls_netif_add_status_event(sys_net_status_changed);
 
     return 0;
 }
 
+static void tls_sys_task_free(void)
+{
+	if (sys_task_stk)
+	{
+		tls_mem_free(sys_task_stk);
+		sys_task_stk = NULL;
+		tls_os_sem_release(sys_task_sem);		
+	}
+}
+void tls_sys_task_del(void)
+{
+	if (sys_task_hdl)
+	{
+		tls_os_task_del_by_task_handle(sys_task_hdl,tls_sys_task_free);
+	}
+}
+
+int tls_sys_task_init(void)
+{
+	int err;
+
+	if ((sys_task_stk == NULL) && sys_task_sem && msg_queue)
+	{
+		sys_task_stk = (u32 *)tls_mem_alloc(SYS_TASK_STK_SIZE *sizeof(u32));
+		if (sys_task_stk)
+		{
+			/* create task */
+		   err =  tls_os_task_create(&sys_task_hdl, "Sys Task", \
+				tls_sys_task, (void*)0, \
+				(void *)sys_task_stk,				/* task's stack start address */
+				SYS_TASK_STK_SIZE *sizeof(u32),  /* task's stack size, unit:byte */
+				TLS_SYS_TASK_PRIO, 0);
+			if (err != TLS_OS_SUCCESS)
+			{
+				tls_mem_free(sys_task_stk);
+				sys_task_stk = NULL;
+				return -2;
+			}
+		}
+		else
+		{
+			return -3;
+		}
+
+		return 0;
+	}
+	else
+	{
+		return 0;
+	}
+
+}
+

+ 4 - 1
src/app/mbedtls/ports/hardware_alt.c

@@ -37,7 +37,10 @@ int mbedtls_hardware_poll( void *data, unsigned char *output, size_t len, size_t
     tls_crypto_random_bytes(output, len);
     tls_crypto_random_stop();
 #else
-    random_get_bytes(output, len);
+	{
+		extern int random_get_bytes(void *buf, size_t len);
+	    random_get_bytes(output, len);
+	}
 #endif
     *olen = len;
     return 0;

+ 5 - 5
src/bt/blehost/ext/tinycrypt/include/tinycrypt/aes.h

@@ -62,7 +62,7 @@ extern "C" {
 #define TC_AES_KEY_SIZE (Nb*Nk)
 
 typedef struct tc_aes_key_sched_struct {
-	unsigned int words[Nb*(Nr+1)];
+    unsigned int words[Nb * (Nr + 1)];
 } *TCAesKeySched_t;
 
 /**
@@ -90,8 +90,8 @@ int tc_aes128_set_encrypt_key(TCAesKeySched_t s, const uint8_t *k);
  *  @param in IN -- a plaintext block to encrypt
  *  @param s IN -- initialized AES key schedule
  */
-int tc_aes_encrypt(uint8_t *out, const uint8_t *in, 
-		   const TCAesKeySched_t s);
+int tc_aes_encrypt(uint8_t *out, const uint8_t *in,
+                   const TCAesKeySched_t s);
 
 /**
  *  @brief Set the AES-128 decryption key
@@ -120,8 +120,8 @@ int tc_aes128_set_decrypt_key(TCAesKeySched_t s, const uint8_t *k);
  *  @param in IN -- a plaintext block to encrypt
  *  @param s IN -- initialized AES key schedule
  */
-int tc_aes_decrypt(uint8_t *out, const uint8_t *in, 
-		   const TCAesKeySched_t s);
+int tc_aes_decrypt(uint8_t *out, const uint8_t *in,
+                   const TCAesKeySched_t s);
 
 #ifdef __cplusplus
 }

+ 4 - 4
src/bt/blehost/ext/tinycrypt/include/tinycrypt/cbc_mode.h

@@ -108,8 +108,8 @@ extern "C" {
  *  @param sched IN --  AES key schedule for this encrypt
  */
 int tc_cbc_mode_encrypt(uint8_t *out, unsigned int outlen, const uint8_t *in,
-			unsigned int inlen, const uint8_t *iv,
-			const TCAesKeySched_t sched);
+                        unsigned int inlen, const uint8_t *iv,
+                        const TCAesKeySched_t sched);
 
 /**
  * @brief CBC decryption procedure
@@ -141,8 +141,8 @@ int tc_cbc_mode_encrypt(uint8_t *out, unsigned int outlen, const uint8_t *in,
  *
  */
 int tc_cbc_mode_decrypt(uint8_t *out, unsigned int outlen, const uint8_t *in,
-			unsigned int inlen, const uint8_t *iv,
-			const TCAesKeySched_t sched);
+                        unsigned int inlen, const uint8_t *iv,
+                        const TCAesKeySched_t sched);
 
 #ifdef __cplusplus
 }

+ 10 - 10
src/bt/blehost/ext/tinycrypt/include/tinycrypt/ccm_mode.h

@@ -89,9 +89,9 @@ extern "C" {
 
 /* struct tc_ccm_mode_struct represents the state of a CCM computation */
 typedef struct tc_ccm_mode_struct {
-	TCAesKeySched_t sched; /* AES key schedule */
-	uint8_t *nonce; /* nonce required by CCM */
-	unsigned int mlen; /* mac length in bytes (parameter t in SP-800 38C) */
+    TCAesKeySched_t sched; /* AES key schedule */
+    uint8_t *nonce; /* nonce required by CCM */
+    unsigned int mlen; /* mac length in bytes (parameter t in SP-800 38C) */
 } *TCCcmMode_t;
 
 /**
@@ -109,7 +109,7 @@ typedef struct tc_ccm_mode_struct {
  * @param mlen -- mac length in bytes (parameter t in SP-800 38C)
  */
 int tc_ccm_config(TCCcmMode_t c, TCAesKeySched_t sched, uint8_t *nonce,
-		  unsigned int nlen, unsigned int mlen);
+                  unsigned int nlen, unsigned int mlen);
 
 /**
  * @brief CCM tag generation and encryption procedure
@@ -154,9 +154,9 @@ int tc_ccm_config(TCCcmMode_t c, TCAesKeySched_t sched, uint8_t *nonce,
  *          7: always 0
  */
 int tc_ccm_generation_encryption(uint8_t *out, unsigned int olen,
-			   	 const uint8_t *associated_data,
-			   	 unsigned int alen, const uint8_t *payload,
-				 unsigned int plen, TCCcmMode_t c);
+                                 const uint8_t *associated_data,
+                                 unsigned int alen, const uint8_t *payload,
+                                 unsigned int plen, TCCcmMode_t c);
 
 /**
  * @brief CCM decryption and tag verification procedure
@@ -200,9 +200,9 @@ int tc_ccm_generation_encryption(uint8_t *out, unsigned int olen,
  *          7: always 0
  */
 int tc_ccm_decryption_verification(uint8_t *out, unsigned int olen,
-				   const uint8_t *associated_data,
-				   unsigned int alen, const uint8_t *payload, unsigned int plen,
-				   TCCcmMode_t c);
+                                   const uint8_t *associated_data,
+                                   unsigned int alen, const uint8_t *payload, unsigned int plen,
+                                   TCCcmMode_t c);
 
 #ifdef __cplusplus
 }