CH395F 硬件测试完毕
This commit is contained in:
@@ -1222,10 +1222,11 @@ uint16_t ch395f_get_recv_len(uint8_t sock) {
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:获取全局中断状态(2字节版,支持Socket 0~7)
|
||||
* 函数功能:获取并清除全局中断状态(2字节版,支持Socket 0~7)
|
||||
* 返回值:中断状态 uint16_t(低字节 = Socket 0~3 + PHY/DHCP,
|
||||
* 高字节 = Socket 4~7 + DHCPv6)
|
||||
* 限定条件:芯片已初始化
|
||||
* 注意事项:读取后就自动清除全局中断状态了
|
||||
*/
|
||||
uint16_t ch395f_get_glob_int_status_all(void) {
|
||||
uint16_t status;
|
||||
@@ -1240,9 +1241,10 @@ uint16_t ch395f_get_glob_int_status_all(void) {
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:获取Socket中断状态
|
||||
* 函数功能:获取并清除 Socket 中断状态
|
||||
* 入口参数:sock - Socket索引 uint8_t 0 - 7
|
||||
* 返回值:Socket中断状态字节 uint8_t
|
||||
* 注意事项:读取后就自动清除 Socket 中断
|
||||
* 限定条件:芯片已初始化
|
||||
*/
|
||||
uint8_t ch395f_get_sock_int_status(uint8_t sock) {
|
||||
|
||||
@@ -195,16 +195,16 @@ int net_poll(void) {
|
||||
|
||||
/* 诊断:每 3 秒打印一次全局中断状态和 Socket 状态。
|
||||
* 注意:使用已读取的 int_status,不要再读 GINT(读即清除)。 */
|
||||
static uint32_t s_last_diag = 0;
|
||||
uint32_t now_diag = HAL_GetTick();
|
||||
if ((now_diag - s_last_diag >= 3000) || s_last_diag == 0) {
|
||||
s_last_diag = now_diag;
|
||||
DBG_INFO("GINT=0x%04X", int_status);
|
||||
for (int di = 0; di < NET_MAX_SOCKETS; di++) {
|
||||
DBG_INFO(" s%d: in_use=%d state=%d",
|
||||
di, s_net_socks[di].in_use, s_net_socks[di].state);
|
||||
}
|
||||
}
|
||||
// static uint32_t s_last_diag = 0;
|
||||
// uint32_t now_diag = HAL_GetTick();
|
||||
// if ((now_diag - s_last_diag >= 3000) || s_last_diag == 0) {
|
||||
// s_last_diag = now_diag;
|
||||
// DBG_INFO("GINT=0x%04X", int_status);
|
||||
// for (int di = 0; di < NET_MAX_SOCKETS; di++) {
|
||||
// DBG_INFO(" s%d: in_use=%d state=%d",
|
||||
// di, s_net_socks[di].in_use, s_net_socks[di].state);
|
||||
// }
|
||||
// }
|
||||
|
||||
if (int_status & CH395F_GINT_STAT_PHY_CHANGE) {
|
||||
uint8_t phy = ch395f_get_phy_status();
|
||||
@@ -225,7 +225,7 @@ int net_poll(void) {
|
||||
|
||||
/* 读取 Socket 中断状<E696AD>?*/
|
||||
uint8_t sock_int = ch395f_get_sock_int_status(i);
|
||||
DBG_INFO("s%d int=0x%02X", i, sock_int);
|
||||
//DBG_INFO("s%d int=0x%02X", i, sock_int);
|
||||
|
||||
/* 连接事件 */
|
||||
if (sock_int & CH395F_SINT_STAT_CONNECT) {
|
||||
@@ -270,24 +270,24 @@ int net_poll(void) {
|
||||
* 因此每次 net_poll() 调用只处理一批中断,由主循环负责读取数据。 */
|
||||
} while (0);
|
||||
|
||||
/* 2 秒打印一次诊断信息(调试用) */
|
||||
{
|
||||
static uint32_t s_last_dbg = 0;
|
||||
uint32_t now = HAL_GetTick();
|
||||
if (now - s_last_dbg >= 2000) {
|
||||
s_last_dbg = now;
|
||||
uint8_t int_level = (HAL_GPIO_ReadPin(CH395_INT_GPIO_Port, CH395_INT_Pin) == GPIO_PIN_RESET) ? 1 : 0;
|
||||
DBG_DEBUG("INT#=%d", int_level);
|
||||
for (i = 0; i < NET_MAX_SOCKETS; i++) {
|
||||
if (s_net_socks[i].in_use) {
|
||||
uint8_t st[2];
|
||||
ch395f_get_socket_status((uint8_t)i, st);
|
||||
uint16_t rl = ch395f_get_recv_len((uint8_t)i);
|
||||
DBG_DEBUG(" s%d:sw%d/tcp%d rl%d", i, st[0], st[1], rl);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// /* 2 秒打印一次诊断信息(调试用) */
|
||||
// {
|
||||
// static uint32_t s_last_dbg = 0;
|
||||
// uint32_t now = HAL_GetTick();
|
||||
// if (now - s_last_dbg >= 2000) {
|
||||
// s_last_dbg = now;
|
||||
// uint8_t int_level = (HAL_GPIO_ReadPin(CH395_INT_GPIO_Port, CH395_INT_Pin) == GPIO_PIN_RESET) ? 1 : 0;
|
||||
// DBG_DEBUG("INT#=%d", int_level);
|
||||
// for (i = 0; i < NET_MAX_SOCKETS; i++) {
|
||||
// if (s_net_socks[i].in_use) {
|
||||
// uint8_t st[2];
|
||||
// ch395f_get_socket_status((uint8_t)i, st);
|
||||
// uint16_t rl = ch395f_get_recv_len((uint8_t)i);
|
||||
// DBG_DEBUG(" s%d:sw%d/tcp%d rl%d", i, st[0], st[1], rl);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
return event_count;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user