增加rtk process栈空间
重写decode部分 根据观测值数量分配rtkpos所需内存
This commit is contained in:
parent
ee1f95ef51
commit
c5a5c396f1
22
.config
22
.config
@ -17,7 +17,9 @@ CONFIG_RT_USING_HOOK=y
|
||||
CONFIG_RT_USING_IDLE_HOOK=y
|
||||
CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
|
||||
CONFIG_IDLE_THREAD_STACK_SIZE=1024
|
||||
# CONFIG_RT_USING_TIMER_SOFT is not set
|
||||
CONFIG_RT_USING_TIMER_SOFT=y
|
||||
CONFIG_RT_TIMER_THREAD_PRIO=4
|
||||
CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
|
||||
|
||||
#
|
||||
# kservice optimization
|
||||
@ -289,11 +291,7 @@ CONFIG_ULOG_OUTPUT_LVL=7
|
||||
CONFIG_ULOG_USING_ISR_LOG=y
|
||||
CONFIG_ULOG_ASSERT_ENABLE=y
|
||||
CONFIG_ULOG_LINE_BUF_SIZE=128
|
||||
CONFIG_ULOG_USING_ASYNC_OUTPUT=y
|
||||
CONFIG_ULOG_ASYNC_OUTPUT_BUF_SIZE=2048
|
||||
CONFIG_ULOG_ASYNC_OUTPUT_BY_THREAD=y
|
||||
CONFIG_ULOG_ASYNC_OUTPUT_THREAD_STACK=1024
|
||||
CONFIG_ULOG_ASYNC_OUTPUT_THREAD_PRIORITY=30
|
||||
# CONFIG_ULOG_USING_ASYNC_OUTPUT is not set
|
||||
|
||||
#
|
||||
# log format
|
||||
@ -568,16 +566,6 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y
|
||||
# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
|
||||
# end of enhanced kernel services
|
||||
|
||||
#
|
||||
# POSIX extension functions
|
||||
#
|
||||
# CONFIG_PKG_USING_POSIX_GETLINE is not set
|
||||
# CONFIG_PKG_USING_POSIX_WCWIDTH is not set
|
||||
# CONFIG_PKG_USING_POSIX_ITOA is not set
|
||||
# CONFIG_PKG_USING_POSIX_STRINGS is not set
|
||||
# CONFIG_PKG_USING_POSIX_CTYPES is not set
|
||||
# end of POSIX extension functions
|
||||
|
||||
#
|
||||
# acceleration: Assembly language or algorithmic acceleration packages
|
||||
#
|
||||
@ -605,7 +593,6 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y
|
||||
# CONFIG_PKG_USING_UC_MODBUS is not set
|
||||
# end of Micrium: Micrium software products porting for RT-Thread
|
||||
|
||||
# CONFIG_PKG_USING_RTDUINO is not set
|
||||
# CONFIG_PKG_USING_CAIRO is not set
|
||||
# CONFIG_PKG_USING_PIXMAN is not set
|
||||
# CONFIG_PKG_USING_PARTITION is not set
|
||||
@ -791,7 +778,6 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y
|
||||
# CONFIG_PKG_USING_UPARAM is not set
|
||||
# CONFIG_PKG_USING_HELLO is not set
|
||||
# CONFIG_PKG_USING_VI is not set
|
||||
# CONFIG_PKG_USING_KI is not set
|
||||
# CONFIG_PKG_USING_ARMv7M_DWT is not set
|
||||
# CONFIG_PKG_USING_UKAL is not set
|
||||
# CONFIG_PKG_USING_CRCLIB is not set
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -41,3 +41,4 @@ settings/
|
||||
*.uvguix*
|
||||
|
||||
/Release/
|
||||
/makefile.targets
|
||||
|
Binary file not shown.
@ -5,7 +5,7 @@
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="38926886275555880" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-738239081739022212" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
@ -16,7 +16,7 @@
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="11935337743060155" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-765230630271517937" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
@ -355,7 +355,7 @@ int decoderaw(rtksvr_t *svr, int index)
|
||||
nav_t *nav;
|
||||
// sbsmsg_t *sbsmsg=NULL;
|
||||
int i, ret, ephsat, ephset, fobs = 0;
|
||||
rtksvrlock(svr);
|
||||
// todo rtksvrlock(svr);
|
||||
|
||||
for (i = 0; i < svr->nb[index]; i++)
|
||||
{
|
||||
@ -404,7 +404,7 @@ int decoderaw(rtksvr_t *svr, int index)
|
||||
}
|
||||
svr->nb[index] = 0;
|
||||
|
||||
rtksvrunlock(svr);
|
||||
// rtksvrunlock(svr);
|
||||
|
||||
return fobs;
|
||||
}
|
||||
|
@ -40,23 +40,10 @@ int main(void)
|
||||
|
||||
}
|
||||
}
|
||||
struct test{
|
||||
int a;
|
||||
int b;
|
||||
int *a_p;
|
||||
int *b_p;
|
||||
}test,* test_p;
|
||||
|
||||
void test_entry()
|
||||
{
|
||||
// const char testbuff[] = {0xD3,0x00,0x13,0x3E,0xD7,0xD3,0x02,0x02,0x98,0x0E,0xDE,0xEF,0x34,0xB4,0xBD,0x62,0xAC,0x09,0x41,0x98,0x6F,0x33,0x36,0x0B,0x98};
|
||||
// rt_device_write(serial3,0,testbuff,sizeof(testbuff));
|
||||
// LOG_I("rtksvr_t size= %d",sizeof(rtksvr_t));
|
||||
test.a=1;
|
||||
test.b=2;
|
||||
test.a_p=&test.a;
|
||||
test.b_p=&test.b;
|
||||
test_p = &test;
|
||||
LOG_I("%d",&test_p->a);
|
||||
|
||||
|
||||
}
|
||||
MSH_CMD_EXPORT(test_entry,test_entry);
|
||||
|
@ -15,6 +15,9 @@
|
||||
#define RT_USING_IDLE_HOOK
|
||||
#define RT_IDLE_HOOK_LIST_SIZE 4
|
||||
#define IDLE_THREAD_STACK_SIZE 1024
|
||||
#define RT_USING_TIMER_SOFT
|
||||
#define RT_TIMER_THREAD_PRIO 4
|
||||
#define RT_TIMER_THREAD_STACK_SIZE 512
|
||||
|
||||
/* kservice optimization */
|
||||
|
||||
@ -183,11 +186,6 @@
|
||||
#define ULOG_USING_ISR_LOG
|
||||
#define ULOG_ASSERT_ENABLE
|
||||
#define ULOG_LINE_BUF_SIZE 128
|
||||
#define ULOG_USING_ASYNC_OUTPUT
|
||||
#define ULOG_ASYNC_OUTPUT_BUF_SIZE 2048
|
||||
#define ULOG_ASYNC_OUTPUT_BY_THREAD
|
||||
#define ULOG_ASYNC_OUTPUT_THREAD_STACK 1024
|
||||
#define ULOG_ASYNC_OUTPUT_THREAD_PRIORITY 30
|
||||
|
||||
/* log format */
|
||||
|
||||
|
148
task/rtk_task.c
148
task/rtk_task.c
@ -34,26 +34,49 @@ static char thread_user_rtcm_data_stack[get_rtcm_user_data_stack_size];
|
||||
static struct rt_thread get_ref_rtcm_data;
|
||||
static char thread_ref_rtcm_data_stack[get_rtcm_ref_data_stack_size];
|
||||
|
||||
|
||||
struct rt_mutex userf_svrlock;
|
||||
rtksvr_t *svr; /* rtk server struct */
|
||||
//serial3 -->user serial_rtcm_buff[0][]
|
||||
//serial6 -->ref serial_rtcm_buff[1][]
|
||||
|
||||
char buff[8000];
|
||||
static void thread_get_ref_rtcm_data(void *parameter)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
rt_completion_wait(&rtcm_ref_data_process_completion, RT_WAITING_FOREVER);
|
||||
|
||||
//to make sure there is only one sem exist at uart,keep data from being damaged by dma transmit.
|
||||
//rt thread could not get uart status when it receiving data.
|
||||
//it may cross frame lost if the system runs slow.
|
||||
if (rt_sem_take(&uart6_simpack.rx_sem, RT_WAITING_FOREVER) == RT_EOK) //need a completion sem connect to rtcm data processing thread.
|
||||
{
|
||||
if (rt_completion_wait(&rtcm_ref_data_process_completion, RT_WAITING_NO) == RT_EOK)
|
||||
{
|
||||
READ_SERIAL6(svr->buff[1]);
|
||||
|
||||
// READ_SERIAL6(buff);
|
||||
svr->nb[1] = uart6_simpack.rx_num;
|
||||
rt_event_send(&uart_event, EVENT_REF_RTCM_DATA_FLAG);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (uart6_simpack.rx_num != 0)
|
||||
{
|
||||
char *drop = rt_malloc(uart6_simpack.rx_num);
|
||||
if (drop == RT_NULL)
|
||||
{
|
||||
LOG_E("heap not enough for thread_get_ref_rtcm_data");
|
||||
}
|
||||
else
|
||||
{
|
||||
READ_SERIAL6(drop);
|
||||
rt_free(drop);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,16 +85,36 @@ static void thread_get_user_rtcm_data(void *parameter)
|
||||
|
||||
while (1)
|
||||
{
|
||||
rt_completion_wait(&rtcm_user_data_process_completion, RT_WAITING_FOREVER);
|
||||
//to make sure there is only one sem exist at uart,keep data from being damaged by dma transmit.
|
||||
//rt thread could not get uart status when it receiving data.
|
||||
//it may cross frame lost if the system runs slow.
|
||||
if (rt_sem_take(&uart3_simpack.rx_sem, RT_WAITING_FOREVER) == RT_EOK) //need a completion sem connect to rtcm data processing thread.
|
||||
{
|
||||
if (rt_completion_wait(&rtcm_user_data_process_completion, RT_WAITING_NO) == RT_EOK)
|
||||
{
|
||||
READ_SERIAL3(svr->buff[0]);
|
||||
svr->nb[0] = uart3_simpack.rx_num;
|
||||
rt_event_send(&uart_event, EVENT_UAER_RTCM_DATA_FLAG);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (uart3_simpack.rx_num != 0)
|
||||
{
|
||||
char *drop = rt_malloc(uart3_simpack.rx_num);
|
||||
if (drop == RT_NULL)
|
||||
{
|
||||
LOG_E("heap not enough for thread_get_user_rtcm_data");
|
||||
}
|
||||
else
|
||||
{
|
||||
READ_SERIAL3(drop);
|
||||
rt_free(drop);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -84,12 +127,12 @@ static int nmeacycle = 5000; /* nmea request cycle (ms) */
|
||||
static int nmeareq = 0; /* nmea request type (0:off,1:lat/lon,2:single) */
|
||||
extern prcopt_t prcopt_;
|
||||
extern solopt_t solopt_;
|
||||
static obsd_t data[MAXOBS * 2]; /* 7616 B */
|
||||
//static obsd_t data[MAXOBS * 2]; /* 7616 B */
|
||||
static void thread_rtk_proces(void *parameter)
|
||||
{
|
||||
double pos[3] = { 0.0, 0.0, 0.0 }, npos[3] = { 0.0, 0.0, 0.0 };
|
||||
static double nmeapos[] = { 0, 0, 0 };
|
||||
|
||||
uint32_t recevd_event = 0;
|
||||
svr = (rtksvr_t *) rt_malloc(sizeof(rtksvr_t));
|
||||
if (svr == RT_NULL)
|
||||
{
|
||||
@ -118,12 +161,11 @@ static void thread_rtk_proces(void *parameter)
|
||||
double tt;
|
||||
uint32_t tick, ticknmea, tick1hz, tickreset;
|
||||
uint8_t *p, *q;
|
||||
int i, j, n = 0, fobs[2] = { 0 }, cycle, cputime=0;
|
||||
uint8_t nr, nu;
|
||||
int n = 0, fobs[2] = { 0 }, cycle, cputime = 0;
|
||||
|
||||
svr->state = 1;
|
||||
obs.data = data;
|
||||
// obs.data = (obsd_t *)rt_malloc(sizeof(obsd_t)*MAXOBS*2);
|
||||
// obs.data = data;
|
||||
|
||||
svr->tick = tickget();
|
||||
ticknmea = tick1hz = svr->tick - 1000;
|
||||
tickreset = svr->tick - 30000;
|
||||
@ -141,44 +183,79 @@ static void thread_rtk_proces(void *parameter)
|
||||
{
|
||||
|
||||
tick = tickget();
|
||||
uint32_t recevd_event = 0;
|
||||
|
||||
rt_event_recv(&uart_event, (EVENT_UAER_RTCM_DATA_FLAG | EVENT_REF_RTCM_DATA_FLAG),
|
||||
(RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR), RT_WAITING_FOREVER, &recevd_event);
|
||||
if (recevd_event & EVENT_UAER_RTCM_DATA_FLAG || recevd_event & EVENT_REF_RTCM_DATA_FLAG)
|
||||
{
|
||||
if (recevd_event & EVENT_UAER_RTCM_DATA_FLAG)
|
||||
{
|
||||
fobs[0] = decoderaw(svr, 0);
|
||||
rt_completion_done(&rtcm_user_data_process_completion);
|
||||
}
|
||||
else if (recevd_event & EVENT_REF_RTCM_DATA_FLAG)
|
||||
if (recevd_event & EVENT_REF_RTCM_DATA_FLAG)
|
||||
{
|
||||
fobs[1] = decoderaw(svr, 1);
|
||||
rt_completion_done(&rtcm_ref_data_process_completion);
|
||||
}
|
||||
else {
|
||||
}
|
||||
else
|
||||
{
|
||||
// rt_thread_sleep(5);
|
||||
continue;
|
||||
}
|
||||
|
||||
uint8_t nr = 0;
|
||||
uint8_t nu = 0;
|
||||
|
||||
/* 将基准站和移动站的观测数据合二为一 这里重新申请了一个MAXOBS*2 的数组, 我觉得是不是有点问题? */
|
||||
for (i = 0; i < fobs[0]; i++)
|
||||
{
|
||||
obs.n = 0;
|
||||
nr = nu = 0;
|
||||
for (j = 0; j < svr->obs[0][i].n && obs.n < MAXOBS * 2; j++)
|
||||
|
||||
for (int i = 0; i < fobs[0]; i++)
|
||||
{
|
||||
for (int j = 0; j < svr->obs[0][i].n; j++)
|
||||
{
|
||||
obs.data[obs.n++] = svr->obs[0][i].data[j];
|
||||
nu++;
|
||||
}
|
||||
|
||||
for (j = 0; j < svr->obs[1][i].n && obs.n < MAXOBS * 2; j++)
|
||||
}
|
||||
for (int i = 0; i < fobs[1]; i++)
|
||||
{
|
||||
for (int j = 0; j < svr->obs[1][i].n; j++)
|
||||
{
|
||||
obs.data[obs.n++] = svr->obs[1][0].data[j];
|
||||
nr++;
|
||||
}
|
||||
/* rtk positioning */
|
||||
rtksvrlock(svr);
|
||||
rtkpos(&svr->rtk, obs.data, obs.n, &svr->nav);
|
||||
rtksvrunlock(svr);
|
||||
}
|
||||
nu = (nu > MAXOBS) ? MAXOBS : nu;
|
||||
nr = (nr > MAXOBS * 2 - nu) ? (MAXOBS * 2) - nr : nr;
|
||||
if (nu + nr == 0)
|
||||
{
|
||||
// rt_thread_mdelay(5);
|
||||
continue;
|
||||
}
|
||||
obs.data = (obsd_t *) rt_malloc(sizeof(obsd_t) * (nu + nr));
|
||||
obs.n = 0;
|
||||
for (int i = 0; i < fobs[0]; i++)
|
||||
{
|
||||
for (int j = 0; j < svr->obs[0][i].n && obs.n < nu; j++)
|
||||
{
|
||||
obs.data[obs.n++] = svr->obs[0][i].data[j];
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < fobs[1]; i++)
|
||||
{
|
||||
for (int j = 0; j < svr->obs[1][i].n && obs.n < nu + nr; j++)
|
||||
{
|
||||
obs.data[obs.n++] = svr->obs[1][i].data[j];
|
||||
}
|
||||
}
|
||||
|
||||
/* rtk positioning */
|
||||
// rtksvrlock(svr);
|
||||
rtkpos(&svr->rtk, obs.data, obs.n, &svr->nav);
|
||||
|
||||
// rtksvrunlock(svr);
|
||||
rt_free(obs.data);
|
||||
obs.data = RT_NULL;
|
||||
/* 如果解算结果有效, 设置解算时间点 */
|
||||
if (svr->rtk.sol.stat != SOLQ_NONE)
|
||||
{
|
||||
@ -190,11 +267,10 @@ static void thread_rtk_proces(void *parameter)
|
||||
// writesol_mini(svr, i);
|
||||
}
|
||||
/* 如果设定的运算时间到了发现还没有计算完, 则记录没有计算完的观测次数 */
|
||||
if ((int) (tickget() - tick) >= svr->cycle)
|
||||
{
|
||||
svr->prcout += fobs[0] - i - 1;
|
||||
}
|
||||
}
|
||||
// if ((int) (tickget() - tick) >= svr->cycle)
|
||||
// {
|
||||
// svr->prcout += fobs[0] - i - 1;
|
||||
// }
|
||||
/* send null solution if no solution (1hz) */
|
||||
if (svr->rtk.sol.stat == SOLQ_NONE && (int) (tick - tick1hz) >= 1000)
|
||||
{
|
||||
@ -213,9 +289,10 @@ static void thread_rtk_proces(void *parameter)
|
||||
svr->cputime = cputime;
|
||||
|
||||
/* sleep until next cycle */
|
||||
sleepms(15);
|
||||
|
||||
}
|
||||
}
|
||||
sleepms(1);
|
||||
}
|
||||
|
||||
static void user_init_task(rt_thread_t thread, const char *name, void (*entry)(void *parameter), void *stack_start,
|
||||
@ -242,21 +319,20 @@ void task_init(void)
|
||||
{
|
||||
|
||||
rt_event_init(&uart_event, "uart_event", RT_IPC_FLAG_PRIO);
|
||||
rt_mutex_init(&userf_svrlock,"svrlock",RT_IPC_FLAG_PRIO);
|
||||
rt_mutex_init(&userf_svrlock, "svrlock", RT_IPC_FLAG_PRIO);
|
||||
rt_completion_init(&rtcm_user_data_process_completion);
|
||||
rt_completion_init(&rtcm_ref_data_process_completion);
|
||||
|
||||
rt_thread_t trd=rt_thread_create("rtk_proces", thread_rtk_proces, RT_NULL, 3000, thread_rtk_proces_priority, DEFAULT_USER_THREA_TICK);
|
||||
rt_thread_t trd = rt_thread_create("rtk_proces", thread_rtk_proces, RT_NULL, 8000, thread_rtk_proces_priority,
|
||||
DEFAULT_USER_THREA_TICK);
|
||||
rt_thread_startup(trd);
|
||||
user_init_task(&get_user_rtcm_data, "thread_get_user_rtcm_data", thread_get_user_rtcm_data,
|
||||
thread_user_rtcm_data_stack,
|
||||
get_rtcm_user_data_stack_size, THREAD_get_user_rtcm_data_priority, DEFAULT_USER_THREA_TICK, RT_TRUE);
|
||||
user_init_task(&get_ref_rtcm_data, "thread_get_ref_rtcm_data", thread_get_ref_rtcm_data,
|
||||
thread_ref_rtcm_data_stack,
|
||||
user_init_task(&get_ref_rtcm_data, "thread_get_ref_rtcm_data", thread_get_ref_rtcm_data, thread_ref_rtcm_data_stack,
|
||||
get_rtcm_ref_data_stack_size, THREAD_get_ref_rtcm_data_priority, DEFAULT_USER_THREA_TICK, RT_TRUE);
|
||||
// user_init_task(&rtk_proces, "rtk_proces", thread_rtk_proces, thread_rtk_proces_stack,
|
||||
// rtk_proces_stack_size, thread_rtk_proces_priority, DEFAULT_USER_THREA_TICK, RT_TRUE);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -24,9 +24,9 @@
|
||||
|
||||
|
||||
extern struct rt_mutex userf_svrlock;
|
||||
struct rt_mutex userf_svrlock;
|
||||
#define rtksvrlock(svr) rt_mutex_take(&userf_svrlock,RT_WAITING_FOREVER)
|
||||
#define rtksvrunlock(svr) rt_mutex_release(&userf_svrlock)
|
||||
//struct rt_mutex userf_svrlock;
|
||||
//#define rtksvrlock(svr) rt_mutex_take(&userf_svrlock,RT_WAITING_FOREVER)
|
||||
//#define rtksvrunlock(svr) rt_mutex_release(&userf_svrlock)
|
||||
|
||||
extern uart_simpack uart3_simpack; //from user_uart.h
|
||||
extern uart_simpack uart6_simpack; //from user_uart.h
|
||||
|
@ -38,7 +38,7 @@ rt_device_t uart3_init(void)
|
||||
config.baud_rate = BAUD_RATE_460800; //修改波特率为 460800
|
||||
config.data_bits = DATA_BITS_8; //数据位 8
|
||||
config.stop_bits = STOP_BITS_1; //停止位 1
|
||||
config.bufsz = 4096; //修改缓冲区 buff size 为 2048
|
||||
config.bufsz = 8000; //修改缓冲区 buff size 为 2048
|
||||
config.parity = PARITY_NONE; //无奇偶校验位
|
||||
rt_device_control(serial3, RT_DEVICE_CTRL_CONFIG, &config);
|
||||
if (rt_device_set_rx_indicate(serial3, uart3_rx_complete) != RT_EOK)
|
||||
@ -64,10 +64,10 @@ rt_device_t uart6_init(void)
|
||||
LOG_E("could not find device: %s", USER_UART6_NAME);
|
||||
return RT_NULL;
|
||||
}
|
||||
config.baud_rate = BAUD_RATE_460800; //修改波特率为 460800
|
||||
config.baud_rate = BAUD_RATE_115200; //修改波特率为 460800
|
||||
config.data_bits = DATA_BITS_8; //数据位 8
|
||||
config.stop_bits = STOP_BITS_1; //停止位 1
|
||||
config.bufsz = 4096; //修改缓冲区 buff size 为 2048
|
||||
config.bufsz = 8000; //修改缓冲区 buff size 为 2048
|
||||
config.parity = PARITY_NONE; //无奇偶校验位
|
||||
rt_device_control(serial6, RT_DEVICE_CTRL_CONFIG, &config);
|
||||
if (rt_device_set_rx_indicate(serial6, uart6_rx_complete) != RT_EOK)
|
||||
|
@ -19,7 +19,7 @@
|
||||
#define USER_UART6_NAME "uart6"
|
||||
|
||||
#define READ_SERIAL3(...) rt_device_read(serial3,0,__VA_ARGS__,uart3_simpack.rx_num)
|
||||
#define READ_SERIAL6(...) rt_device_read(serial6,0,__VA_ARGS__,uart3_simpack.rx_num)
|
||||
#define READ_SERIAL6(...) rt_device_read(serial6,0,__VA_ARGS__,uart6_simpack.rx_num)
|
||||
|
||||
rt_device_t serial3;
|
||||
rt_device_t serial6;
|
||||
|
Loading…
x
Reference in New Issue
Block a user