Compare commits
3 Commits
db714471b8
...
V2.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
| 58361589d8 | |||
| 0681b8bbe4 | |||
| 3cb49fc4f8 |
+16
-7
@@ -19,6 +19,13 @@
|
|||||||
- 配置口:`USART1`
|
- 配置口:`USART1`
|
||||||
- 数据口:`USART2`、`USART3`
|
- 数据口:`USART2`、`USART3`
|
||||||
|
|
||||||
|
### 2.1 固件版本线
|
||||||
|
|
||||||
|
- FreeRTOS + lwIP 版本线从 `V2.0.0` 开始。
|
||||||
|
- 裸机版本线从 `V1.0.0` 开始。
|
||||||
|
- 当前 FreeRTOS 固件基线 release:`TCP2UART RTOS V2.0.0`。
|
||||||
|
- 固件下载:`https://git.furtherverse.com/gaoro-xiao/TCP2UART/releases/tag/V2.0.0`
|
||||||
|
|
||||||
职责划分:
|
职责划分:
|
||||||
|
|
||||||
- `USART1`:AT 配置口
|
- `USART1`:AT 配置口
|
||||||
@@ -92,7 +99,7 @@ SYNC | LEN_H | LEN_L | SRCID | DSTMASK | PAYLOAD | TAIL
|
|||||||
```text
|
```text
|
||||||
AT\r\n
|
AT\r\n
|
||||||
AT+MUX?\r\n
|
AT+MUX?\r\n
|
||||||
AT+NET=192.168.1.100,255.255.255.0,192.168.1.1,02:00:00:00:00:01\r\n
|
AT+NET=192.168.31.100,255.255.255.0,192.168.31.1,00:00:00:00:00:00\r\n
|
||||||
```
|
```
|
||||||
|
|
||||||
### 6.2 持久化规则
|
### 6.2 持久化规则
|
||||||
@@ -121,9 +128,11 @@ MUX = 0
|
|||||||
### 7.2 NET 默认值
|
### 7.2 NET 默认值
|
||||||
|
|
||||||
```text
|
```text
|
||||||
NET = 192.168.1.100,255.255.255.0,192.168.1.1,02:00:00:00:00:01
|
NET = 192.168.31.100,255.255.255.0,192.168.31.1,00:00:00:00:00:00
|
||||||
```
|
```
|
||||||
|
|
||||||
|
默认 MAC 为全 0,表示 Flash 中不固化板卡 MAC;运行时使用 `CH390D` 内部 MAC。`AT+?` 与 `AT+NET?` 回显的是当前生效 MAC。
|
||||||
|
|
||||||
### 7.3 LINK 默认值
|
### 7.3 LINK 默认值
|
||||||
|
|
||||||
```text
|
```text
|
||||||
@@ -171,7 +180,7 @@ AT+QUERY\r\n
|
|||||||
推荐返回格式:
|
推荐返回格式:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
+NET:IP=192.168.1.100,MASK=255.255.255.0,GW=192.168.1.1,MAC=02:00:00:00:00:01
|
+NET:IP=192.168.31.100,MASK=255.255.255.0,GW=192.168.31.1,MAC=<当前生效MAC>
|
||||||
+LINK:S1,EN=1,LPORT=8080,RIP=0.0.0.0,RPORT=0,UART=U0
|
+LINK:S1,EN=1,LPORT=8080,RIP=0.0.0.0,RPORT=0,UART=U0
|
||||||
+LINK:S2,EN=0,LPORT=8081,RIP=0.0.0.0,RPORT=0,UART=U1
|
+LINK:S2,EN=0,LPORT=8081,RIP=0.0.0.0,RPORT=0,UART=U1
|
||||||
+LINK:C1,EN=1,LPORT=9001,RIP=192.168.1.200,RPORT=9000,UART=U1
|
+LINK:C1,EN=1,LPORT=9001,RIP=192.168.1.200,RPORT=9000,UART=U1
|
||||||
@@ -213,7 +222,7 @@ OK
|
|||||||
#### 设置 NET
|
#### 设置 NET
|
||||||
|
|
||||||
```text
|
```text
|
||||||
AT+NET=192.168.1.100,255.255.255.0,192.168.1.1,02:00:00:00:00:01\r\n
|
AT+NET=192.168.31.100,255.255.255.0,192.168.31.1,00:00:00:00:00:00\r\n
|
||||||
```
|
```
|
||||||
|
|
||||||
字段顺序:
|
字段顺序:
|
||||||
@@ -231,13 +240,13 @@ AT+NET?\r\n
|
|||||||
返回示例:
|
返回示例:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
+NET:IP=192.168.1.100,MASK=255.255.255.0,GW=192.168.1.1,MAC=02:00:00:00:00:01
|
+NET:IP=192.168.31.100,MASK=255.255.255.0,GW=192.168.31.1,MAC=<当前生效MAC>
|
||||||
OK
|
OK
|
||||||
```
|
```
|
||||||
|
|
||||||
**MAC 设置说明:**
|
**MAC 设置说明:**
|
||||||
|
|
||||||
当MAC设置为全0时,固件将使用硬件MAC地址,此时通过AT+?查询到的MAC地址即为当前生效的硬件MAC地址。
|
当 MAC 设置为全 0 时,固件将使用 `CH390D` 内部 MAC 地址。此时 Flash 内仍保存全 0,不会把内部 MAC 写回 Flash;`AT+?` 和 `AT+NET?` 查询到的 MAC 地址为当前运行时生效的硬件 MAC 地址。
|
||||||
|
|
||||||
### 8.5 LINK 类命令
|
### 8.5 LINK 类命令
|
||||||
|
|
||||||
@@ -357,7 +366,7 @@ OK: Defaults restored
|
|||||||
## 11. 推荐配置流程
|
## 11. 推荐配置流程
|
||||||
|
|
||||||
```text
|
```text
|
||||||
AT+NET=192.168.1.123,255.255.255.0,192.168.1.1,02:00:00:00:00:01\r\n
|
AT+NET=192.168.31.123,255.255.255.0,192.168.31.1,00:00:00:00:00:00\r\n
|
||||||
AT+LINK=S1,1,10001,0.0.0.0,0,U1\r\n
|
AT+LINK=S1,1,10001,0.0.0.0,0,U1\r\n
|
||||||
AT+LINK=S2,1,10003,0.0.0.0,0,U1\r\n
|
AT+LINK=S2,1,10003,0.0.0.0,0,U1\r\n
|
||||||
AT+LINK=C1,1,20001,192.168.1.201,10002,U0\r\n
|
AT+LINK=C1,1,20001,192.168.1.201,10002,U0\r\n
|
||||||
|
|||||||
+2
-1
@@ -15,6 +15,7 @@
|
|||||||
#include "route_msg.h"
|
#include "route_msg.h"
|
||||||
|
|
||||||
#define TCP_CLIENT_CONNECT_TIMEOUT_MS 500
|
#define TCP_CLIENT_CONNECT_TIMEOUT_MS 500
|
||||||
|
#define TCP_CLIENT_RECONNECT_INTERVAL_MS 3000u
|
||||||
#define TCP_CLIENT_STOP_POLL_MS 50u
|
#define TCP_CLIENT_STOP_POLL_MS 50u
|
||||||
|
|
||||||
static BaseType_t tcp_client_stop_requested(void)
|
static BaseType_t tcp_client_stop_requested(void)
|
||||||
@@ -162,7 +163,7 @@ static void tcp_client_task(uint8_t link_index)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
delay_ms = (cfg->reconnect_interval_ms == 0u) ? 3000u : cfg->reconnect_interval_ms;
|
delay_ms = TCP_CLIENT_RECONNECT_INTERVAL_MS;
|
||||||
|
|
||||||
if (first_connect_deferred != 0u) {
|
if (first_connect_deferred != 0u) {
|
||||||
first_connect_deferred = 0u;
|
first_connect_deferred = 0u;
|
||||||
|
|||||||
+8
-2
@@ -76,9 +76,15 @@ void MX_GPIO_Init(void)
|
|||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|
||||||
/* EXTI interrupt init*/
|
/* EXTI interrupt init
|
||||||
|
* Keep CH390 INT masked during early boot. PB0 may already be asserted at
|
||||||
|
* power-on, while the FreeRTOS semaphore is not created until
|
||||||
|
* MX_FREERTOS_Init(). The network driver enables EXTI0 after CH390 and the
|
||||||
|
* RTOS objects are ready.
|
||||||
|
*/
|
||||||
|
HAL_NVIC_DisableIRQ(EXTI0_IRQn);
|
||||||
|
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_0);
|
||||||
HAL_NVIC_SetPriority(EXTI0_IRQn, 6, 0);
|
HAL_NVIC_SetPriority(EXTI0_IRQn, 6, 0);
|
||||||
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#include "stm32f1xx_it.h"
|
#include "stm32f1xx_it.h"
|
||||||
|
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
|
#include "semphr.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
|
||||||
#include "app_runtime.h"
|
#include "app_runtime.h"
|
||||||
@@ -101,8 +102,11 @@ void EXTI0_IRQHandler(void)
|
|||||||
|
|
||||||
if (__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_0) != RESET) {
|
if (__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_0) != RESET) {
|
||||||
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_0);
|
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_0);
|
||||||
xSemaphoreGiveFromISR(xNetSemaphore, &xHigherPriorityTaskWoken);
|
if ((xNetSemaphore != NULL) &&
|
||||||
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
|
(xTaskGetSchedulerState() == taskSCHEDULER_RUNNING)) {
|
||||||
|
xSemaphoreGiveFromISR(xNetSemaphore, &xHigherPriorityTaskWoken);
|
||||||
|
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -188,6 +188,8 @@ void ch390_interrupt_init(void)
|
|||||||
/* EXTI0 is configured in CubeMX for PB0 */
|
/* EXTI0 is configured in CubeMX for PB0 */
|
||||||
/* NVIC priority should be >= configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY */
|
/* NVIC priority should be >= configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY */
|
||||||
/* for FreeRTOS compatibility */
|
/* for FreeRTOS compatibility */
|
||||||
|
HAL_NVIC_DisableIRQ(EXTI0_IRQn);
|
||||||
|
__HAL_GPIO_EXTI_CLEAR_IT(CH390_INT_PIN);
|
||||||
HAL_NVIC_SetPriority(EXTI0_IRQn, 6, 0);
|
HAL_NVIC_SetPriority(EXTI0_IRQn, 6, 0);
|
||||||
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
|
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,15 +26,19 @@
|
|||||||
|
|
||||||
1. 当前 Keil 工程目标仍是 `STM32F103RC`
|
1. 当前 Keil 工程目标仍是 `STM32F103RC`
|
||||||
2. 当前代码可以真实构建通过
|
2. 当前代码可以真实构建通过
|
||||||
3. 当前构建真值应查看:
|
3. 当前 FreeRTOS + lwIP 固件版本线从 `V2.0.0` 开始,裸机固件版本线从 `V1.0.0` 开始
|
||||||
|
4. 当前 RTOS 基线 release:`https://git.furtherverse.com/gaoro-xiao/TCP2UART/releases/tag/V2.0.0`
|
||||||
|
5. Release 附件:
|
||||||
|
- `TCP2UART-RTOS-V2.0.0.hex`
|
||||||
|
- `TCP2UART-RTOS-V2.0.0.elf`
|
||||||
|
6. 当前构建真值应查看:
|
||||||
- `MDK-ARM/build_capture.txt`
|
- `MDK-ARM/build_capture.txt`
|
||||||
- `MDK-ARM/TCP2UART/TCP2UART.build_log.htm`
|
- `MDK-ARM/TCP2UART/TCP2UART.build_log.htm`
|
||||||
- `MDK-ARM/TCP2UART/TCP2UART.map`
|
- `MDK-ARM/TCP2UART/TCP2UART.map`
|
||||||
4. 最近一次 Keil 构建示例:
|
7. `V2.0.0` release 构建验证:
|
||||||
- `Code=84560`
|
- `"TCP2UART\TCP2UART.axf" - 0 Error(s), 0 Warning(s).`
|
||||||
- `RW-data=432`
|
- `TCP2UART-RTOS-V2.0.0.hex` 用于烧录
|
||||||
- `ZI-data=47056`
|
- `TCP2UART-RTOS-V2.0.0.elf` 用于符号/调试
|
||||||
- `0 Error(s), 0 Warning(s)`
|
|
||||||
|
|
||||||
### 3.2 当前调试结论摘要
|
### 3.2 当前调试结论摘要
|
||||||
|
|
||||||
|
|||||||
@@ -94,6 +94,11 @@
|
|||||||
2. 启动文件:`startup_stm32f103xe.s`
|
2. 启动文件:`startup_stm32f103xe.s`
|
||||||
3. 目标器件:`STM32F103RC`
|
3. 目标器件:`STM32F103RC`
|
||||||
4. 预处理器宏:`USE_HAL_DRIVER, STM32F103xE`
|
4. 预处理器宏:`USE_HAL_DRIVER, STM32F103xE`
|
||||||
|
5. FreeRTOS + lwIP 固件版本线从 `V2.0.0` 开始;裸机固件版本线从 `V1.0.0` 开始。
|
||||||
|
6. 当前 RTOS release:`https://git.furtherverse.com/gaoro-xiao/TCP2UART/releases/tag/V2.0.0`
|
||||||
|
7. Release 附件命名:
|
||||||
|
- `TCP2UART-RTOS-V2.0.0.hex`
|
||||||
|
- `TCP2UART-RTOS-V2.0.0.elf`
|
||||||
|
|
||||||
### 4.3 常用调试工具
|
### 4.3 常用调试工具
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user