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

注册于 6 months ago

回答
863
文章
18
关注者
53

这种错误,不一定是当前线程有问题,有可能是其它线程,或者其它地方引起的。或者把这个线程的栈非法写坏了,或者把这个线程使用的其它内存非法写坏了,导致这个线程的代码运行不按照正常流程走了。

代码中可能有数组溢出,野指针之类的操作。

目前的缺陷,除了正常情况,其它情况还没有考虑全面,没有考虑线程被意外唤醒的情况。

ipc 里往往只考虑了超时和正常两种情况。因为这个,就限制了一个线程不能被另外一个线程随意挂起和唤醒。
因此,少了很多应用逻辑的可能性。

image.png

这个是硬件 MD5 校验,如果芯片支持,可以启用这个。

image.png

这个是软件包,启用这个配置就能用了

别用 keil 下载的,到 gitee 上下载 release 版本。
目测,你这个确实是没有 mem.c 文件。

settings 里至少启用一个 sdio。1或者2 你用的哪个启用哪个

你自己的配置问题吧,让大家看看你怎么添加串口2的,怎么配置的,怎么初始化打开它的

这个可能是 JS_MODULE 这个宏定义语法问题,现在看不了源码,可能是这个宏展开 小括号不匹配了

放心,小问题,仅仅两个未定义而已,上面的文件里添加stddef.h头文件包含先

这种事儿以后会很常见,慢慢来

umqtt_ex_start 里添加调试信息,调试一下因为什么退出了,试试重新执行一下命令,还能不能连接上服务器。

程序跑飞了。可能性极高。这可能比 hard fault 还难排查

目测,是内核源码没下载成功,或者解压失败了。用 studio 就是,这么多尴尬。
重新选择内核版本,或者切换一下内核版本,倒腾两次切换回来试试。

我们知道,芯片的 GPIO 分组往往是从 PA 开始,往后依次是 PB PC PD PE ... PZ。往往的,每组端口或者是 16bit 或者是 8bit (分别对应 16 个 IO 和 8 个 IO)。下面给出 GET_PIN 的简化公式:

16bit 是 (X - A) * 16 + n

A10 就是 10.
C9 就是 2*16+9=41.
H1 就是 7*16+1=113.

8bit 是 (X - A) * 8 + n

这个公式别忘啊,别忘了

写日志,不需要总 seek 吧。文本文件不支持seek,没处理好会出问题的。
写文本文件默认要么擦了写,要么 append。
这个,可能去掉 seek 也就好了。

印象中,这个问题解决了啊。添加 m 函数库

回到
顶部

发布
问题

投诉
建议