recan
recan
http://yyds.recan-li.cn 一个专注于嵌入式软件架构设计的新生代农名工

注册于 5 months ago

回答
212
文章
2
关注者
3

"编译提示脚本不能运行"?
这个具体的错误信息是什么?
这里的脚本指的是python脚本?
我猜测可能是“rn”换行的问题,
导致没能正常解析出脚本。

哗,使用O3可是优化级别好高哦,对代码的编写要求也比较高;
曾经遇到过,编写的代码使用O2/Os就没什么问题,
一旦使用O3,虽然体积一下子就小很多,但是都会出现一些逻辑问题;
所以一味地提高优化也不是个办法。
看楼主提到flash空间不够,考虑使用Os编译优化级别,
优化优化代码,使其满足flash的size大小。

这么多的编译问题,很有可能是组件与RRT系统版本之间的兼容性问题?

rt-thread设备维护云,是个什么东西?
感觉没有看到这块的资料?😂

有定位到是哪个接口,哪一行报错了吗?
错误值是3,应该有含义,参考下其头文件。

看编译提示信息,应该是RT_SENSOR_VENDOR_MAXIM函数没有申明;
如果是采用这种注册回调的机制,应该是要你自己实现这个函数的,
类似linux的标准驱动实现那样,一个结构体里面的各种操作接口,
都需要被实现,才能完成编译、链接,以及实现驱动的功能。
这个max30102我觉得也应该是类似。

感觉你的问题参考 链接附带的那个问题的解决方法是可以解决的。😂

类似于keil的IDE,就是即便你的本地目录有这个目录,
也需要在工程目录里面新建这个文件夹,然后手动添加文件进来,
否则也会出现你图中这种情况,明明本地有文件夹,但是工程目录却看不到。
RT-Thread Studio这个IDE使用的不多,不知道是不是也是类似keil这样?
你可以一试。

ESP32跟STM32,在处理域名解析的AT指令上,是完全兼容的吗?
我看你的图片,这个是AT发出去压根没有响应回复:
image.png

根据你的题干,
我认为:刷卡和刷脸并不是同时进行的,与这两个线程是否需要同时进行,
没有什么必然的联系。
这个主要看你的两个线程里面是干嘛的,是常驻线程(一旦创建了就不退出,一直运行)还是单次线程(执行完某个动作就退出)。
搞清楚这个,再来评估刷脸和刷卡有没有“同步”关系,就是说线程之间需不需要同步机制(类似使用互斥锁、信号量等手段)来维持。
解决这个问题,还是需要从你的应用场景的功能需求出发。

看报错的信息是说找不到指定lib库文件,
可能是没有将搜索库文件的路径添加进来?
如果是gcc命令编译的话,是可以通过在LDFLAGS增加-Lxxx来配置的,
其中xxx为库文件所在的路径,可以是绝对路径,也可以是相对路径。
keil编译环境也有类似的地方配置这个路径,网上找找看,如何配置。

看下是不是没有指定头文件的搜索路劲?
如果是gcc编译环境的话,需要再CFLAGS添加-Ixxx,
其中xxx为头文件所在的目录,可以是绝对路劲,也可以实相对路径。

对mbedtls了解过一些,看能否帮助你解决。

这是rt_thread_create的接口原型,可以参考文档: 线程应用示例

rt_thread_t rt_thread_create(const char *name,
                             void (*entry)(void *parameter),
                             void       *parameter,
                             rt_uint32_t stack_size,
                             rt_uint8_t  priority,
                             rt_uint32_t tick);

按照你的需求,你是想把p指针传递给任务入口,
那么调用方式应该是:

tid1 = rt_thread_create("thread1", thread1_entry, p, THREAD_STACK_SIZE,
                            THREAD_PRIORITY, THREAD_TIMESLICE);

这种方式需要特别注意的是,p必须是一个全局有效的指针,比如不能传递一个局部变量的地址(栈空间,退出就销毁的)进去。

回到
顶部

发布
问题

投诉
建议