forked from xuos/xiuos
Merge branch 'prepare_for_master' of https://git.trustie.net/xuos/xiuos into develop
This commit is contained in:
commit
ebf362bc89
|
@ -16,3 +16,6 @@
|
|||
[submodule "Ubiquitous/Nuttx_Fusion_XiUOS/apps"]
|
||||
path = Ubiquitous/Nuttx_Fusion_XiUOS/apps
|
||||
url = https://code.gitlink.org.cn/wgzAIIT/incubator-nuttx-apps.git
|
||||
[submodule "APP_Framework/Applications/webnet/WebNet_XiUOS"]
|
||||
path = APP_Framework/Applications/webnet/WebNet_XiUOS
|
||||
url = https://gitlink.org.cn/xuos/WebNet_XiUOS.git
|
||||
|
|
|
@ -19,4 +19,5 @@ menu "Applications"
|
|||
source "$APP_DIR/Applications/knowing_app/Kconfig"
|
||||
source "$APP_DIR/Applications/sensor_app/Kconfig"
|
||||
source "$APP_DIR/Applications/embedded_database_app/Kconfig"
|
||||
source "$APP_DIR/Applications/webnet/Kconfig"
|
||||
endmenu
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
menuconfig APP_USING_WEBNET
|
||||
bool "WebNet: A lightweight, customizable, embeddable Web Server for RT-Thread"
|
||||
default n
|
||||
if APP_USING_WEBNET
|
||||
|
||||
config PKG_WEBNET_PATH
|
||||
string
|
||||
default "/packages/iot/webnet"
|
||||
|
||||
config WEBNET_PORT
|
||||
int "Server listen port"
|
||||
default 80
|
||||
range 0 65535
|
||||
|
||||
config WEBNET_CONN_MAX
|
||||
int "Maximum number of server connections"
|
||||
default 16
|
||||
range 1 100
|
||||
|
||||
config WEBNET_ROOT
|
||||
string "Server root directory"
|
||||
default "/webnet"
|
||||
|
||||
menu "Select supported modules"
|
||||
|
||||
config WEBNET_USING_LOG
|
||||
bool "LOG: Enable output log support"
|
||||
default n
|
||||
|
||||
config WEBNET_USING_AUTH
|
||||
bool "AUTH: Enable basic HTTP authentication support"
|
||||
default n
|
||||
|
||||
config WEBNET_USING_CGI
|
||||
bool "CGI: Enable Common Gateway Interface support"
|
||||
default n
|
||||
|
||||
config WEBNET_USING_ASP
|
||||
bool "ASP: Enable Active Server Pages support"
|
||||
default n
|
||||
|
||||
config WEBNET_USING_SSI
|
||||
bool "SSI: Enable Server Side Includes support"
|
||||
default n
|
||||
|
||||
config WEBNET_USING_INDEX
|
||||
bool "INDEX: Enable list all the file in the directory support"
|
||||
default n
|
||||
|
||||
config WEBNET_USING_ALIAS
|
||||
bool "ALIAS: Enable alias support"
|
||||
default n
|
||||
|
||||
config WEBNET_USING_DAV
|
||||
bool "DAV: Enable Web-based Distributed Authoring and Versioning support"
|
||||
default n
|
||||
|
||||
config WEBNET_USING_UPLOAD
|
||||
bool "UPLOAD: Enable upload file support"
|
||||
default n
|
||||
|
||||
config WEBNET_USING_GZIP
|
||||
bool "GZIP: Enable compressed file support by GZIP"
|
||||
default n
|
||||
|
||||
config WEBNET_CACHE_LEVEL
|
||||
int "CACHE: Configure cache level(0:disable 1:use Last-Modified 2:use Cache-Control)"
|
||||
default 0
|
||||
range 0 2
|
||||
|
||||
if WEBNET_CACHE_LEVEL = 2
|
||||
|
||||
config WEBNET_CACHE_MAX_AGE
|
||||
int "Cache-Control time in seconds"
|
||||
default 1800
|
||||
|
||||
endif
|
||||
|
||||
endmenu
|
||||
|
||||
config WEBNET_USING_SAMPLES
|
||||
bool "Enable webnet samples"
|
||||
default n
|
||||
select WEBNET_USING_ASP
|
||||
select WEBNET_USING_AUTH
|
||||
select WEBNET_USING_CGI
|
||||
select WEBNET_USING_INDEX
|
||||
select WEBNET_USING_ALIAS
|
||||
select WEBNET_USING_SSI
|
||||
select WEBNET_USING_UPLOAD
|
||||
endif
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
import os
|
||||
Import('RTT_ROOT')
|
||||
from building import *
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
objs = []
|
||||
list = os.listdir(cwd)
|
||||
|
||||
for d in list:
|
||||
path = os.path.join(cwd, d)
|
||||
if os.path.isfile(os.path.join(path, 'SConscript')):
|
||||
objs = objs + SConscript(os.path.join(path, 'SConscript'))
|
||||
|
||||
Return('objs')
|
|
@ -3,6 +3,11 @@ config ADAPTER_4G_EC200T
|
|||
default "ec200t"
|
||||
|
||||
if ADD_XIZI_FETURES
|
||||
config ADAPTER_EC200T_USING_PWRKEY
|
||||
bool "EC200T using PWRKEY pin number"
|
||||
default n
|
||||
|
||||
if ADAPTER_EC200T_USING_PWRKEY
|
||||
config ADAPTER_EC200T_PWRKEY
|
||||
int "EC200T PWRKEY pin number"
|
||||
default "97"
|
||||
|
@ -10,6 +15,7 @@ if ADD_XIZI_FETURES
|
|||
config ADAPTER_EC200T_PIN_DRIVER
|
||||
string "EC200T device pin driver path"
|
||||
default "/dev/pin_dev"
|
||||
endif
|
||||
|
||||
config ADAPTER_EC200T_DRIVER_EXTUART
|
||||
bool "Using extra uart to support 4G"
|
||||
|
|
|
@ -43,6 +43,7 @@ static void Ec200tPowerSet(void){ return; }
|
|||
#else
|
||||
static void Ec200tPowerSet(void)
|
||||
{
|
||||
#ifdef ADAPTER_EC200T_USING_PWRKEY
|
||||
int pin_fd;
|
||||
pin_fd = PrivOpen(ADAPTER_EC200T_PIN_DRIVER, O_RDWR);
|
||||
if (pin_fd < 0) {
|
||||
|
@ -73,6 +74,7 @@ static void Ec200tPowerSet(void)
|
|||
PrivClose(pin_fd);
|
||||
|
||||
PrivTaskDelay(10000);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -178,7 +178,6 @@ int ATOrderSend(ATAgentType agent, uint32_t timeout_s, ATReplyType reply, const
|
|||
}
|
||||
|
||||
__out:
|
||||
// agent->reply = NULL;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -306,7 +305,6 @@ int EntmRecv(ATAgentType agent, char *rev_buffer, int buffer_len, int timeout_s)
|
|||
}
|
||||
PrivMutexObtain(&agent->lock);
|
||||
|
||||
|
||||
printf("EntmRecv once len %d.\n", agent->entm_recv_len);
|
||||
|
||||
memcpy(rev_buffer, agent->entm_recv_buf, agent->entm_recv_len);
|
||||
|
@ -335,8 +333,7 @@ static int GetCompleteATReply(ATAgentType agent)
|
|||
|
||||
PrivMutexAbandon(&agent->lock);
|
||||
|
||||
while (1)
|
||||
{
|
||||
while (1) {
|
||||
PrivRead(agent->fd, &ch, 1);
|
||||
#ifdef CONNECTION_FRAMEWORK_DEBUG
|
||||
if(ch != 0) {
|
||||
|
@ -345,19 +342,15 @@ static int GetCompleteATReply(ATAgentType agent)
|
|||
#endif
|
||||
|
||||
PrivMutexObtain(&agent->lock);
|
||||
if (agent->receive_mode == ENTM_MODE)
|
||||
{
|
||||
if (agent->entm_recv_len < ENTM_RECV_MAX)
|
||||
{
|
||||
if (agent->receive_mode == ENTM_MODE) {
|
||||
if (agent->entm_recv_len < ENTM_RECV_MAX) {
|
||||
agent->entm_recv_buf[agent->entm_recv_len] = ch;
|
||||
agent->entm_recv_len++;
|
||||
|
||||
if(agent->entm_recv_len < agent->read_len) {
|
||||
PrivMutexAbandon(&agent->lock);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
printf("ENTM_MODE recv %d Bytes done.\n",agent->entm_recv_len);
|
||||
agent->receive_mode = DEFAULT_MODE;
|
||||
PrivSemaphoreAbandon(&agent->entm_rx_notice);
|
||||
|
@ -367,12 +360,9 @@ static int GetCompleteATReply(ATAgentType agent)
|
|||
printf("entm_recv_buf is_full ...\n");
|
||||
}
|
||||
}
|
||||
else if (agent->receive_mode == AT_MODE)
|
||||
{
|
||||
if (read_len < agent->maintain_max)
|
||||
{
|
||||
if(ch != 0) ///< if the char is null then do not save it to the buff
|
||||
{
|
||||
else if (agent->receive_mode == AT_MODE) {
|
||||
if (read_len < agent->maintain_max) {
|
||||
if(ch != 0) { ///< if the char is null then do not save it to the buff
|
||||
agent->maintain_buffer[read_len] = ch;
|
||||
read_len++;
|
||||
agent->maintain_len = read_len;
|
||||
|
@ -446,11 +436,13 @@ int DeleteATAgent(ATAgentType agent)
|
|||
PrivMutexDelete(&agent->lock);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ADD_XIZI_FETURES
|
||||
if (agent->entm_rx_notice) {
|
||||
printf("delete agent entm_rx_notice = %d\n",agent->entm_rx_notice);
|
||||
PrivSemaphoreDelete(&agent->entm_rx_notice);
|
||||
}
|
||||
#else
|
||||
#endif
|
||||
#ifdef ADD_XIZI_FETURES
|
||||
if (agent->rsp_sem) {
|
||||
printf("delete agent rsp_sem = %d\n",agent->rsp_sem);
|
||||
|
@ -471,8 +463,7 @@ static void *ATAgentReceiveProcess(void *param)
|
|||
const struct at_urc *urc;
|
||||
|
||||
while (1) {
|
||||
if (GetCompleteATReply(agent) > 0)
|
||||
{
|
||||
if (GetCompleteATReply(agent) > 0) {
|
||||
PrivMutexObtain(&agent->lock);
|
||||
if (agent->reply != NULL) {
|
||||
ATReplyType reply = agent->reply;
|
||||
|
@ -513,13 +504,13 @@ static int ATAgentInit(ATAgentType agent)
|
|||
printf("ATAgentInit create entm sem error\n");
|
||||
goto __out;
|
||||
}
|
||||
printf("create entm_rx_notice_sem %d\n ",agent->entm_rx_notice);
|
||||
|
||||
result = PrivSemaphoreCreate(&agent->rsp_sem, 0, 0);
|
||||
if (result < 0) {
|
||||
printf("ATAgentInit create rsp sem error\n");
|
||||
goto __out;
|
||||
}
|
||||
printf("create rsp_sem %d\n ",agent->rsp_sem);
|
||||
|
||||
if(PrivMutexCreate(&agent->lock, 0) < 0) {
|
||||
printf("AdapterFrameworkInit mutex create failed.\n");
|
||||
goto __out;
|
||||
|
@ -539,7 +530,7 @@ static int ATAgentInit(ATAgentType agent)
|
|||
#endif
|
||||
|
||||
PrivTaskCreate(&agent->at_handler, &attr, ATAgentReceiveProcess, agent);
|
||||
printf("create agent->at_handler = %d\n",agent->at_handler);
|
||||
|
||||
return result;
|
||||
|
||||
__out:
|
||||
|
|
|
@ -74,7 +74,11 @@ struct ATAgent
|
|||
char entm_recv_buf[ENTM_RECV_MAX];
|
||||
uint32 entm_recv_len;
|
||||
enum ReceiveMode receive_mode;
|
||||
#ifdef ADD_XIZI_FETURES
|
||||
int entm_rx_notice;
|
||||
#else
|
||||
sem_t entm_rx_notice;
|
||||
#endif
|
||||
};
|
||||
typedef struct ATAgent *ATAgentType;
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ import os
|
|||
Import('RTT_ROOT')
|
||||
from building import *
|
||||
SOURCES = []
|
||||
if GetDepend(['CONNECTION_ADAPTER_BLUETOOTH']):
|
||||
SOURCES = ['adapter_bluetooth.c'] + SOURCES
|
||||
objs = []
|
||||
cwd = GetCurrentDir()
|
||||
|
|
|
@ -90,12 +90,15 @@ int AdapterBlueToothTest(void)
|
|||
|
||||
#ifdef ADAPTER_HC08
|
||||
AdapterDeviceOpen(adapter);
|
||||
|
||||
//if bluetooth master and slave have already match, no need to AdapterDeviceControl and AdapterDeviceConnect
|
||||
AdapterDeviceControl(adapter, OPE_INT, &baud_rate);
|
||||
//AdapterDeviceConnect(adapter, adapter->net_role, NULL, NULL, 0);
|
||||
|
||||
len = strlen(bluetooth_msg);
|
||||
|
||||
while (1) {
|
||||
AdapterDeviceRecv(adapter, bluetooth_recv_msg, 128);
|
||||
AdapterDeviceRecv(adapter, bluetooth_recv_msg, 8);
|
||||
printf("bluetooth_recv_msg %s\n", bluetooth_recv_msg);
|
||||
AdapterDeviceSend(adapter, bluetooth_msg, len);
|
||||
printf("send %s after recv\n", bluetooth_msg);
|
||||
|
@ -111,5 +114,5 @@ int AdapterBlueToothTest(void)
|
|||
MSH_CMD_EXPORT(AdapterBlueToothTest,a bt adpter sample);
|
||||
#endif
|
||||
#ifdef ADD_XIZI_FETURES
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, AdapterWifiTest, AdapterWifiTest, show adapter wifi information);
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, AdapterBlueToothTest, AdapterBlueToothTest, show adapter bluetooth information);
|
||||
#endif
|
|
@ -37,6 +37,12 @@
|
|||
#define HC08_SET_ADDR_CMD "AT+ADDR=%s"
|
||||
#define HC08_GET_NAME_CMD "AT+NAME=%s"
|
||||
#define HC08_SET_NAME_CMD "AT+NAME=?"
|
||||
#define HC08_GET_LUUID_CMD "AT+LUUID=?"
|
||||
#define HC08_SET_LUUID_CMD "AT+LUUID=%u"
|
||||
#define HC08_GET_SUUID_CMD "AT+SUUID=?"
|
||||
#define HC08_SET_SUUID_CMD "AT+SUUID=%u"
|
||||
#define HC08_GET_TUUID_CMD "AT+TUUID=?"
|
||||
#define HC08_SET_TUUID_CMD "AT+TUUID=%u"
|
||||
|
||||
#define HC08_OK_RESP "OK"
|
||||
|
||||
|
@ -60,6 +66,12 @@ enum Hc08AtCmd
|
|||
HC08_AT_CMD_GET_ADDR,
|
||||
HC08_AT_CMD_SET_NAME,
|
||||
HC08_AT_CMD_GET_NAME,
|
||||
HC08_AT_CMD_SET_LUUID,
|
||||
HC08_AT_CMD_GET_LUUID,
|
||||
HC08_AT_CMD_SET_SUUID,
|
||||
HC08_AT_CMD_GET_SUUID,
|
||||
HC08_AT_CMD_SET_TUUID,
|
||||
HC08_AT_CMD_GET_TUUID,
|
||||
HC08_AT_CMD_END,
|
||||
};
|
||||
|
||||
|
@ -85,7 +97,7 @@ static int Hc08AtConfigure(ATAgentType agent, enum Hc08AtCmd hc08_at_cmd, void *
|
|||
{
|
||||
const char *result_buf;
|
||||
char *connectable, *role;
|
||||
unsigned int baudrate;
|
||||
unsigned int baudrate, luuid;
|
||||
char reply_ok_flag = 1;
|
||||
char cmd_str[HC08_CMD_STR_DEFAULT_SIZE] = {0};
|
||||
|
||||
|
@ -166,6 +178,18 @@ static int Hc08AtConfigure(ATAgentType agent, enum Hc08AtCmd hc08_at_cmd, void *
|
|||
ATOrderSend(agent, REPLY_TIME_OUT, reply, HC08_GET_NAME_CMD);
|
||||
reply_ok_flag = 0;
|
||||
break;
|
||||
case HC08_AT_CMD_GET_LUUID:
|
||||
AtSetReplyCharNum(agent, 13);
|
||||
ATOrderSend(agent, REPLY_TIME_OUT, reply, HC08_GET_LUUID_CMD);
|
||||
reply_ok_flag = 0;
|
||||
break;
|
||||
case HC08_AT_CMD_SET_LUUID:
|
||||
luuid = *(unsigned int *)param;
|
||||
sprintf(cmd_str, HC08_SET_LUUID_CMD, luuid);
|
||||
AtSetReplyCharNum(agent, 13);
|
||||
ATOrderSend(agent, REPLY_TIME_OUT, reply, cmd_str);
|
||||
reply_ok_flag = 0;
|
||||
break;
|
||||
default:
|
||||
printf("hc08 do not support no.%d cmd\n", hc08_at_cmd);
|
||||
DeleteATReply(reply);
|
||||
|
@ -205,10 +229,29 @@ static int Hc08Open(struct Adapter *adapter)
|
|||
return -1;
|
||||
}
|
||||
|
||||
struct SerialDataCfg serial_cfg;
|
||||
memset(&serial_cfg, 0 ,sizeof(struct SerialDataCfg));
|
||||
serial_cfg.serial_baud_rate = 9600;
|
||||
serial_cfg.serial_data_bits = DATA_BITS_8;
|
||||
serial_cfg.serial_stop_bits = STOP_BITS_1;
|
||||
serial_cfg.serial_buffer_size = SERIAL_RB_BUFSZ;
|
||||
serial_cfg.serial_parity_mode = PARITY_NONE;
|
||||
serial_cfg.serial_bit_order = STOP_BITS_1;
|
||||
serial_cfg.serial_invert_mode = NRZ_NORMAL;
|
||||
#ifdef ADAPTER_HC08_DRIVER_EXT_PORT
|
||||
serial_cfg.ext_uart_no = ADAPTER_HC08_DRIVER_EXT_PORT;
|
||||
serial_cfg.port_configure = PORT_CFG_INIT;
|
||||
#endif
|
||||
|
||||
struct PrivIoctlCfg ioctl_cfg;
|
||||
ioctl_cfg.ioctl_driver_type = SERIAL_TYPE;
|
||||
ioctl_cfg.args = &serial_cfg;
|
||||
PrivIoctl(adapter->fd, OPE_INT, &ioctl_cfg);
|
||||
|
||||
//step2: init AT agent
|
||||
if (!adapter->agent) {
|
||||
char *agent_name = "bluetooth_uart_client";
|
||||
printf("InitATAgent agent_name %s fd %u\n", agent_name, adapter->fd);
|
||||
|
||||
if (0 != InitATAgent(agent_name, adapter->fd, 512)) {
|
||||
printf("at agent init failed !\n");
|
||||
return -1;
|
||||
|
@ -274,8 +317,8 @@ static int Hc08Ioctl(struct Adapter *adapter, int cmd, void *args)
|
|||
return -1;
|
||||
}
|
||||
|
||||
char hc08_baudrate[HC08_RESP_DEFAULT_SIZE] = {0};
|
||||
uint32_t baud_rate = *((uint32_t *)args);
|
||||
uint32_t luuid;
|
||||
|
||||
struct SerialDataCfg serial_cfg;
|
||||
memset(&serial_cfg, 0 ,sizeof(struct SerialDataCfg));
|
||||
|
@ -291,6 +334,8 @@ static int Hc08Ioctl(struct Adapter *adapter, int cmd, void *args)
|
|||
serial_cfg.port_configure = PORT_CFG_INIT;
|
||||
#endif
|
||||
|
||||
serial_cfg.serial_timeout = -1;
|
||||
|
||||
struct PrivIoctlCfg ioctl_cfg;
|
||||
ioctl_cfg.ioctl_driver_type = SERIAL_TYPE;
|
||||
ioctl_cfg.args = &serial_cfg;
|
||||
|
@ -306,11 +351,29 @@ static int Hc08Ioctl(struct Adapter *adapter, int cmd, void *args)
|
|||
return -1;
|
||||
}
|
||||
|
||||
PrivTaskDelay(200);
|
||||
//Step3 : clear hc08 configure
|
||||
if (MASTER == adapter->net_role) {
|
||||
PrivTaskDelay(300);
|
||||
if (Hc08AtConfigure(adapter->agent, HC08_AT_CMD_CLEAR, NULL, NULL) < 0) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
PrivTaskDelay(500);
|
||||
|
||||
//Step3 : show hc08 device info, hc08_get send "AT+RX" response device info
|
||||
char device_info[HC08_RESP_DEFAULT_SIZE * 2] = {0};
|
||||
if (Hc08AtConfigure(adapter->agent, HC08_AT_CMD_GET_DEVICE_INFO, NULL, device_info) < 0) {
|
||||
// char device_info[HC08_RESP_DEFAULT_SIZE * 2] = {0};
|
||||
// if (Hc08AtConfigure(adapter->agent, HC08_AT_CMD_GET_DEVICE_INFO, NULL, device_info) < 0) {
|
||||
// return -1;
|
||||
// }
|
||||
|
||||
//Step4 : set LUUID、SUUID、TUUID, slave and master need to have same uuid param
|
||||
luuid = 1234;
|
||||
if (Hc08AtConfigure(adapter->agent, HC08_AT_CMD_SET_LUUID, &luuid, NULL) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (Hc08AtConfigure(adapter->agent, HC08_AT_CMD_GET_LUUID, NULL, NULL) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
import os
|
||||
Import('RTT_ROOT')
|
||||
from building import *
|
||||
SOURCES = []
|
||||
if GetDepend(['CONNECTION_ADAPTER_ETHERNET']):
|
||||
SOURCES = ['adapter_ethernet.c'] + SOURCES
|
||||
objs = []
|
||||
cwd = GetCurrentDir()
|
||||
path = [cwd]
|
||||
group = DefineGroup('ethernet', SOURCES, depend = [], CPPPATH = [cwd])
|
||||
objs = objs + group
|
||||
list = os.listdir(cwd)
|
||||
|
||||
for d in list:
|
||||
path = os.path.join(cwd, d)
|
||||
if os.path.isfile(os.path.join(path, 'SConscript')):
|
||||
objs = objs + SConscript(os.path.join(path, 'SConscript'))
|
||||
|
||||
Return('objs')
|
|
@ -97,14 +97,14 @@ int AdapterEthernetTest(void)
|
|||
|
||||
AdapterDeviceSetUp(adapter);
|
||||
|
||||
const char *ip = "10.10.100.50";
|
||||
const char *port = "12345";
|
||||
const char *ip = "192.168.131.26";
|
||||
const char *port = "9999";
|
||||
enum NetRoleType net_role = CLIENT;//SERVER
|
||||
enum IpType ip_type = IPV4;
|
||||
AdapterDeviceConnect(adapter, net_role, ip, port, ip_type);
|
||||
|
||||
printf("ready to test data transfer\n");
|
||||
|
||||
PrivTaskDelay(2000);
|
||||
len = strlen(ethernet_msg);
|
||||
for (i = 0;i < 10; i ++) {
|
||||
printf("AdapterEthernetTest send %s\n", ethernet_msg);
|
||||
|
@ -117,8 +117,13 @@ int AdapterEthernetTest(void)
|
|||
printf("AdapterEthernetTest recv %s\n", ethernet_recv_msg);
|
||||
memset(ethernet_recv_msg, 0, 128);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#ifdef ADD_RTTHREAD_FETURES
|
||||
MSH_CMD_EXPORT(AdapterEthernetTest,a ethernet adpter sample);
|
||||
#elif definded ADD_XIZI_FETURES
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, AdapterEthernetTest, AdapterEthernetTest, show adapter ethernet information);
|
||||
#endif
|
||||
|
|
|
@ -29,5 +29,7 @@ if ADD_NUTTX_FETURES
|
|||
endif
|
||||
|
||||
if ADD_RTTHREAD_FETURES
|
||||
|
||||
config ADAPTER_HFA21_DRIVER
|
||||
string "HFA21 device uart driver path"
|
||||
default "/dev/uart3"
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
from building import *
|
||||
import os
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
src = []
|
||||
if GetDepend(['ADAPTER_HFA21_ETHERNET']):
|
||||
src += ['hfa21_ethernet.c']
|
||||
group = DefineGroup('connection ethernet hfa21', src, depend = [], CPPPATH = [cwd])
|
||||
|
||||
Return('group')
|
|
@ -72,7 +72,7 @@ static int Hfa21EthernetOpen(struct Adapter *adapter)
|
|||
/*step2: init AT agent*/
|
||||
if (!adapter->agent) {
|
||||
char *agent_name = "ethernet_uart_client";
|
||||
if (EOK != InitATAgent(agent_name, adapter->fd, 512)) {
|
||||
if (0 != InitATAgent(agent_name, adapter->fd, 512)) {
|
||||
printf("at agent init failed !\n");
|
||||
return -1;
|
||||
}
|
||||
|
@ -174,13 +174,14 @@ static int Hfa21EthernetSetUp(struct Adapter *adapter)
|
|||
goto __exit;
|
||||
}
|
||||
|
||||
PrivTaskDelay(2000);
|
||||
/*Step4 : FVEW disable WANN function, ethernet work at LANN mode*/
|
||||
ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_DISABLE_WANN_CMD, HFA21_ETHERNET_OK_REPLY);
|
||||
if (ret < 0) {
|
||||
goto __exit;
|
||||
}
|
||||
|
||||
/*Step5 : RELD enable F-AT cmd*/
|
||||
PrivTaskDelay(2000);
|
||||
ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_RELD_CMD, HFA21_ETHERNET_OK_REPLY);
|
||||
if (ret < 0) {
|
||||
goto __exit;
|
||||
|
@ -195,13 +196,13 @@ static int Hfa21EthernetSetUp(struct Adapter *adapter)
|
|||
if (ret < 0) {
|
||||
goto __exit;
|
||||
}
|
||||
|
||||
PrivTaskDelay(2000);
|
||||
/*Step7 : AT+WANN check if get ip、netmask、gateway*/
|
||||
ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_WANN_CMD, HFA21_ETHERNET_OK_REPLY);
|
||||
if (ret < 0) {
|
||||
goto __exit;
|
||||
}
|
||||
|
||||
PrivTaskDelay(2000);
|
||||
/*Step8 : AT+Z reboot hfa21 device*/
|
||||
ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_REBOOT_CMD, HFA21_ETHERNET_OK_REPLY);
|
||||
if (ret < 0) {
|
||||
|
@ -209,7 +210,6 @@ static int Hfa21EthernetSetUp(struct Adapter *adapter)
|
|||
}
|
||||
|
||||
PrivTaskDelay(10000);
|
||||
|
||||
return ret;
|
||||
|
||||
__exit:
|
||||
|
@ -365,6 +365,7 @@ static int Hfa21EthernetConnect(struct Adapter *adapter, enum NetRoleType net_ro
|
|||
}
|
||||
|
||||
adapter->net_role = net_role;
|
||||
PrivTaskDelay(2000);
|
||||
|
||||
/*Step3 : AT+Z reboot hfa21 device*/
|
||||
ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_REBOOT_CMD, HFA21_ETHERNET_OK_REPLY);
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
import os
|
||||
Import('RTT_ROOT')
|
||||
from building import *
|
||||
SOURCES = []
|
||||
if GetDepend(['CONNECTION_ADAPTER_NB']):
|
||||
SOURCES = ['adapter_nbiot.c'] + SOURCES
|
||||
objs = []
|
||||
cwd = GetCurrentDir()
|
||||
path = [cwd]
|
||||
group = DefineGroup('nb', SOURCES, depend = [], CPPPATH = [cwd])
|
||||
objs = objs + group
|
||||
list = os.listdir(cwd)
|
||||
|
||||
for d in list:
|
||||
path = os.path.join(cwd, d)
|
||||
if os.path.isfile(os.path.join(path, 'SConscript')):
|
||||
objs = objs + SConscript(os.path.join(path, 'SConscript'))
|
||||
|
||||
Return('objs')
|
|
@ -25,6 +25,8 @@
|
|||
extern AdapterProductInfoType BC28Attach(struct Adapter *adapter);
|
||||
#endif
|
||||
|
||||
#define ADAPTER_NBIOT_NAME "nbiot"
|
||||
|
||||
static int AdapterNbiotRegister(struct Adapter *adapter)
|
||||
{
|
||||
int ret = 0;
|
||||
|
@ -95,7 +97,13 @@ int opennb(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
// SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, opennb, opennb, show adapter nb information);
|
||||
#ifdef ADD_RTTHREAD_FETURES
|
||||
MSH_CMD_EXPORT(opennb,open nb sample);
|
||||
#endif
|
||||
#ifdef ADD_XIZI_FETURES
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, opennb, opennb, show adapter nb information);
|
||||
#endif
|
||||
|
||||
int closenb(void)
|
||||
{
|
||||
int ret = 0;
|
||||
|
@ -113,7 +121,12 @@ int closenb(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
// SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, closenb, closenb, show adapter nb information);
|
||||
#ifdef ADD_RTTHREAD_FETURES
|
||||
MSH_CMD_EXPORT(closenb,close nb sample);
|
||||
#endif
|
||||
#ifdef ADD_XIZI_FETURES
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, closenb, closenb, show adapter nb information);
|
||||
#endif
|
||||
|
||||
int connectnb(int argc, char *argv[])
|
||||
{
|
||||
|
@ -133,7 +146,12 @@ int closenb(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
// SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(2)|SHELL_CMD_DISABLE_RETURN, connectnb, connectnb, show adapter nb information);
|
||||
#ifdef ADD_RTTHREAD_FETURES
|
||||
MSH_CMD_EXPORT(connectnb,connect nb test);
|
||||
#endif
|
||||
#ifdef ADD_XIZI_FETURES
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(2)|SHELL_CMD_DISABLE_RETURN, connectnb, connectnb, show adapter nb information);
|
||||
#endif
|
||||
|
||||
int sendnb(int argc, char *argv[])
|
||||
{
|
||||
|
@ -154,7 +172,12 @@ int closenb(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
// SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(2)|SHELL_CMD_DISABLE_RETURN, sendnb, sendnb, show adapter nb information);
|
||||
#ifdef ADD_RTTHREAD_FETURES
|
||||
MSH_CMD_EXPORT(sendnb,send nb test);
|
||||
#endif
|
||||
#ifdef ADD_XIZI_FETURES
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(2)|SHELL_CMD_DISABLE_RETURN, sendnb, sendnb, show adapter nb information);
|
||||
#endif
|
||||
|
||||
int recvnb(void)
|
||||
{
|
||||
|
@ -167,5 +190,9 @@ int closenb(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
// SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, recvnb, recvnb, show adapter nb information);
|
||||
|
||||
#ifdef ADD_RTTHREAD_FETURES
|
||||
MSH_CMD_EXPORT(recvnb,receive nb test);
|
||||
#endif
|
||||
#ifdef ADD_XIZI_FETURES
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, recvnb, recvnb, show adapter nb information);
|
||||
#endif
|
||||
|
|
|
@ -36,5 +36,13 @@ if ADD_NUTTX_FETURES
|
|||
endif
|
||||
|
||||
if ADD_RTTHREAD_FETURES
|
||||
|
||||
config ADAPTER_BC28_DRIVER
|
||||
string "BC28 device uart driver path"
|
||||
default "/dev/uart2"
|
||||
config ADAPTER_BC28_PIN_DRIVER
|
||||
string "BC28 device pin driver path"
|
||||
default "/dev/pin"
|
||||
config ADAPTER_BC28_RESETPIN
|
||||
string "BC28 RESET pin number"
|
||||
default "100"
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
from building import *
|
||||
import os
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
src = []
|
||||
if GetDepend(['ADAPTER_BC28']):
|
||||
src += ['bc28.c']
|
||||
group = DefineGroup('connection nb bc28', src, depend = [], CPPPATH = [cwd])
|
||||
|
||||
Return('group')
|
|
@ -490,7 +490,7 @@ static int BC28Open(struct Adapter *adapter)
|
|||
/*step2: init AT agent*/
|
||||
if (!adapter->agent) {
|
||||
char *agent_name = "niot_device";
|
||||
if (EOK != InitATAgent(agent_name, adapter->fd, 512)) {
|
||||
if (0 != InitATAgent(agent_name, adapter->fd, 512)) {
|
||||
PrivClose(adapter->fd);
|
||||
PrivMutexDelete(&nbiot_lock);
|
||||
printf("at agent init failed !\n");
|
||||
|
|
|
@ -2,6 +2,7 @@ import os
|
|||
Import('RTT_ROOT')
|
||||
from building import *
|
||||
SOURCES = []
|
||||
if GetDepend(['CONNECTION_ADAPTER_WIFI']):
|
||||
SOURCES = ['adapter_wifi.c'] + SOURCES
|
||||
objs = []
|
||||
cwd = GetCurrentDir()
|
||||
|
|
|
@ -195,3 +195,12 @@ void PrivFree(void *pointer)
|
|||
free(pointer);
|
||||
}
|
||||
|
||||
/*********************kernel**********************/
|
||||
void PrivTaskenterCritical()
|
||||
{
|
||||
rt_enter_critical();
|
||||
}
|
||||
void PrivTaskexitCritical()
|
||||
{
|
||||
rt_exit_critical();
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include <dfs_posix.h>
|
||||
#include <dfs.h>
|
||||
#include<sys/ioctl.h>
|
||||
#include <sys/select.h>
|
||||
#ifdef RT_USING_POSIX_TERMIOS
|
||||
#include <posix_termios.h>
|
||||
#endif
|
||||
|
@ -60,7 +61,7 @@
|
|||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef signed char bool;
|
||||
typedef signed char int8;
|
||||
typedef signed short int16;
|
||||
typedef signed int int32;
|
||||
|
@ -96,6 +97,9 @@ typedef unsigned long long uint64;
|
|||
#define SERIAL_RB_BUFSZ 128
|
||||
#endif
|
||||
|
||||
#define TRUE (1)
|
||||
#define FALSE (0)
|
||||
|
||||
struct PinDevIrq
|
||||
{
|
||||
int irq_mode;//< RISING/FALLING/HIGH/LOW
|
||||
|
@ -197,6 +201,13 @@ void *PrivCalloc(size_t count, size_t size);
|
|||
void PrivFree(void *pointer);
|
||||
|
||||
|
||||
|
||||
/*********************kernel**********************/
|
||||
void PrivTaskenterCritical();
|
||||
void PrivTaskexitCritical();
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -25,14 +25,12 @@ CONFIG_RT_USING_HOOK=y
|
|||
CONFIG_RT_USING_IDLE_HOOK=y
|
||||
CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
|
||||
CONFIG_IDLE_THREAD_STACK_SIZE=256
|
||||
CONFIG_RT_USING_TIMER_SOFT=y
|
||||
CONFIG_RT_TIMER_THREAD_PRIO=4
|
||||
CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
|
||||
# CONFIG_RT_USING_TIMER_SOFT is not set
|
||||
|
||||
#
|
||||
# kservice optimization
|
||||
#
|
||||
# CONFIG_RT_KSERVICE_USING_STDLIB is not set
|
||||
CONFIG_RT_KSERVICE_USING_STDLIB=y
|
||||
# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
|
||||
# CONFIG_RT_USING_ASM_MEMCPY is not set
|
||||
CONFIG_RT_DEBUG=y
|
||||
|
@ -186,9 +184,7 @@ CONFIG_RT_USING_PIN=y
|
|||
# CONFIG_RT_USING_MTD_NOR is not set
|
||||
# CONFIG_RT_USING_MTD_NAND is not set
|
||||
# CONFIG_RT_USING_PM is not set
|
||||
CONFIG_RT_USING_RTC=y
|
||||
# CONFIG_RT_USING_ALARM is not set
|
||||
# CONFIG_RT_USING_SOFT_RTC is not set
|
||||
# CONFIG_RT_USING_RTC is not set
|
||||
# CONFIG_RT_USING_SDIO is not set
|
||||
CONFIG_RT_USING_SPI=y
|
||||
# CONFIG_RT_USING_QSPI is not set
|
||||
|
@ -284,9 +280,9 @@ CONFIG_SOC_STM32F407ZG=y
|
|||
CONFIG_BSP_USING_GPIO=y
|
||||
CONFIG_BSP_USING_UART=y
|
||||
CONFIG_BSP_USING_UART1=y
|
||||
# CONFIG_BSP_USING_UART2 is not set
|
||||
CONFIG_BSP_USING_UART2=y
|
||||
CONFIG_BSP_USING_UART3=y
|
||||
CONFIG_BSP_USING_UART4=y
|
||||
# CONFIG_BSP_USING_UART4 is not set
|
||||
# CONFIG_BSP_USING_I2C1 is not set
|
||||
# CONFIG_BSP_USING_SPI is not set
|
||||
# CONFIG_BSP_USING_CH438 is not set
|
||||
|
@ -330,12 +326,11 @@ CONFIG_CONNECTION_FRAMEWORK_DEBUG=y
|
|||
# CONFIG_CONNECTION_ADAPTER_4G is not set
|
||||
# CONFIG_CONNECTION_ADAPTER_NB is not set
|
||||
# CONFIG_CONNECTION_ADAPTER_WIFI is not set
|
||||
# CONFIG_CONNECTION_ADAPTER_ETHERNET is not set
|
||||
CONFIG_CONNECTION_ADAPTER_BLUETOOTH=y
|
||||
CONFIG_ADAPTER_HC08=y
|
||||
CONFIG_ADAPTER_BLUETOOTH_HC08="hc08"
|
||||
CONFIG_ADAPTER_HC08_WORK_ROLE="M"
|
||||
CONFIG_ADAPTER_HC08_DRIVER="/dev/uart4"
|
||||
CONFIG_ADAPTER_HFA21_DRIVER="/dev/uart3"
|
||||
CONFIG_CONNECTION_ADAPTER_ETHERNET=y
|
||||
CONFIG_ADAPTER_HFA21_ETHERNET=y
|
||||
CONFIG_ADAPTER_ETHERNET_HFA21="hfa21_ethernet"
|
||||
# CONFIG_CONNECTION_ADAPTER_BLUETOOTH is not set
|
||||
# CONFIG_CONNECTION_ADAPTER_ZIGBEE is not set
|
||||
# CONFIG_CONNECTION_ADAPTER_5G is not set
|
||||
# CONFIG_SUPPORT_KNOWING_FRAMEWORK is not set
|
||||
|
@ -384,6 +379,7 @@ CONFIG_MAIN_KTASK_STACK_SIZE=1024
|
|||
#
|
||||
# CONFIG_APPLICATION_SENSOR is not set
|
||||
# CONFIG_USING_EMBEDDED_DATABASE_APP is not set
|
||||
# CONFIG_APP_USING_WEBNET is not set
|
||||
|
||||
#
|
||||
# lib
|
||||
|
|
|
@ -21,12 +21,10 @@
|
|||
#define RT_USING_IDLE_HOOK
|
||||
#define RT_IDLE_HOOK_LIST_SIZE 4
|
||||
#define IDLE_THREAD_STACK_SIZE 256
|
||||
#define RT_USING_TIMER_SOFT
|
||||
#define RT_TIMER_THREAD_PRIO 4
|
||||
#define RT_TIMER_THREAD_STACK_SIZE 512
|
||||
|
||||
/* kservice optimization */
|
||||
|
||||
#define RT_KSERVICE_USING_STDLIB
|
||||
#define RT_DEBUG
|
||||
#define RT_DEBUG_COLOR
|
||||
|
||||
|
@ -123,7 +121,6 @@
|
|||
#define RT_USING_I2C
|
||||
#define RT_USING_I2C_BITOPS
|
||||
#define RT_USING_PIN
|
||||
#define RT_USING_RTC
|
||||
#define RT_USING_SPI
|
||||
#define RT_USING_SPI_MSD
|
||||
#define RT_USING_SFUD
|
||||
|
@ -174,8 +171,8 @@
|
|||
#define BSP_USING_GPIO
|
||||
#define BSP_USING_UART
|
||||
#define BSP_USING_UART1
|
||||
#define BSP_USING_UART2
|
||||
#define BSP_USING_UART3
|
||||
#define BSP_USING_UART4
|
||||
#define BSP_USING_USB
|
||||
#define BSP_USING_STM32_USBH
|
||||
#define USB_BUS_NAME "usb"
|
||||
|
@ -196,11 +193,10 @@
|
|||
#define ADD_RTTHREAD_FETURES
|
||||
#define SUPPORT_CONNECTION_FRAMEWORK
|
||||
#define CONNECTION_FRAMEWORK_DEBUG
|
||||
#define CONNECTION_ADAPTER_BLUETOOTH
|
||||
#define ADAPTER_HC08
|
||||
#define ADAPTER_BLUETOOTH_HC08 "hc08"
|
||||
#define ADAPTER_HC08_WORK_ROLE "M"
|
||||
#define ADAPTER_HC08_DRIVER "/dev/uart4"
|
||||
#define ADAPTER_HFA21_DRIVER "/dev/uart3"
|
||||
#define CONNECTION_ADAPTER_ETHERNET
|
||||
#define ADAPTER_HFA21_ETHERNET
|
||||
#define ADAPTER_ETHERNET_HFA21 "hfa21_ethernet"
|
||||
|
||||
/* Security */
|
||||
|
||||
|
|
|
@ -87,6 +87,17 @@ static const struct WdtDevDone dev_done =
|
|||
NONE,
|
||||
};
|
||||
|
||||
/**
|
||||
* @description: Watchdog function
|
||||
* @return success: EOK, failure: other
|
||||
*/
|
||||
int StartWatchdog(void)
|
||||
{
|
||||
//add feed watchdog task function
|
||||
|
||||
return EOK;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function Watchdog initialization
|
||||
*
|
||||
|
|
|
@ -65,6 +65,17 @@ static const struct WdtDevDone dev_done =
|
|||
NONE,
|
||||
};
|
||||
|
||||
/**
|
||||
* @description: Watchdog function
|
||||
* @return success: EOK, failure: other
|
||||
*/
|
||||
int StartWatchdog(void)
|
||||
{
|
||||
//add feed watchdog task function
|
||||
|
||||
return EOK;
|
||||
}
|
||||
|
||||
int HwWdtInit(void)
|
||||
{
|
||||
wdt_device_number_t id;
|
||||
|
|
|
@ -118,6 +118,7 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf
|
|||
|
||||
struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev;
|
||||
struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data;
|
||||
struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data;
|
||||
|
||||
// config serial receive sem timeout
|
||||
dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout;
|
||||
|
|
|
@ -119,6 +119,7 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf
|
|||
|
||||
struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev;
|
||||
struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data;
|
||||
struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data;
|
||||
|
||||
// config serial receive sem timeout
|
||||
dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout;
|
||||
|
|
|
@ -66,6 +66,17 @@ static const struct WdtDevDone dev_done =
|
|||
NONE,
|
||||
};
|
||||
|
||||
/**
|
||||
* @description: Watchdog function
|
||||
* @return success: EOK, failure: other
|
||||
*/
|
||||
int StartWatchdog(void)
|
||||
{
|
||||
//add feed watchdog task function
|
||||
|
||||
return EOK;
|
||||
}
|
||||
|
||||
int HwWdtInit(void)
|
||||
{
|
||||
wdt_device_number_t id;
|
||||
|
|
|
@ -66,6 +66,17 @@ static const struct WdtDevDone dev_done =
|
|||
NONE,
|
||||
};
|
||||
|
||||
/**
|
||||
* @description: Watchdog function
|
||||
* @return success: EOK, failure: other
|
||||
*/
|
||||
int StartWatchdog(void)
|
||||
{
|
||||
//add feed watchdog task function
|
||||
|
||||
return EOK;
|
||||
}
|
||||
|
||||
int HwWdtInit(void)
|
||||
{
|
||||
wdt_device_number_t id;
|
||||
|
|
|
@ -86,6 +86,17 @@ static const struct WdtDevDone dev_done =
|
|||
NONE,
|
||||
};
|
||||
|
||||
/**
|
||||
* @description: Watchdog function
|
||||
* @return success: EOK, failure: other
|
||||
*/
|
||||
int StartWatchdog(void)
|
||||
{
|
||||
//add feed watchdog task function
|
||||
|
||||
return EOK;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function Watchdog initialization
|
||||
*
|
||||
|
|
|
@ -1027,15 +1027,15 @@ static uint32 ImxrtCh438ReadData(void *dev, struct BusBlockReadParam *read_param
|
|||
if (EOK == result) {
|
||||
gInterruptStatus = ReadCH438Data(REG_SSR_ADDR);
|
||||
if (!gInterruptStatus) {
|
||||
// dat = ReadCH438Data(REG_LCR0_ADDR);
|
||||
// dat = ReadCH438Data(REG_IER0_ADDR);
|
||||
// dat = ReadCH438Data(REG_MCR0_ADDR);
|
||||
// dat = ReadCH438Data(REG_LSR0_ADDR);
|
||||
// dat = ReadCH438Data(REG_MSR0_ADDR);
|
||||
// dat = ReadCH438Data(REG_RBR0_ADDR);
|
||||
// dat = ReadCH438Data(REG_THR0_ADDR);
|
||||
// dat = ReadCH438Data(REG_IIR0_ADDR);
|
||||
// dat = dat;
|
||||
dat = ReadCH438Data(REG_LCR0_ADDR);
|
||||
dat = ReadCH438Data(REG_IER0_ADDR);
|
||||
dat = ReadCH438Data(REG_MCR0_ADDR);
|
||||
dat = ReadCH438Data(REG_LSR0_ADDR);
|
||||
dat = ReadCH438Data(REG_MSR0_ADDR);
|
||||
dat = ReadCH438Data(REG_RBR0_ADDR);
|
||||
dat = ReadCH438Data(REG_THR0_ADDR);
|
||||
dat = ReadCH438Data(REG_IIR0_ADDR);
|
||||
dat = dat;
|
||||
interrupt_done = 0;
|
||||
} else {
|
||||
if (gInterruptStatus & interrupt_num[dev_param->ext_uart_no]) { /* check which uart port triggers interrupt*/
|
||||
|
@ -1053,17 +1053,26 @@ static uint32 ImxrtCh438ReadData(void *dev, struct BusBlockReadParam *read_param
|
|||
|
||||
InterruptStatus = ReadCH438Data( REG_IIR_ADDR ) & 0x0f; /* read the status of the uart port*/
|
||||
|
||||
if ((INT_RCV_OVERTIME == InterruptStatus) || (INT_RCV_SUCCESS == InterruptStatus)) {
|
||||
switch( InterruptStatus )
|
||||
{
|
||||
case INT_NOINT: /* NO INTERRUPT */
|
||||
break;
|
||||
case INT_THR_EMPTY: /* THR EMPTY INTERRUPT */
|
||||
break;
|
||||
case INT_RCV_OVERTIME: /* RECV OVERTIME INTERRUPT */
|
||||
case INT_RCV_SUCCESS: /* RECV INTERRUPT SUCCESSFULLY */
|
||||
rcv_num = Ch438UartRcv(dev_param->ext_uart_no, (uint8 *)read_param->buffer, read_param->size);
|
||||
read_param->read_length = rcv_num;
|
||||
|
||||
interrupt_done = 1;
|
||||
|
||||
// int i;
|
||||
// uint8 *buffer = (uint8 *)read_param->buffer;
|
||||
// for (i = 0; i < rcv_num; i ++) {
|
||||
// KPrintf("Ch438UartRcv i %u data 0x%x\n", i, buffer[i]);
|
||||
// }
|
||||
break;
|
||||
case INT_RCV_LINES: /* RECV LINES INTERRUPT */
|
||||
ReadCH438Data( REG_LSR_ADDR );
|
||||
break;
|
||||
case INT_MODEM_CHANGE: /* MODEM CHANGE INTERRUPT */
|
||||
ReadCH438Data( REG_MSR_ADDR );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1094,6 +1094,21 @@ void BOARD_InitUartPins(void)
|
|||
IOMUXC_GPIO_AD_B1_03_LPUART2_RX,
|
||||
0x10B0u);
|
||||
#endif
|
||||
|
||||
#ifdef BSP_USING_LPUART8
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AD_B1_10_LPUART8_TX,
|
||||
0U);
|
||||
IOMUXC_SetPinMux(
|
||||
IOMUXC_GPIO_AD_B1_11_LPUART8_RX,
|
||||
0U);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AD_B1_10_LPUART8_TX,
|
||||
0x10B0u);
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AD_B1_11_LPUART8_RX,
|
||||
0x10B0u);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* FUNCTION ************************************************************************************************************
|
||||
|
@ -1191,30 +1206,6 @@ void BOARD_InitPins(void)
|
|||
Pull Up / Down Config. Field: 100K Ohm Pull Up
|
||||
Hyst. Enable Field: Hysteresis Disabled */
|
||||
|
||||
#if UART_DEBUG
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AD_B0_12_LPUART1_TX, /* GPIO_AD_B0_12 PAD functional properties : */
|
||||
0x10B0u); /* Slew Rate Field: Slow Slew Rate
|
||||
Drive Strength Field: R0/6
|
||||
Speed Field: medium(100MHz)
|
||||
Open Drain Enable Field: Open Drain Disabled
|
||||
Pull / Keep Enable Field: Pull/Keeper Enabled
|
||||
Pull / Keep Select Field: Keeper
|
||||
Pull Up / Down Config. Field: 100K Ohm Pull Down
|
||||
Hyst. Enable Field: Hysteresis Disabled */
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_AD_B0_13_LPUART1_RX, /* GPIO_AD_B0_13 PAD functional properties : */
|
||||
0x10B0u); /* Slew Rate Field: Slow Slew Rate
|
||||
Drive Strength Field: R0/6
|
||||
Speed Field: medium(100MHz)
|
||||
Open Drain Enable Field: Open Drain Disabled
|
||||
Pull / Keep Enable Field: Pull/Keeper Enabled
|
||||
Pull / Keep Select Field: Keeper
|
||||
Pull Up / Down Config. Field: 100K Ohm Pull Down
|
||||
Hyst. Enable Field: Hysteresis Disabled */
|
||||
|
||||
#endif
|
||||
|
||||
IOMUXC_SetPinConfig(
|
||||
IOMUXC_GPIO_B1_04_ENET_RX_DATA00, /* GPIO_B1_04 PAD functional properties : */
|
||||
0xB0E9u); /* Slew Rate Field: Fast Slew Rate
|
||||
|
@ -1317,8 +1308,6 @@ void BOARD_InitPins(void)
|
|||
Hyst. Enable Field: Hysteresis Disabled */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***********************************************************************************************************************
|
||||
* EOF
|
||||
**********************************************************************************************************************/
|
||||
|
|
|
@ -27,3 +27,18 @@ if BSP_USING_LPUART2
|
|||
string "serial bus 2 device name"
|
||||
default "uart2_dev2"
|
||||
endif
|
||||
|
||||
config BSP_USING_LPUART8
|
||||
bool "Enable LPUART8"
|
||||
default n
|
||||
if BSP_USING_LPUART8
|
||||
config SERIAL_BUS_NAME_8
|
||||
string "serial bus 8 name"
|
||||
default "uart8"
|
||||
config SERIAL_DRV_NAME_8
|
||||
string "serial bus 8 driver name"
|
||||
default "uart8_drv"
|
||||
config SERIAL_8_DEVICE_NAME_0
|
||||
string "serial bus 8 device name"
|
||||
default "uart8_dev8"
|
||||
endif
|
||||
|
|
|
@ -66,6 +66,23 @@ void LPUART2_IRQHandler(int irqn, void *arg)
|
|||
DECLARE_HW_IRQ(UART2_IRQn, LPUART2_IRQHandler, NONE);
|
||||
#endif
|
||||
|
||||
#ifdef BSP_USING_LPUART8
|
||||
struct SerialBus serial_bus_8;
|
||||
struct SerialDriver serial_driver_8;
|
||||
struct SerialHardwareDevice serial_device_8;
|
||||
|
||||
void LPUART8_IRQHandler(int irqn, void *arg)
|
||||
{
|
||||
|
||||
DisableIRQ(LPUART8_IRQn);
|
||||
|
||||
UartIsr(&serial_bus_8, &serial_driver_8, &serial_device_8);
|
||||
EnableIRQ(LPUART8_IRQn);
|
||||
|
||||
}
|
||||
DECLARE_HW_IRQ(LPUART8_IRQn, LPUART8_IRQHandler, NONE);
|
||||
#endif
|
||||
|
||||
static void SerialCfgParamCheck(struct SerialCfgParam *serial_cfg_default, struct SerialCfgParam *serial_cfg_new)
|
||||
{
|
||||
struct SerialDataCfg *data_cfg_default = &serial_cfg_default->data_cfg;
|
||||
|
@ -426,5 +443,38 @@ int Imxrt1052HwUartInit(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef BSP_USING_LPUART8
|
||||
static struct SerialCfgParam serial_cfg_8;
|
||||
memset(&serial_cfg_8, 0, sizeof(struct SerialCfgParam));
|
||||
|
||||
static struct SerialDevParam serial_dev_param_8;
|
||||
memset(&serial_dev_param_8, 0, sizeof(struct SerialDevParam));
|
||||
|
||||
serial_driver_8.drv_done = &drv_done;
|
||||
serial_driver_8.configure = &SerialDrvConfigure;
|
||||
serial_device_8.hwdev_done = &hwdev_done;
|
||||
|
||||
serial_cfg_8.data_cfg = data_cfg_init;
|
||||
|
||||
serial_cfg_8.hw_cfg.private_data = (void *)LPUART8;
|
||||
serial_cfg_8.hw_cfg.serial_irq_interrupt = LPUART8_IRQn;
|
||||
serial_driver_8.private_data = (void *)&serial_cfg_8;
|
||||
|
||||
serial_dev_param_8.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
serial_device_8.haldev.private_data = (void *)&serial_dev_param_8;
|
||||
|
||||
ret = BoardSerialBusInit(&serial_bus_8, &serial_driver_8, SERIAL_BUS_NAME_8, SERIAL_DRV_NAME_8);
|
||||
if (EOK != ret) {
|
||||
KPrintf("Imxrt1052HwUartInit uart error ret %u\n", ret);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
ret = BoardSerialDevBend(&serial_device_8, (void *)&serial_cfg_8, SERIAL_BUS_NAME_8, SERIAL_8_DEVICE_NAME_0);
|
||||
if (EOK != ret) {
|
||||
KPrintf("Imxrt1052HwUartInit uart error ret %u\n", ret);
|
||||
return ERROR;
|
||||
}
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -24,31 +24,31 @@ void PollAdd(WaitQueueType *wq, pollreqType *req)
|
|||
}
|
||||
|
||||
|
||||
struct rt_poll_node;
|
||||
struct poll_node;
|
||||
|
||||
struct rt_poll_table
|
||||
struct poll_table
|
||||
{
|
||||
pollreqType req;
|
||||
uint32 triggered;
|
||||
KTaskDescriptorType polling_thread;
|
||||
struct rt_poll_node *nodes;
|
||||
struct poll_node *nodes;
|
||||
};
|
||||
|
||||
struct rt_poll_node
|
||||
struct poll_node
|
||||
{
|
||||
struct WaitqueueNode wqn;
|
||||
struct rt_poll_table *pt;
|
||||
struct rt_poll_node *next;
|
||||
struct poll_table *pt;
|
||||
struct poll_node *next;
|
||||
};
|
||||
|
||||
static int WqueuePollWake(struct WaitqueueNode *wait, void *key)
|
||||
{
|
||||
struct rt_poll_node *pn;
|
||||
struct poll_node *pn;
|
||||
|
||||
if (key && !((x_ubase)key & wait->key))
|
||||
return -1;
|
||||
|
||||
pn =CONTAINER_OF(wait, struct rt_poll_node, wqn);
|
||||
pn =CONTAINER_OF(wait, struct poll_node, wqn);
|
||||
pn->pt->triggered = 1;
|
||||
|
||||
return 0;
|
||||
|
@ -56,14 +56,14 @@ static int WqueuePollWake(struct WaitqueueNode *wait, void *key)
|
|||
|
||||
static void _poll_add(WaitQueueType *wq, pollreqType *req)
|
||||
{
|
||||
struct rt_poll_table *pt;
|
||||
struct rt_poll_node *node;
|
||||
struct poll_table *pt;
|
||||
struct poll_node *node;
|
||||
|
||||
node = (struct rt_poll_node *)x_malloc(sizeof(struct rt_poll_node));
|
||||
node = (struct poll_node *)x_malloc(sizeof(struct poll_node));
|
||||
if (node == NONE)
|
||||
return;
|
||||
|
||||
pt =CONTAINER_OF(req, struct rt_poll_table, req);
|
||||
pt =CONTAINER_OF(req, struct poll_table, req);
|
||||
|
||||
node->wqn.key = req->_key;
|
||||
InitDoubleLinkList(&(node->wqn.list));
|
||||
|
@ -77,7 +77,7 @@ static void _poll_add(WaitQueueType *wq, pollreqType *req)
|
|||
|
||||
|
||||
|
||||
static int PollWaitTimeout(struct rt_poll_table *pt, int msec)
|
||||
static int PollWaitTimeout(struct poll_table *pt, int msec)
|
||||
{
|
||||
int32 timeout;
|
||||
int ret = 0;
|
||||
|
@ -135,7 +135,7 @@ static int DoPollFd(struct pollfd *pollfd, pollreqType *req)
|
|||
return mask;
|
||||
}
|
||||
|
||||
static int PollDo(struct pollfd *fds, NfdsType nfds, struct rt_poll_table *pt, int msec)
|
||||
static int PollDo(struct pollfd *fds, NfdsType nfds, struct poll_table *pt, int msec)
|
||||
{
|
||||
int num;
|
||||
int istimeout = 0;
|
||||
|
@ -175,8 +175,8 @@ static int PollDo(struct pollfd *fds, NfdsType nfds, struct rt_poll_table *pt, i
|
|||
int poll(struct pollfd *fds, NfdsType nfds, int timeout)
|
||||
{
|
||||
int num;
|
||||
struct rt_poll_table table;
|
||||
struct rt_poll_node *node, *temp;
|
||||
struct poll_table table;
|
||||
struct poll_node *node, *temp;
|
||||
|
||||
table.req._proc = _poll_add;
|
||||
table.triggered = 0;
|
||||
|
|
|
@ -31,10 +31,6 @@
|
|||
#include "connect_usb.h"
|
||||
#endif
|
||||
|
||||
#ifdef BSP_USING_WDT
|
||||
#include "connect_wdt.h"
|
||||
#endif
|
||||
|
||||
#ifdef KERNEL_USER_MAIN
|
||||
#ifndef MAIN_KTASK_STACK_SIZE
|
||||
#define MAIN_KTASK_STACK_SIZE 2048
|
||||
|
@ -44,6 +40,10 @@
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef BSP_USING_WDT
|
||||
extern int StartWatchdog(void);
|
||||
#endif
|
||||
|
||||
extern void CreateKServiceKTask(void);
|
||||
extern int main(void);
|
||||
void InitBoardHardware(void);
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
*/
|
||||
|
||||
#ifndef __SYS_ARCH__
|
||||
#define __SYS_ATCH__
|
||||
#define __SYS_ARCH__
|
||||
|
||||
#include <lwip/opt.h>
|
||||
#include <lwip/arch.h>
|
||||
|
|
Loading…
Reference in New Issue