mirror of
https://github.com/pvvx/RTL00MP3.git
synced 2025-07-31 12:41:06 +00:00
update
This commit is contained in:
parent
ad9b495d7e
commit
494a7e1b39
31 changed files with 391 additions and 851 deletions
|
|
@ -10,6 +10,10 @@
|
|||
#include "osdep_service.h"
|
||||
#include "osdep_api.h"
|
||||
|
||||
#include "tcpip.h"
|
||||
#include "lwip/tcp_impl.h"
|
||||
|
||||
|
||||
|
||||
#ifndef ATCMD_VER
|
||||
#define ATVER_1 1
|
||||
|
|
@ -2096,6 +2100,113 @@ int atcmd_lwip_restore_from_flash(void){
|
|||
}
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------ Add pvvx Lwip Info
|
||||
/* Get one byte from the 4-byte address */
|
||||
#define ip4_addr1(ipaddr) (((u8_t*)(ipaddr))[0])
|
||||
#define ip4_addr2(ipaddr) (((u8_t*)(ipaddr))[1])
|
||||
#define ip4_addr3(ipaddr) (((u8_t*)(ipaddr))[2])
|
||||
#define ip4_addr4(ipaddr) (((u8_t*)(ipaddr))[3])
|
||||
/* These are cast to u16_t, with the intent that they are often arguments
|
||||
* to printf using the U16_F format from cc.h. */
|
||||
#define ip4_addr1_16(ipaddr) ((u16_t)ip4_addr1(ipaddr))
|
||||
#define ip4_addr2_16(ipaddr) ((u16_t)ip4_addr2(ipaddr))
|
||||
#define ip4_addr3_16(ipaddr) ((u16_t)ip4_addr3(ipaddr))
|
||||
#define ip4_addr4_16(ipaddr) ((u16_t)ip4_addr4(ipaddr))
|
||||
|
||||
#define IP2STR(ipaddr) ip4_addr1_16(ipaddr), \
|
||||
ip4_addr2_16(ipaddr), \
|
||||
ip4_addr3_16(ipaddr), \
|
||||
ip4_addr4_16(ipaddr)
|
||||
|
||||
#define IPSTR "%d.%d.%d.%d"
|
||||
|
||||
extern const char * const tcp_state_str[];
|
||||
/*
|
||||
static const char * const tcp_state_str[] = {
|
||||
"CLOSED",
|
||||
"LISTEN",
|
||||
"SYN_SENT",
|
||||
"SYN_RCVD",
|
||||
"ESTABLISHED",
|
||||
"FIN_WAIT_1",
|
||||
"FIN_WAIT_2",
|
||||
"CLOSE_WAIT",
|
||||
"CLOSING",
|
||||
"LAST_ACK",
|
||||
"TIME_WAIT"
|
||||
};
|
||||
*/
|
||||
/******************************************************************************
|
||||
* FunctionName : debug
|
||||
* Parameters :
|
||||
* Returns :
|
||||
*******************************************************************************/
|
||||
void print_udp_pcb(void)
|
||||
{
|
||||
struct udp_pcb *pcb;
|
||||
bool prt_none = true;
|
||||
rtl_printf("UDP pcbs:\n");
|
||||
for(pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) {
|
||||
rtl_printf("flg:%02x\t" IPSTR ":%d\t" IPSTR ":%d\trecv:%p\n", pcb->flags, IP2STR(&pcb->local_ip), pcb->local_port, IP2STR(&pcb->remote_ip), pcb->remote_port, pcb->recv );
|
||||
prt_none = false;
|
||||
}
|
||||
if(prt_none) rtl_printf("none\n");
|
||||
}
|
||||
/******************************************************************************
|
||||
* FunctionName : debug
|
||||
* Parameters :
|
||||
* Returns :
|
||||
*******************************************************************************/
|
||||
void print_tcp_pcb(void)
|
||||
{
|
||||
struct tcp_pcb *pcb;
|
||||
rtl_printf("Active PCB states:\n");
|
||||
bool prt_none = true;
|
||||
for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
|
||||
rtl_printf("Port %d|%d\tflg:%02x\ttmr:%p\t%s\n", pcb->local_port, pcb->remote_port, pcb->flags, pcb->tmr, tcp_state_str[pcb->state]);
|
||||
prt_none = false;
|
||||
}
|
||||
if(prt_none) rtl_printf("none\n");
|
||||
rtl_printf("Listen PCB states:\n");
|
||||
prt_none = true;
|
||||
for(pcb = (struct tcp_pcb *)tcp_listen_pcbs.pcbs; pcb != NULL; pcb = pcb->next) {
|
||||
rtl_printf("Port %d|%d\tflg:%02x\ttmr:%p\t%s\n", pcb->local_port, pcb->remote_port, pcb->flags, pcb->tmr, tcp_state_str[pcb->state]);
|
||||
prt_none = false;
|
||||
}
|
||||
if(prt_none) rtl_printf("none\n");
|
||||
rtl_printf("TIME-WAIT PCB states:\n");
|
||||
prt_none = true;
|
||||
for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) {
|
||||
rtl_printf("Port %d|%d\tflg:%02x\ttmr:%p\t%s\n", pcb->local_port, pcb->remote_port, pcb->flags, pcb->tmr, tcp_state_str[pcb->state]);
|
||||
prt_none = false;
|
||||
}
|
||||
if(prt_none) rtl_printf("none\n");
|
||||
}
|
||||
/******************************************************************************
|
||||
* FunctionName : debug
|
||||
* Parameters :
|
||||
* Returns :
|
||||
*******************************************************************************/
|
||||
void print_netif(int inum)
|
||||
{
|
||||
rtl_printf("Net Info[%d]: " IPSTR, inum, IP2STR(&xnetif[inum].ip_addr));
|
||||
rtl_printf(", " IPSTR ", " IPSTR "\n", IP2STR(&xnetif[inum].netmask), IP2STR(&xnetif[inum].gw));
|
||||
}
|
||||
/******************************************************************************
|
||||
* FunctionName : debug
|
||||
* Parameters :
|
||||
* Returns :
|
||||
*******************************************************************************/
|
||||
//------------------------------------------------------------------------------
|
||||
void fATPx(void *arg) // Info Lwip
|
||||
{
|
||||
printf("=== LwIP Info ===\n");
|
||||
print_netif(0);
|
||||
print_netif(1);
|
||||
print_udp_pcb();
|
||||
print_tcp_pcb();
|
||||
}
|
||||
//------------------------------------------------------------ Add pvvx end
|
||||
#if CONFIG_TRANSPORT
|
||||
log_item_t at_transport_items[ ] = {
|
||||
#if ATCMD_VER == ATVER_1
|
||||
|
|
@ -2123,7 +2234,8 @@ log_item_t at_transport_items[ ] = {
|
|||
{"ATPI", fATPI,},//printf connection status
|
||||
{"ATPU", fATPU,}, //transparent transmission mode
|
||||
{"ATPL", fATPL,}, //lwip auto reconnect setting
|
||||
#endif
|
||||
#endif
|
||||
{"ATP?", fATPx,}, //Lwip pcb Info
|
||||
};
|
||||
|
||||
#if ATCMD_VER == ATVER_2
|
||||
|
|
|
|||
|
|
@ -49,35 +49,45 @@ struct _dev_id2name {
|
|||
u8 id;
|
||||
u8 *name;
|
||||
};
|
||||
|
||||
struct _dev_id2name dev_id2name[] = {
|
||||
{0, "UART0"}, {1, "UART1"},{2, "UART2"},
|
||||
{8, "SPI0"}, {9, "SPI1"}, {10, "SPI2"},
|
||||
{15, "SPI0_MCS"},
|
||||
{16, "I2C0"}, {17, "I2C1"}, {18, "I2C2"}, {19, "I2C3"},
|
||||
{24, "I2S0"}, {25, "I2S1"},
|
||||
{28, "PCM0"}, {29, "PCM1"},
|
||||
{32, "ADC0"},
|
||||
{36, "DAC0"}, {37, "DAC1"},
|
||||
{64, "SDIOD"}, {65, "SDIOH"},
|
||||
{66, "USBOTG"},
|
||||
{88, "MII"},
|
||||
{96, "WL_LED"},
|
||||
{104,"WL_ANT0"}, {105,"WL_ANT1"},
|
||||
{108,"WL_BTCOEX"}, {109,"WL_BTCMD"},
|
||||
{112,"NFC"},
|
||||
{160,"PWM0"}, {161,"PWM1"}, {162,"PWM2"}, {163,"PWM3"},
|
||||
{164,"ETE0"}, {165,"ETE1"}, {166,"ETE2"}, {167,"ETE3"},
|
||||
{168,"EGTIM"},
|
||||
{196,"SPI_FLASH"},
|
||||
{200,"SDR"},
|
||||
{216,"JTAG"},
|
||||
{217,"TRACE"},
|
||||
{220,"LOG_UART"}, {221,"LOG_UART_IR"},
|
||||
{224,"SIC"},
|
||||
{225,"EEPROM"},
|
||||
{226,"DEBUG"},
|
||||
{UART0, "UART0"}, {UART1, "UART1"}, {UART2, "UART2"},
|
||||
{SPI0, "SPI0"}, {SPI1, "SPI1"}, {SPI2, "SPI2"},
|
||||
{SPI0_MCS, "SPI0_MCS"},
|
||||
{I2C0, "I2C0"}, {I2C1, "I2C1"}, {I2C2, "I2C2"}, {I2C3, "I2C3"},
|
||||
{I2S0, "I2S0"}, {I2S1, "I2S1"},
|
||||
{PCM0, "PCM0"}, {PCM1, "PCM1"},
|
||||
{ADC0, "ADC0"},
|
||||
{DAC0, "DAC0"}, {DAC1, "DAC1"},
|
||||
{SDIOD, "SDIOD"}, {SDIOH, "SDIOH"},
|
||||
{USBOTG, "USBOTG"},
|
||||
{MII, "MII"},
|
||||
{WL_LED, "WL_LED"},
|
||||
{WL_ANT0,"WL_ANT0"}, {WL_ANT1,"WL_ANT1"},
|
||||
{WL_BTCOEX,"WL_BTCOEX"}, {WL_BTCMD,"WL_BTCMD"},
|
||||
{NFC,"NFC"},
|
||||
{PWM0,"PWM0"}, {PWM1,"PWM1"}, {PWM2,"PWM2"}, {PWM3,"PWM3"},
|
||||
{ETE0,"ETE0"}, {ETE1,"ETE1"}, {ETE2,"ETE2"}, {ETE3,"ETE3"},
|
||||
{EGTIM,"EGTIM"},
|
||||
{SPI_FLASH,"SPI_FLASH"},
|
||||
{SDR,"SDR"},
|
||||
{JTAG,"JTAG"},
|
||||
{TRACE,"TRACE"},
|
||||
{LOG_UART,"LOG_UART"}, {LOG_UART_IR,"LOG_UART_IR"},
|
||||
{SIC,"SIC"},
|
||||
{EEPROM,"EEPROM"},
|
||||
{DEBUG,"DEBUG"},
|
||||
{255,""}};
|
||||
|
||||
#include "rtl8195a.h"
|
||||
#include "rtl8195a_sdio_host.h"
|
||||
#include "hal_sdio_host.h"
|
||||
#include "sd.h"
|
||||
#include "sdio_host.h"
|
||||
extern HAL_SDIO_HOST_ADAPTER SdioHostAdapter;
|
||||
extern void SdioHostSdBusPwrCtrl(uint8_t En);
|
||||
extern int SdioHostSdClkCtrl(void *Data, int En, int Divisor);
|
||||
|
||||
void fATXX(void *arg)
|
||||
{
|
||||
uint32 x = 0;
|
||||
|
|
@ -105,14 +115,21 @@ void fATXX(void *arg)
|
|||
}
|
||||
printf("Dev %s, state = %s\n", dev_id2name[i].name, s);
|
||||
}
|
||||
for(i = 0; i < _PORT_MAX; i++) printf("Port %c state: 0x%04x\n", i+'A', GPIOState[i]);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SDR_EN
|
||||
extern s32 MemTest(u32 LoopCnt);
|
||||
void fATSM(void *arg)
|
||||
{
|
||||
MemTest(1);
|
||||
}
|
||||
#endif
|
||||
//-------- AT SYS commands ---------------------------------------------------------------
|
||||
void fATSD(void *arg)
|
||||
{
|
||||
int argc = 0;
|
||||
char *argv[MAX_ARGC] = {0};
|
||||
|
||||
SD_DeInit();
|
||||
AT_DBG_MSG(AT_FLAG_DUMP, AT_DBG_ALWAYS, "[ATSD]: _AT_SYSTEM_DUMP_REGISTER_");
|
||||
if(!arg){
|
||||
AT_DBG_MSG(AT_FLAG_DUMP, AT_DBG_ALWAYS, "[ATSD] Usage: ATSD=REGISTER");
|
||||
|
|
@ -123,22 +140,24 @@ void fATSD(void *arg)
|
|||
CmdDumpWord(argc-1, (unsigned char**)(argv+1));
|
||||
}
|
||||
|
||||
#if ATCMD_VER == ATVER_1
|
||||
|
||||
void fATSE(void *arg)
|
||||
#if ATCMD_VER == ATVER_2
|
||||
void fATXD(void *arg)
|
||||
{
|
||||
int argc = 0;
|
||||
char *argv[MAX_ARGC] = {0};
|
||||
|
||||
AT_DBG_MSG(AT_FLAG_EDIT, AT_DBG_ALWAYS, "[ATSE]: _AT_SYSTEM_EDIT_REGISTER_");
|
||||
AT_DBG_MSG(AT_FLAG_EDIT, AT_DBG_ALWAYS, "[ATXD]: _AT_SYSTEM_WRITE_REGISTER_");
|
||||
if(!arg){
|
||||
AT_DBG_MSG(AT_FLAG_EDIT, AT_DBG_ALWAYS, "[ATSE] Usage: ATSE=REGISTER[VALUE]");
|
||||
AT_DBG_MSG(AT_FLAG_EDIT, AT_DBG_ALWAYS, "[ATXD] Usage: ATXD=REGISTER,VALUE");
|
||||
return;
|
||||
}
|
||||
argc = parse_param(arg, argv);
|
||||
if(argc == 3)
|
||||
CmdWriteWord(argc-1, (unsigned char**)(argv+1));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if ATCMD_VER == ATVER_1
|
||||
|
||||
void fATSC(void *arg)
|
||||
{
|
||||
|
|
@ -1232,6 +1251,7 @@ log_item_t at_sys_items[] = {
|
|||
{"ATSX", fATSX,}, // uart xmodem upgrade
|
||||
#endif
|
||||
{"ATSD", fATSD,}, // Dump register
|
||||
{"ATXD", fATXD,}, // Write register
|
||||
#endif // end of #if ATCMD_VER == ATVER_1
|
||||
|
||||
// Following commands exist in two versions
|
||||
|
|
@ -1240,6 +1260,9 @@ log_item_t at_sys_items[] = {
|
|||
#endif
|
||||
{"ATST", fATST}, // add pvvx: mem info
|
||||
{"ATXX", fATXX}, // test
|
||||
#ifdef CONFIG_SDR_EN
|
||||
{"ATSM", fATSM} // memtest
|
||||
#endif
|
||||
};
|
||||
|
||||
#if ATCMD_VER == ATVER_2
|
||||
|
|
|
|||
|
|
@ -1484,6 +1484,35 @@ void print_wlan_help(void *arg){
|
|||
|
||||
#elif ATCMD_VER == ATVER_2 // UART module at command
|
||||
|
||||
// wifi promisc
|
||||
// Usage: ATWM=DURATION_SECONDS[with_len]
|
||||
#ifdef CONFIG_PROMISC
|
||||
void fATWM(void *arg){
|
||||
int argc, error_no = 0;
|
||||
char *argv[MAX_ARGC] = {0};
|
||||
argv[0] = "wifi_promisc";
|
||||
printf("[ATWM]: _AT_WLAN_PROMISC_\n");
|
||||
if(!arg){
|
||||
AT_DBG_MSG(AT_FLAG_WIFI, AT_DBG_ERROR,
|
||||
"[ATWM]Usage: ATWM=DURATION_MSECONDS[with_len]\n");
|
||||
#if CONFIG_INIC_CMD_RSP
|
||||
inic_c2h_msg("ATWM", RTW_BADARG, NULL, 0);
|
||||
#endif
|
||||
error_no = 1;
|
||||
goto exit;
|
||||
}
|
||||
if((argc = parse_param(arg, argv)) > 1){
|
||||
cmd_promisc(argc, argv);
|
||||
}
|
||||
exit:
|
||||
if(error_no==0)
|
||||
at_printf("\r\n[ATWM] OK");
|
||||
else
|
||||
at_printf("\r\n[ATWM] ERROR:%d",error_no);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
//ATPA=<ssid>,<pwd>,<chl>,<hidden>[,<max_conn>]
|
||||
void fATPA(void *arg)
|
||||
{
|
||||
|
|
@ -2470,6 +2499,86 @@ exit:
|
|||
return;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
#if CONFIG_ENABLE_P2P
|
||||
void fATWG(void *arg){
|
||||
int argc = 0;
|
||||
char *argv[4];
|
||||
printf("[ATWG]: _AT_WLAN_P2P_START_\n");
|
||||
argv[argc++] = "p2p_start";
|
||||
cmd_wifi_p2p_start(argc, argv);
|
||||
}
|
||||
|
||||
void fATWg(void *arg){
|
||||
int argc = 0;
|
||||
char *argv[4];
|
||||
int ret =0;
|
||||
printf("[ATWg]: _AT_WLAN_P2P_AUTO_GO_START_\n");
|
||||
argv[argc++] = "p2p_auto_go_start";
|
||||
ret = cmd_wifi_p2p_auto_go_start(argc, argv);
|
||||
if(ret < 0)
|
||||
printf("[ATWg]: Nothing to do. Please enter ATWG to initialize P2P.\n");
|
||||
}
|
||||
|
||||
void fATWH(void *arg){
|
||||
int argc = 0;
|
||||
char *argv[4];
|
||||
printf("[ATWH]: _AT_WLAN_P2P_STOP_\n");
|
||||
argv[argc++] = "p2p_stop";
|
||||
cmd_wifi_p2p_stop(argc, argv);
|
||||
}
|
||||
void fATWJ(void *arg){
|
||||
int argc = 0;
|
||||
char *argv[4];
|
||||
printf("[ATWJ]: _AT_WLAN_P2P_CONNECT_\n");
|
||||
argv[0] = "p2p_connect";
|
||||
if(!arg){
|
||||
printf("ATWc=[DEST_MAC,pbc/pin]\n");
|
||||
return;
|
||||
}
|
||||
if((argc = parse_param(arg, argv)) > 1){
|
||||
cmd_p2p_connect(argc, argv);
|
||||
}
|
||||
}
|
||||
void fATWK(void *arg){
|
||||
int argc = 0;
|
||||
char *argv[4];
|
||||
printf("[ATWK]: _AT_WLAN_P2P_DISCONNECT_\n");
|
||||
argv[argc++] = "p2p_disconnect";
|
||||
cmd_p2p_disconnect(argc, argv);
|
||||
}
|
||||
void fATWN(void *arg){
|
||||
int argc = 0;
|
||||
char *argv[4];
|
||||
printf("[ATWN]: _AT_WLAN_P2P_INFO_\n");
|
||||
argv[argc++] = "p2p_info";
|
||||
cmd_p2p_info(argc, argv);
|
||||
}
|
||||
void fATWF(void *arg){
|
||||
int argc = 0;
|
||||
char *argv[4];
|
||||
printf("[ATWF]: _AT_WLAN_P2P_FIND_\n");
|
||||
argv[argc++] = "p2p_find";
|
||||
cmd_p2p_find(argc, argv);
|
||||
}
|
||||
void fATWL(void *arg){
|
||||
int argc = 0;
|
||||
char *argv[4];
|
||||
printf("[ATWL]: _AT_WLAN_P2P_LISTEN_\n");
|
||||
argv[argc++] = "p2p_listen";
|
||||
cmd_p2p_listen(argc, argv);
|
||||
}
|
||||
void fATWP(void *arg){
|
||||
int argc = 0;
|
||||
char *argv[4];
|
||||
printf("[ATWP]: _AT_WLAN_P2P_PEERS_\n");
|
||||
argv[argc++] = "p2p_peers";
|
||||
cmd_p2p_peers(argc, argv);
|
||||
}
|
||||
|
||||
#endif // CONFIG_ENABLE_P2P
|
||||
//-----------------------------------------------------
|
||||
|
||||
void print_wlan_help(void *arg){
|
||||
at_printf("\r\nWLAN AT COMMAND SET:");
|
||||
at_printf("\r\n==============================");
|
||||
|
|
@ -2693,9 +2802,23 @@ log_item_t at_wifi_items[ ] = {
|
|||
{"ATPW", fATPW,}, // set Wifi mode
|
||||
{"ATWD", fATWD,}, // WIFI disconnect
|
||||
{"ATWS", fATWS,}, // WIFI scan
|
||||
#if CONFIG_ENABLE_P2P
|
||||
{"ATWG", fATWG,}, //p2p start
|
||||
{"ATWH", fATWH,}, //p2p stop
|
||||
{"ATWJ", fATWJ,}, //p2p connect
|
||||
{"ATWK", fATWK,}, //p2p disconnect
|
||||
{"ATWN", fATWN,}, //p2p info
|
||||
{"ATWF", fATWF,}, //p2p find
|
||||
{"ATWg", fATWg,}, //p2p auto go start
|
||||
{"ATWL", fATWL,}, //p2p listen
|
||||
{"ATWP", fATWP,}, //p2p peers
|
||||
#endif
|
||||
#ifdef CONFIG_PROMISC
|
||||
{"ATWM", fATWM,}, // WIFI promisc Usage: ATWM=DURATION_SECONDS[with_len]
|
||||
#endif
|
||||
{"ATW?", fATWx,}, // WIFI Info
|
||||
#if (CONFIG_INCLUDE_SIMPLE_CONFIG)
|
||||
{"ATWQ", fATWQ,}, // wifi simpleconfig
|
||||
{"ATWQ", fATWQ } // wifi simpleconfig
|
||||
#endif // #if (CONFIG_INCLUDE_SIMPLE_CONFIG)
|
||||
#endif // #if CONFIG_WLAN
|
||||
#endif // end of #if ATCMD_VER == ATVER_1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue