更新 #define ROOT_PATH "/sd/debuglog" //设置保存路径
alarmer.c 添加定时启动时的sem timerIsReady(); cfg.c 更新 set_cfg逻辑 及 updateAllSysCfg main.c 清理 updateAllSysCfg 待完善,有bug
This commit is contained in:
parent
1c3826c35d
commit
8050a35073
@ -1,4 +1 @@
|
||||
setCommWindow 概率性崩溃,疑似与写入配置有关
|
||||
setCommWindow 崩溃,疑似传参不对
|
||||
|
||||
写入log到文件采用独立线程,避免错误
|
||||
rtc 容易导致程序崩溃
|
@ -76,6 +76,7 @@ void pdTT_callback(rt_alarm_t alarm, time_t timestamp)
|
||||
void poTT2_callback(rt_alarm_t alarm, time_t timestamp)
|
||||
{
|
||||
LOG_I("power UP TT by INTERVAL RTC");
|
||||
timerIsReady();
|
||||
initTT();
|
||||
}
|
||||
//每个开窗设置对应两个rtc闹钟,一个上电一个下电
|
||||
@ -85,7 +86,7 @@ static struct rt_alarm *alarm[4+1];//支持2组开窗共4个闹钟,加一个
|
||||
void InitAlarm()
|
||||
{
|
||||
struct rt_alarm_setup setup;
|
||||
time_t now;
|
||||
static time_t now;
|
||||
struct tm p_tm;
|
||||
/* 获取当前时间戳,并把下一秒时间设置为闹钟时间 */
|
||||
now = time(NULL);
|
||||
@ -184,7 +185,7 @@ void updateAlarm(uint8_t *t, size_t len)
|
||||
// rt_alarm_delete(alarm[0]); //
|
||||
// }
|
||||
// alarm[0] = rt_alarm_create(poTT_callback, &setup);
|
||||
rt_alarm_control(alarm[0], RT_ALARM_CTRL_MODIFY, (void *)&setup);
|
||||
rt_alarm_control(alarm[0], RT_ALARM_CTRL_MODIFY, &setup);
|
||||
|
||||
setup.wktime.tm_hour = t[2]; //开窗1闭合点
|
||||
setup.wktime.tm_min = t[3]; //开窗1开启点
|
||||
@ -291,7 +292,7 @@ int isInWindowZone()
|
||||
|
||||
if (isIn1 || isIn2)
|
||||
{
|
||||
LOG_D("is in window zone.");
|
||||
LOG_I("is in window zone.");
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
|
@ -54,35 +54,25 @@ typedef struct
|
||||
*/
|
||||
int set_cfg(const char *k, long v)
|
||||
{
|
||||
// return;
|
||||
// setLock();
|
||||
|
||||
// if (rt_strcmp(v,"NULL") == 0) {//delete key
|
||||
// v = NULL;
|
||||
//
|
||||
// }
|
||||
// clearLock();
|
||||
int rst = 0;
|
||||
if (v == get_cfg(k)) {
|
||||
LOG_D("nothing needs to change.");
|
||||
// clearLock();
|
||||
return 1;
|
||||
// LOG_D("nothing needs to change.");
|
||||
rst = 1;
|
||||
}
|
||||
else {
|
||||
|
||||
setLock();
|
||||
// int rst = ini_puts("config",k,v,LJW_CFG_FILE_NAME);
|
||||
rst = ini_putl("config", k, v, LJW_CFG_FILE_NAME);
|
||||
clearLock();
|
||||
}
|
||||
setLock();
|
||||
// int rst = ini_puts("config",k,v,LJW_CFG_FILE_NAME);
|
||||
int rst = ini_putl("config", k, v, LJW_CFG_FILE_NAME);
|
||||
if (rst == 1) {
|
||||
|
||||
LOG_I("set value success.");
|
||||
|
||||
//以下消息队列通知各线程更新参数
|
||||
// rt_sem_release(cfgUpdate);
|
||||
|
||||
// LOG_I("set value success.");
|
||||
}
|
||||
else {
|
||||
LOG_E("set value fault.");
|
||||
}
|
||||
|
||||
clearLock();
|
||||
return rst;
|
||||
}
|
||||
|
||||
|
@ -32,9 +32,10 @@ static struct rt_event chkSta; //发送条件,含两部分,1-超时或文件
|
||||
|
||||
|
||||
rt_sem_t TTReady= RT_NULL;//天通具备发送状态后 rt_sem_release(TTReady);
|
||||
rt_sem_t cfgUpdate = RT_NULL;
|
||||
rt_sem_t shuntDownTT = RT_NULL;
|
||||
rt_sem_t okTosend = RT_NULL;
|
||||
rt_sem_t cfgUpdate = RT_NULL;//配置文件更新
|
||||
rt_sem_t shuntDownTT = RT_NULL;//关闭TT
|
||||
rt_sem_t okTosend = RT_NULL;//可以发送后续文件
|
||||
rt_sem_t okToreport = RT_NULL;//配置信息ACK
|
||||
static rt_thread_t initThread=RT_NULL;
|
||||
static rt_thread_t deinitThread=RT_NULL;
|
||||
//void TTisReady(void)
|
||||
@ -58,7 +59,7 @@ SYS_CFG scfg={
|
||||
/**
|
||||
* 更新全局参数
|
||||
*/
|
||||
static void updatecfg(void)
|
||||
static void initCfg(void)
|
||||
{
|
||||
|
||||
//无配置文件则新建
|
||||
@ -134,6 +135,9 @@ static void updatecfg(void)
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
close(fd);
|
||||
}
|
||||
|
||||
scfg.maxTTWaitTime = get_cfg("maxTTWaitTime");
|
||||
scfg.maxTTRetryCnt = get_cfg("maxTTRetryCnt");
|
||||
@ -150,41 +154,49 @@ static void updatecfg(void)
|
||||
updateAlarm(scfg.openWindowTime, len);
|
||||
|
||||
LOG_D("cfg updated.");
|
||||
|
||||
}
|
||||
static void updatecfg(void)
|
||||
{
|
||||
//等待更新
|
||||
while(1)
|
||||
{
|
||||
if(rt_sem_take(cfgUpdate, rt_tick_from_millisecond(10*1000)) == RT_EOK)//10s写入一次数据到文件
|
||||
rt_thread_mdelay(10*1000);//10s写入一次数据到文件
|
||||
if(rt_sem_take(cfgUpdate, RT_WAITING_NO) == RT_EOK)
|
||||
{
|
||||
size_t len= sizeof(scfg);
|
||||
updateAllSysCfg(&scfg, len);
|
||||
uint8_t tmp[len];
|
||||
memcpy(tmp,&scfg,len);
|
||||
updateAllSysCfg(tmp, len);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void sysSemInit()
|
||||
{
|
||||
okTosend = rt_sem_create("okTosend", 1, RT_IPC_FLAG_PRIO);//同一时间仅一个线程发送文件
|
||||
cfgUpdate = rt_sem_create("cfgUpdate", 0, RT_IPC_FLAG_PRIO);//更新cfg
|
||||
okTosend = rt_sem_create("okTosend", 0, RT_IPC_FLAG_PRIO);//同一时间仅一个线程发送文件
|
||||
cfgUpdate = rt_sem_create("cfgUpdate", 0, RT_IPC_FLAG_FIFO);//更新cfg
|
||||
shuntDownTT = rt_sem_create("shuntDNTT", 0, RT_IPC_FLAG_PRIO);//关闭TT
|
||||
okToreport = rt_sem_create("reportINFO", 0, RT_IPC_FLAG_FIFO);//关闭TT
|
||||
rt_event_init(&chkSta, "chkSta", RT_IPC_FLAG_PRIO);//检查天通状态
|
||||
// rt_sem_release(cfgUpdate); //上电更新值
|
||||
|
||||
updatecfg();
|
||||
|
||||
initCfg();
|
||||
// void reportINFO();
|
||||
reportINFO();
|
||||
/* 创建 serial 线程 */
|
||||
// rt_thread_t thread = rt_thread_create("updatecfg", updatecfg, RT_NULL, 1024 * 1, 27, 10);
|
||||
// /* 创建成功则启动线程 */
|
||||
// if (thread != RT_NULL)
|
||||
// {
|
||||
// rt_thread_startup(thread);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// LOG_E("thread 'updatecfg' create failure.");
|
||||
// return;
|
||||
// }
|
||||
rt_thread_t thread = rt_thread_create("updatecfg", updatecfg, RT_NULL, 1024 * 1, 27, 10);
|
||||
/* 创建成功则启动线程 */
|
||||
if (thread != RT_NULL)
|
||||
{
|
||||
rt_thread_startup(thread);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_E("thread 'updatecfg' create failure.");
|
||||
return;
|
||||
}
|
||||
|
||||
// LOG_D("sysSemInit DONE.");
|
||||
}
|
||||
@ -210,7 +222,10 @@ void sysEventInit(void)
|
||||
void sysInit(void)
|
||||
{
|
||||
sysSemInit();
|
||||
// sysEventInit();
|
||||
if (isInWindowZone()) {//开机检查是否在开窗区间内,是则给TT开机
|
||||
initTT();
|
||||
setWindowMode();
|
||||
}
|
||||
}
|
||||
//INIT_COMPONENT_EXPORT(sysInit);
|
||||
|
||||
@ -287,8 +302,10 @@ static void upSendFile_thread_entry(void *parameter)
|
||||
clearFileToSend(f->fname);
|
||||
|
||||
// list_thread();
|
||||
rt_sem_release(okTosend);
|
||||
|
||||
}
|
||||
//当前文件处理完后置位
|
||||
rt_sem_release(okTosend);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -343,7 +360,7 @@ void getAndSendFile()
|
||||
return;
|
||||
}
|
||||
|
||||
// rt_sem_release(okTosend);//初始赋值
|
||||
rt_sem_release(okTosend);//初始赋值
|
||||
while(cnt)
|
||||
{
|
||||
int i=0;
|
||||
@ -584,7 +601,7 @@ void deInitTT_thread_entry()
|
||||
// initThread = RT_NULL;
|
||||
|
||||
deinitThread = RT_NULL;
|
||||
list_thread();
|
||||
// list_thread();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -18,7 +18,17 @@
|
||||
extern SYS_CFG scfg;
|
||||
extern int cryptSingleMsg(uint8_t *din, size_t len, uint8_t *dout);
|
||||
extern int pointInPolygon(int polyCorners,float polyX[], float polyY[],float x,float y);
|
||||
void selfTest(void);
|
||||
extern rt_sem_t okToreport;
|
||||
#define CFG_ACK
|
||||
/**
|
||||
* 配置文件后的ack信号
|
||||
*/
|
||||
void ack(void)
|
||||
{
|
||||
#ifdef CFG_ACK
|
||||
rt_sem_release(okToreport);
|
||||
#endif
|
||||
}
|
||||
/**
|
||||
* 将收发数据以ASCII字符形式存入log
|
||||
* @param din 待存储数据
|
||||
@ -86,7 +96,7 @@ void setCommMode(int isTT)
|
||||
scfg.commMode=isTT;
|
||||
rt_sem_release(cfgUpdate);
|
||||
LOG_D("set commMode to %s",isTT?"TT":"BD");
|
||||
selfTest();
|
||||
ack();
|
||||
}
|
||||
|
||||
int getCommMode()
|
||||
@ -214,7 +224,7 @@ void upSend_thread_entry(void* parameter)
|
||||
* @param len 待發送數據的長度
|
||||
* @return
|
||||
*/
|
||||
RT_WEAK int upSend(uint8_t *din, size_t len)
|
||||
int upSend(uint8_t *din, size_t len)
|
||||
{
|
||||
LOG_D("try to upsend to TT.");
|
||||
//return;
|
||||
@ -358,6 +368,7 @@ void setCommWindow(uint8_t *t, size_t len)
|
||||
memcpy(scfg.openWindowTime,t,len);
|
||||
rt_sem_release(cfgUpdate);
|
||||
// LOG_D("updated new CommWindow zone");
|
||||
ack();
|
||||
|
||||
}
|
||||
|
||||
@ -398,7 +409,7 @@ void openWindow(int t)
|
||||
rt_timer_start(timer1);
|
||||
LOG_D("手动开窗完成,%d分钟后自动关窗。",t);
|
||||
}
|
||||
selfTest();
|
||||
ack();
|
||||
|
||||
}
|
||||
/**
|
||||
@ -500,7 +511,7 @@ int reportDepth(uint8_t *din,size_t len)
|
||||
void updateAllSysCfg(uint8_t *cfg, size_t len)
|
||||
{
|
||||
LOG_I("FUNC = update SYSCFG");
|
||||
SYS_CFG ts;
|
||||
// SYS_CFG ts;
|
||||
memcpy(&scfg,cfg,len);
|
||||
//详见SYS_CFG的定义
|
||||
/**
|
||||
@ -519,22 +530,26 @@ void updateAllSysCfg(uint8_t *cfg, size_t len)
|
||||
uint8_t locRepInterval;
|
||||
*/
|
||||
|
||||
set_cfg("sendInterval",scfg.sendInterval);
|
||||
set_cfg("maxTTWaitTime",scfg.maxTTWaitTime);
|
||||
set_cfg("maxTTRetryCnt",scfg.maxTTRetryCnt);
|
||||
set_cfg("minTTPeriCnt",scfg.minTTPeriCnt);
|
||||
set_cfg("minTTsinal",scfg.minTTsinal);
|
||||
set_cfg("timeout",scfg.timeout);
|
||||
int rst=1;
|
||||
rst &= set_cfg("sendInterval",scfg.sendInterval);
|
||||
rst &= set_cfg("maxTTWaitTime",scfg.maxTTWaitTime);
|
||||
rst &= set_cfg("maxTTRetryCnt",scfg.maxTTRetryCnt);
|
||||
rst &= set_cfg("minTTPeriCnt",scfg.minTTPeriCnt);
|
||||
rst &= set_cfg("minTTsinal",scfg.minTTsinal);
|
||||
rst &= set_cfg("timeout",scfg.timeout);
|
||||
|
||||
char tmpstr[20];
|
||||
bytes2str(scfg.openWindowTime, 8, 10, ",", tmpstr);
|
||||
set_cfgs("openWindowTime",tmpstr);
|
||||
|
||||
set_cfg("maxSizePerFile", scfg.maxSizePerFile);
|
||||
set_cfg("commMode",scfg.commMode);
|
||||
set_cfg("selfDesSW",scfg.selfDesSW);
|
||||
set_cfg("locAlert",scfg.locAlert);
|
||||
set_cfg("locRepInterval",scfg.locRepInterval);
|
||||
rst &= set_cfg("maxSizePerFile", scfg.maxSizePerFile);
|
||||
rst &= set_cfg("commMode",scfg.commMode);
|
||||
rst &= set_cfg("selfDesSW",scfg.selfDesSW);
|
||||
rst &= set_cfg("locAlert",scfg.locAlert);
|
||||
rst &= set_cfg("locRepInterval",scfg.locRepInterval);
|
||||
if (rst) {
|
||||
LOG_I("set value success.");
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 上报系统各项工作参数
|
||||
@ -646,24 +661,24 @@ int isInFence(uint8_t *loc);
|
||||
* 打包并检测位置数据 默认10s更新一次
|
||||
* @return
|
||||
*/
|
||||
static void reportLoc_thread_entry(void *parameter)
|
||||
void reportLoc_thread_entry(void *parameter)
|
||||
{
|
||||
#define CHECK_INTERVAL 6000
|
||||
size_t i = 0;
|
||||
while (isTCPok())
|
||||
static size_t i = 0;
|
||||
while (1 || isTCPok())
|
||||
{
|
||||
// static size_t i = 0;
|
||||
int isReadyToSendLoc=0;
|
||||
uint8_t rst[200];
|
||||
|
||||
int len = packLocMsg(rst);
|
||||
if (!len) {//无有效位置数据
|
||||
// return;
|
||||
rt_thread_mdelay(500);//添加延时避免死循环卡死线程
|
||||
continue;
|
||||
}
|
||||
|
||||
//检测是否在围栏内
|
||||
if (!isInFence(rst+len-11))//不在围栏内
|
||||
if (len && !isInFence(rst+len-11))//不在围栏内
|
||||
{
|
||||
rst[8]=1;
|
||||
isReadyToSendLoc = 1;
|
||||
@ -680,58 +695,13 @@ static void reportLoc_thread_entry(void *parameter)
|
||||
if (isReadyToSendLoc) {
|
||||
upSend(rst, len);
|
||||
}
|
||||
|
||||
//LOG_D("i=%d s",i*CHECK_INTERVAL/1000);
|
||||
}
|
||||
}
|
||||
|
||||
//创建定时任务,默认时间5分钟,采集发送
|
||||
|
||||
/**
|
||||
* 上报时间到或位置异常时上报
|
||||
*/
|
||||
//static void upSendLoc_thread_entry(void *parameter)
|
||||
//{
|
||||
// while(1)
|
||||
// {
|
||||
// if (rt_sem_take(isReadyToSendLoc, RT_WAITING_FOREVER)) {
|
||||
// uint8_t rst[200];
|
||||
// size_t len = packAndChkLoc(rst);
|
||||
// upSend(rst, len);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
//cb_upSendLoc()
|
||||
//{
|
||||
// if (isTCPok()) {
|
||||
//// packAndSendLoc();
|
||||
// rt_sem_release(isReadyToSendLoc);
|
||||
// }
|
||||
// else {
|
||||
// rt_timer_delete(repLoc);
|
||||
// }
|
||||
//}
|
||||
|
||||
void reportLoc()
|
||||
{
|
||||
// isReadyToSendLoc = rt_sem_create("SendLoc", 0, RT_IPC_FLAG_PRIO);
|
||||
// repLoc = rt_timer_create("repLoc", cb_upSendLoc,
|
||||
// RT_NULL, 10,
|
||||
// RT_TIMER_FLAG_PERIODIC);
|
||||
|
||||
/* 创建 serial 线程 */
|
||||
// rt_thread_t thread = rt_thread_create("sendLoc", upSendLoc_thread_entry, RT_NULL, 1024 * 1, 27, 10);
|
||||
// /* 创建成功则启动线程 */
|
||||
// if (thread != RT_NULL)
|
||||
// {
|
||||
// rt_thread_startup(thread);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// LOG_E("thread 'sendLoc' create failure.");
|
||||
// return;
|
||||
// }
|
||||
rt_thread_t thread = rt_thread_create("RPLoc", reportLoc_thread_entry, RT_NULL, 1024 * 5, 28, 10);
|
||||
rt_thread_t thread = rt_thread_create("RPLoc", reportLoc_thread_entry, RT_NULL, 1024 * 5, 27, 10);
|
||||
/* 创建成功则启动线程 */
|
||||
if (thread != RT_NULL)
|
||||
{
|
||||
@ -764,9 +734,6 @@ int depthAlert(uint8_t *din, int len)
|
||||
// rt_memcpy(dout+10, din, len);//5aa5从第11字节开始,共len个字节
|
||||
// LOG_HEX("depth",16,dout,len+10);
|
||||
// //加密。因加密后数据长度会变化,故不能只加密位置数据。
|
||||
// nlen = cryptSingleMsg(din, len+10, dout);
|
||||
// LOG_HEX("crypt",16,dout,nlen);
|
||||
// LOG_D("位置数据加密完成");
|
||||
// upSend(dout, nlen);
|
||||
|
||||
}
|
||||
@ -908,11 +875,6 @@ void ttRunCMD(uint8_t *din, size_t len)
|
||||
break;
|
||||
case _CFG_COMM_WINDOW:
|
||||
setCommWindow(din+8,din[7]);//只支持两组开窗,开窗时间为小时、分钟,UTC+0
|
||||
|
||||
// char tmpstr[20];
|
||||
// bytes2str(din+8,din[7], 10, ",", tmpstr);
|
||||
// set_cfgs("openWindowTime",tmpstr);
|
||||
|
||||
break;
|
||||
case _CMD_OPEN_WINDOW:
|
||||
openWindow(din[7]?((din[8] << 8) + din[9]):0);//两字节开窗时间
|
||||
@ -1521,7 +1483,35 @@ int isEthUP()
|
||||
}
|
||||
|
||||
|
||||
void reportInfo_thread(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if (rt_sem_take(okToreport, RT_WAITING_FOREVER) == RT_EOK)
|
||||
{
|
||||
LOG_D("send cfg ACK");
|
||||
selfTest();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void reportINFO(void)
|
||||
{
|
||||
/* 创建 serial 线程 */
|
||||
rt_thread_t thread = rt_thread_create("reportINFO", reportInfo_thread, RT_NULL, 1024 * 1, 27, 10);
|
||||
/* 创建成功则启动线程 */
|
||||
if (thread != RT_NULL)
|
||||
{
|
||||
rt_thread_startup(thread);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_E("thread 'updatecfg' create failure.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
//INIT_APP_EXPORT(reportINFO);
|
||||
|
||||
#define FUNC_DEMO
|
||||
|
||||
|
@ -201,9 +201,9 @@ static void rulecheck(void)
|
||||
}
|
||||
if (okCnt >= scfg.minTTPeriCnt) {
|
||||
//TT具备发送条件
|
||||
LOG_I("----");
|
||||
// LOG_I("----");
|
||||
TTIsReady();
|
||||
LOG_I("符合规则,TT具备发送状态。");
|
||||
// LOG_I("符合规则,TT具备发送状态。");
|
||||
okCnt = scfg.minTTPeriCnt -1;
|
||||
}
|
||||
// if (okCnt > minTTPeriCnt) {
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
|
||||
#include <..\rt-thread\components\utilities\ulog\backend\ulog_be.h>
|
||||
|
||||
#include "usrcfg.h"
|
||||
/*
|
||||
* 后端注册表
|
||||
*/
|
||||
@ -34,7 +34,7 @@ typedef enum
|
||||
motion_id,
|
||||
}ulog_file_be_name;
|
||||
|
||||
#define ROOT_PATH "/sd/debuglog" //设置保存路径
|
||||
#define ROOT_PATH ROOT_PATH_DEBUG //设置保存路径
|
||||
#define FILE_SIZE 10*1024 //设置单个文件大小
|
||||
#define BUFF_SIZE 1*1024 //设备缓存区大小
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
// LOG_D("key irq callback");
|
||||
//}
|
||||
|
||||
|
||||
//extern void sysInit(void);
|
||||
|
||||
int main(void)
|
||||
{
|
||||
@ -46,14 +46,14 @@ int main(void)
|
||||
rt_pin_mode(TR485_RE, PIN_MODE_OUTPUT);
|
||||
rt_pin_write(TR485_RE, PIN_LOW);
|
||||
|
||||
//sysSemInit
|
||||
|
||||
sysInit();
|
||||
// sysEventInit();
|
||||
if (isInWindowZone()) {//开机检查是否在开窗区间内,是则给TT开机
|
||||
initTT();
|
||||
setWindowMode();
|
||||
// pwTT_thread_entry("1");
|
||||
}
|
||||
// if (isInWindowZone()) {//开机检查是否在开窗区间内,是则给TT开机
|
||||
// initTT();
|
||||
// setWindowMode();
|
||||
//// pwTT_thread_entry("1");
|
||||
// }
|
||||
|
||||
|
||||
|
||||
@ -78,22 +78,6 @@ int main(void)
|
||||
//fastlz_test -c demo.bin f.bin
|
||||
|
||||
|
||||
//
|
||||
//RT_WEAK void initTT()
|
||||
//{
|
||||
//
|
||||
//}
|
||||
//
|
||||
//RT_WEAK void deInitTT()
|
||||
//{
|
||||
//
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
INIT_APP_EXPORT(main);
|
||||
extern int rt_hw_stm32_eth_init(void);
|
||||
MSH_CMD_EXPORT(rt_hw_stm32_eth_init, 初始化网络。);
|
||||
|
||||
|
@ -158,7 +158,7 @@ static int uart_dma_sample(int argc, char *argv[])
|
||||
#endif
|
||||
|
||||
/* 创建 serial 线程 */
|
||||
rt_thread_t thread = rt_thread_create("RS232", serial_thread_entry, RT_NULL, 1024*10, 25+1, 10);
|
||||
rt_thread_t thread = rt_thread_create("RS232", serial_thread_entry, RT_NULL, 1024*10, 25-1, 10);
|
||||
/* 创建成功则启动线程 */
|
||||
if (thread != RT_NULL)
|
||||
{
|
||||
|
@ -56,8 +56,9 @@ typedef struct
|
||||
|
||||
//struct rt_event sw_check;//软件条件
|
||||
|
||||
#define ROOT_PATH_LOG "/sd/log/"
|
||||
#define ROOT_PATH_DATA "/sd/rxdata/"
|
||||
#define ROOT_PATH_LOG "/sd/log/" //收发数据
|
||||
#define ROOT_PATH_DATA "/sd/cdata/" //缓存数据
|
||||
#define ROOT_PATH_DEBUG "/sd/debug/" //调试日志
|
||||
#define CRYPT_BEFRE_PACK
|
||||
|
||||
#define UPDATE_INTERVAL 10
|
||||
|
Loading…
Reference in New Issue
Block a user