aichip-sai
aichip-sai
This guy hasn't written anything yet

注册于 2 years ago

回答
2
文章
0
关注者
0

riscv gdb watchpoints 不能使用watch cond(如watch 变量==10),请问是不是哪里没设置对?

您好,sophia!
请问您这边怎么解决的这个问题?

zhangjun 发表于 2019-8-19 10:03
你手动调用abourt?还是不知道为什么就到了abort函数?


不知道为什么进去的

aichip-sai 发表于 2019-8-15 11:29
您好!hang挂住,发生在AT+CIPSEND指令后,rtt os挂住了,此时必定在esp8266待接收数据状态。用log跟踪到 ...


补充:之前用额BSP是K210 双核,开启了RT_USING_SMP功能,现在取消此选项,卡住的问题没有出现了,感觉多核SMP下void rt_schedule(void)有问题啊!还望rtt有关同事协助解决一下,因为我们自己的芯片将会是4核risc-v架构的)

    本帖最后由 aichip-sai 于 2019-8-15 11:31 编辑


Cheney_Chen 发表于 2019-8-14 10:14
我这边测试,IoT-Board 开发板,官方 BSP,at_device 软件包 2.0.0 版本,github 最新 RT-Thread 系统, ...

您好!hang挂住,发生在AT+CIPSEND指令后,rtt os挂住了,此时必定在esp8266待接收数据状态。用log跟踪到了at client.c 中的at_obj_exec_cmd函数中的rt_sem_take处,奇怪的是打印信息长度不同,结果不一样。

hang住的情况:
rt_kprintf("socket send start\n");
if (rt_sem_take(client->resp_notice, resp->timeout) != RT_EOK)

没hang住的情况:
rt_kprintf("socket send start%d\n", resp->timeout);
if (rt_sem_take(client->resp_notice, resp->timeout) != RT_EOK)
给人感觉像是线程调度出了问题!!!

Cheney_Chen 发表于 2019-8-9 14:06
1. bind 可以绑定 INADDR_ANY 地址,INADDR_ANY 地址即为默认网卡地址
2. 目前 at device 中没有实现作为 ...


后面会有server版本发布吗?

1565147588(1).png
at 组件重启时常出现上图控制台打印信息卡住了,这可能是什么原因?感觉cpu死掉了,加了看门狗能重启!

来一颗糖 发表于 2019-8-6 08:59
serial_thread_entry 是怎么实现的?


/* 接收数据的线程*/
static void serial_thread_entry(void *parameter)
{
char ch,i=0;
char str_arr[11] = {0};
while (1)
{
/* 从串口读取一个字节的数据, 没有读取到则等待接收信号量*/
while (rt_device_read(serial, -1, &ch, 1) != 1)
{
/* 阻塞等待接收信号量, 等到信号量后再次读取数据*/
rt_sem_take(&rx_sem, RT_WAITING_FOREVER);
}
/* 读取到的数据通过串口错位输出*/
// ch = ch + 1;
str_arr[i++] = ch;
if( i == 11 )
{
rt_device_write(serial, 0, str_arr, 11);
i=0;
}
}
}

Cheney_Chen 发表于 2019-8-5 10:09
根据楼主的现象和日志可以知道,一般 AT 模块在数据接收时都需要一定时间处理,在此数据接收时间中的一些命 ...


嗯,已经过此步骤测试,模组确实存在延时回复

zhangjun 发表于 2019-8-1 16:09
那是属于bsp的,不是属于系统的接口


ok

flyboy 发表于 2019-8-1 17:53
看完之后,没看出来你要问的问题是什么?


呵呵,是AT socket 调用send tcp发送等待时间很长,时间达到了80ms以上

zhangjun 发表于 2019-8-1 09:45
1,楼主用的是rtt? rtt系统是没有uart_irq_register这个函数的。


rtt里有的,在K210 uart.c中有这个函数

shell上观察,上面有每个任务cpu id的信息

#define RT_USING_SMP 配置了,
list_thread后只能看到main是core_id = 1,
其它线程用的都是0,请问这是怎么回事?
需要调用register_core1函数吗?在创建线程时?
谢谢!

回到
顶部

发布
问题

投诉
建议