Просмотр исходного кода

Merge branch 'master' of https://gitee.com/openLuat/LuatOS

alienwalker 3 лет назад
Родитель
Сommit
b2fb819d89

+ 11 - 7
components/ethernet/w5500/w5500.c

@@ -6,7 +6,10 @@
 #include "luat_zbuff.h"
 #include "luat_gpio.h"
 #include "w5500_def.h"
-
+#include "luat_crypto.h"
+#include "luat_mcu.h"
+#include "luat_timer.h"
+#include "luat_malloc.h"
 
 #include "luat_network_adapter.h"
 
@@ -689,6 +692,7 @@ static int32_t w5500_irq(int pin, void *args)
 	{
 		platform_send_event(w5500->task_handle, EV_W5500_LINK, 0, 0, 0);
 	}
+	return 0;
 }
 
 static void w5500_callback_to_nw_task(w5500_ctrl_t *w5500, uint32_t event_id, uint32_t param1, uint32_t param2, uint32_t param3)
@@ -718,7 +722,7 @@ static void w5500_xfer(w5500_ctrl_t *w5500, uint16_t address, uint8_t ctrl, uint
 		memcpy(w5500->tx_buf + 3, data, len);
 	}
 	luat_gpio_set(w5500->cs_pin, 0);
-	luat_spi_transfer(w5500->spi_id, w5500->tx_buf, len + 3, w5500->rx_buf, len + 3);
+	luat_spi_transfer(w5500->spi_id, (const char* )w5500->tx_buf, len + 3, (char*)w5500->rx_buf, len + 3);
 	luat_gpio_set(w5500->cs_pin, 1);
 	if (data && len)
 	{
@@ -793,8 +797,8 @@ static void w5500_socket_close(w5500_ctrl_t *w5500, uint8_t socket_id)
 
 static int w5500_socket_config(w5500_ctrl_t *w5500, uint8_t socket_id, uint8_t is_tcp, uint16_t local_port)
 {
-	uint8_t delay_cnt;
-	uint8_t temp;
+	uint8_t delay_cnt = 0;
+	uint8_t temp = 0;
 	temp = w5500_socket_state(w5500, socket_id);
 	if (!w5500->device_on) return -1;
 	if (SOCK_CLOSED != temp)
@@ -875,7 +879,7 @@ static int w5500_socket_connect(w5500_ctrl_t *w5500, uint8_t socket_id, uint8_t
 		}
 
 	}
-W5500_SOCKET_CONNECT_START:
+// W5500_SOCKET_CONNECT_START:
 	if (temp != SOCK_UDP)
 	{
 		uint8_t temp = is_listen?Sn_CR_LISTEN:Sn_CR_CONNECT;
@@ -1788,7 +1792,7 @@ static void w5500_task(void *param)
 	}
 }
 
-int w5500_set_static_ip(uint32_t ipv4, uint32_t submask, uint32_t gateway)
+void w5500_set_static_ip(uint32_t ipv4, uint32_t submask, uint32_t gateway)
 {
 	if (prv_w5500_ctrl)
 	{
@@ -1863,7 +1867,7 @@ void w5500_init(luat_spi_t* spi, uint8_t irq_pin, uint8_t rst_pin, uint8_t link_
 
 
 		char rands[4];
-		platform_random(rands, 4);
+		luat_crypto_trng(rands, 4);
 
 		for(i = 0; i < MAX_SOCK_NUM; i++)
 		{

+ 8 - 0
components/ethernet/w5500/w5500_def.h

@@ -26,4 +26,12 @@
 #define IPPROTO_ND                   77			/**< UNOFFICIAL net disk protocol */
 #define IPPROTO_RAW                  255		/**< Raw IP packet */
 
+void w5500_set_static_ip(uint32_t ipv4, uint32_t submask, uint32_t gateway);
+void w5500_set_mac(uint8_t mac[6]);
+void w5500_set_param(uint16_t timeout, uint8_t retry, uint8_t auto_speed, uint8_t force_arp);
+int w5500_reset(void);
+void w5500_init(luat_spi_t* spi, uint8_t irq_pin, uint8_t rst_pin, uint8_t link_pin);
+uint8_t w5500_device_ready(void);
+void w5500_register_adapter(int index);
+
 #endif

+ 23 - 0
components/rtos/freertos/luat_rtos_freertos_mutex.c

@@ -42,3 +42,26 @@ int luat_rtos_mutex_delete(luat_rtos_mutex_t mutex_handle)
 	return 0;
 }
 
+void *luat_mutex_create(void){
+	return xSemaphoreCreateRecursiveMutex();
+}
+
+int luat_mutex_lock(void *mutex){
+	if (!mutex) return -1;
+	if (pdFALSE == xSemaphoreTakeRecursive(mutex, portMAX_DELAY))
+		return -1;
+	return 0;
+}
+
+int luat_mutex_unlock(void *mutex){
+	if (!mutex) return -1;
+	if (pdFALSE == xSemaphoreGiveRecursive(mutex))
+		return -1;
+	return 0;
+}
+
+void luat_mutex_release(void *mutex){
+	if (!mutex) return;
+	vSemaphoreDelete(mutex);
+}
+