出出啊
出出啊
It is Not the Mountain We Conquer, but Ourselves

注册于 6 months ago

回答
902
文章
19
关注者
55

先看大佬的文章
https://club.rt-thread.org/ask/article/2864.html

RT-Thread Studio插件使用详解
目前该插件尚不支持新建工程,我们先用RT-Studio新建工程,这里小飞哥直接使用falling-star board配套的例程

大佬也说不支持新建

是你给了个超过 0x7FFFFFFF 的定时时间

或者就是个随机数。

贴一下启动定时器部分的代码吧。

串口接收丢失数据的提问论坛上有很多,请参考我写的系列文章以及我回答的几个提问。

这里回答里,通过降波特率解决了丢数的问题。
https://club.rt-thread.org/ask/question/432449.html

在我写的文章里也提到了几种方案,比如不用信号量和消息队列,使用原子类型的 flag 等等。
减少关中断可能是个比较系统级的了,但是我还是那个观点,关中断优化是势在必行的。

缺 hal 文件吧。_HAL_Driver\Src\stm32f4xx_hal_eth.c
还有就是,xxx_hal_conf.h 里面打开#define HAL_ETH_MODULE_ENABLED 这个宏了吗?

没有定义,要么没有添加实现的源码,要么没有找到头文件定义。

__set_MSP(StackAddr); /* 设置主栈指针 */
    /* 函数指针赋值 */
    jumo_to_app = (_jumo_to_app)ResetVector;
    HAL_DeInit();
    jumo_to_app();

set msp 应该在jumo_to_app前边吧。

void WFI_SET(void)
{
    __asm volatile( "wfi" );
}
 
void INTX_DISABLE(void)
{
    __asm volatile
    ( 
        "cpsid   i     \n" 
        "bx      lr    \n"
    );
}

void INTX_ENABLE(void)
{
    __asm volatile
    ( 
        "cpsie   i     \n" 
        "bx      lr    \n"
    );
    
}

void MSR_MSP(u32 addr)
{
    __asm volatile
    (
        "msr psp, r0    \n"
        "bx r14         \n"
    );
}

试试这个。

使用 env 不需要另外安装 git py ,没怀疑过 env 的 git py 和你电脑上安装的 git py 冲突吗?

先把电脑上安装的 git 环境卸载掉试试。还有自己单独安装的 python。

两张图是什么意思?麻烦详细说一下。左边是单片机和 EC200 之间的数据?
右边是单片机和电脑调试打印的输出?
左边的数据你是怎么打印输出的?

如果实际可行,降低波特率使用。在低波特率下测试一下什么情况

不看前边的,最后这个错误,明显告诉我们,你的系统内存被污染了,有内存溢出的地方。某些内存数据被非法写坏了。
极有可能是数据传输给界面线程时出错了。鉴于代码太多,一时难看出来是哪儿内存溢出了。

如果内存还充足,先把各个线程栈翻倍。

write_listdata_dis 函数调用了仨操作链表的函数 find_data_list change_data_list write_data_list ,虽然三个函数内部都有关中断保护,但是在这仨函数之间切换时没有中断保护。这是很危险的。
刚开始判断链表非空,后面俩函数没有判断链表是否空。

定时器发送 sem 刷新部分,用 mdelay 替换到定时器也是可以的

在线程里,数据保护,没必要使用关中断,用 rt_enter_criticalrt_exit_critical 进入临界区代替比较好。

find_data_list 中比较两条数据的时间,比较的是第一条,还是上一条?

那个链接的问题是下载不了,你这个下载成功,但是 reset 失败。试试下面的方法。
在 debug configration 中将 reset mode 默认的“hardware reset”改为“system reset”

目测没有这个文件,和 board.c 同目录创建个文本文件修改一下,或者 IDE 里有新建文件,选好路径
这个头文件里主要定义使用的芯片的片上 flash 内存等容量,包含芯片 bsp 头文件等和芯片紧密相关的东西。
可以参考其它项目里的 board.h 文件。

为扩展用的,不一定是有效的,比如 F4 的 hal 只有 1和2,没有1.5。当你需要的时候可以扩展,也可以自己改,目前 3 4 这俩没有实际应用意义

图二,adc.c 好像是排除编译状态啊,取消排除状态就好了

试试这个 https://club.rt-thread.org/ask/question/431961.html

回到
顶部

发布
问题

投诉
建议