问题标签 [zephyr-rtos]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 在 zephyr 上使用 west build-flash
我有两个相同的 stm32 设备nucleo_l152re,我的目标是在它们之间实现 UART 连接,以便传输和接收数据。
首先,我通过以下方式将它们与电缆连接:
- 从一个设备的 Rx 到另一个设备的 Tx
- 从一个设备的 Tx 到另一个设备的 Rx
- 最后两个 GND 连接。
“任务”是为了传输数据而与哪个user
对话application 1
。application 2
所以我需要实现两个应用程序,一个用于应用程序(1),一个用于应用程序(2)。
我的问题是如何使这项工作?例如,当我将电路板连接到我的电脑时,它只显示一次设备已连接可能正在思考,因为它们具有相同的名称或其他东西。如果我编写一些代码并且需要以哪种方式构建项目,我会知道 file1.c 将转到一个板,而 file2.c 将转到另一个板?因为当我想构建项目并将其闪烁到一块板上时,我正在使用以下命令:
我可以做些什么来实现这一点,就像我在想的那样,或者它是别的东西,或者可能使用上面的那些命令,任务将起作用并且数据将从一个板上传输到另一个板?我有点困惑,我需要帮助吗?是否有任何闪烁或构建选项?
- 我正在使用 Virtual Box 的 linux 操作系统
- 我显然用 zephyr 完成了我的任务
- 我正在用c语言编码。
c - 如何为嵌入式 C 中的传感器定义引脚?
我有一块 Nordic nRF52840DK 板,需要连接到LSM6DSL 加速度计。我正在使用 Zephyr RTOS,Zephyr 的示例代码如下所示:
根据我之前使用 Arduino 的经验,您需要在 main 函数之前定义引脚,但在此代码示例中没有任何引脚定义。所以我的问题是:电路板如何知道连接到传感器时要使用哪些引脚?
提前致谢!
gdb - zephyr 上的 GDB 工具
我正在 zephyr OS 上工作一个项目,我想调试我的代码。有谁知道如何将 GDB 调试工具与 west flash 或 build 一起使用?一般要和zephyr west结合起来才能开始调试。
arm - 将样本闪烁到 stm32 时,目标未停止错误
我有 stm32 nucleo board wb55rg 并且正在尝试将一些示例闪存到其中,例如 blinky 和自定义示例,但是当我尝试在构建项目后将项目闪存到板中时,我遇到了同样的错误(在等待时超时目标暂停),我不知道如何处理它。我在互联网上搜索,我发现了一些关于强迫症的信息,但我不太明白。我没有使用 STMCubeIDE 仅 zephyr 的示例闪烁。任何人都可以帮助我吗?我正在使用 VM box 中的 linux OS 和 zephyr 中的一个简单的闪烁示例。
错误信息
spi - Zephyr RTOS问题中的QSPI片选管脚控制与配置
我正在尝试使用 QSPI 总线访问 Zephyr 中的串行 NOR 闪存。CS(片选)引脚一直保持高电平。选择闪存芯片时应为低电平有效。只是想知道 QSPI CS 是否在 Zephyr 中工作,或者我需要将 CS 引脚配置为 GPIO 并通过我的软件控制它。
有人有 QSPI 的 CS 引脚在 Zephyr 工作吗?我正在使用北欧半导体的 rNF52480。
谢谢,
JC
c - 与 Googleapis.com 的连接被拒绝
我正在 nrf9160 开发套件上开发嵌入式 c 应用程序。
我的目标是使用 googleapis.com/geolocation 服务为我的系统提供位置数据,但我一直无法这样做。
我在谷歌云平台上创建了一个计费账户,创建了一个api密钥,并使用证书颁发机构服务创建并尝试使用各种https证书,但我无法连接。
每当我调用 connect() 函数尝试连接到 googleapis.com 时,都会收到“连接被拒绝”错误。
这是我正在使用的代码:
注意:我已经能够使用特定于这些站点的证书连接到 google.com 和 github.com。
帮助解决此问题将不胜感激。
c - 编译 zephyr shield 示例的问题
我有一个带有 x_nucleo_iks02a1 防护罩的 STM32 lorawan 探索板。我正在尝试运行麦克风示例,但在第 52 行出现错误
我查看了 zephyr.dts 文件并注意到字符串 st_mpxxdtyy 没有列出任何兼容,所以我想这就是失败的原因。我使用的板不是核,但确实具有相同的 arduino 兼容头。我需要把这个屏蔽移植到这个板上吗?
cmake - 提供“west zephyr-export”命令时出现致命错误
我正在设置和安装 Zephyr,并按照 Zephyr 指南的给定说明按照以下步骤操作:入门指南 Zephyr 2.7.0-rc2
第 1 步:安装依赖项 --> 完成
第 2 步:获取 Zephyr 并成功安装 Python 依赖项 [1] 和 [2]。但是在第 [3] 点,如果我应用命令west zephyr-export 会出现以下错误:
我还卸载了 cmake,然后重新安装了步骤:1 [2] 中的所有步骤
请建议我解决方案。
c++ - 无法在 NXP MIMXRT1061 CVL5A 上正常运行
描述错误
我目前正在尝试在配备 MCU 的开发板上运行 Zephyr7.0:NXP MIMXRT1061 CVL5A。我只是编译了一个示例:\samples\basic\blinky,但它无法正确运行。一开始以为是XIP格式的问题导致Zephyr无法正确启动,后来用SWD调试,发现启动正确。但是调用时:/zephyr/arch/arm/core/aarch32/prep_c.c: z_bss_zero(); 功能 Zephyr 出错了
编译过程
我用的板子是mimxrt1060_evk,理论上是没有问题的,因为1061是基于1060的
- west build -p auto -b mimxrt1060_evk .\samples\basic\blinky\
- 西闪
调试过程
第一次调试在 z_interrupt_stacks 被破坏
后来用单步调试,发现Zephyr达到了z_bss_zero
最终我找到了memset函数的问题,当这个函数被调用时,它会陷入死循环,然后我的程序就会崩溃
后来我尝试调试memset函数,发现dest地址在循环过程中没有变化很奇怪,我没有具体说明是gdb问题还是zephyr问题。地址在递增前为 0x80000030,递增后为 0x80000031,重复下一个周期时又变回 0x80000030。
我试图改变 z_bss_zero 函数
改变了尺寸长度
但是我在用gdb调试的时候发现memset里面的while循环不停的超过了3倍,进入了死循环。我推测是这两行代码后递增的代码有问题,因为我每次递增后使用gdb print命令打印变量的值时,变量的值并没有变化
另一个奇怪的地方是,当我使用gdb进行调试时,我发现有一个指针。gdb不会断到这边,而是跳过这段代码执行。我怀疑编译器是否对我这样做。代码优化了吗?
更多细节
当我使用 next 执行 z_bss_zero 时,gdb 将中断到 0xdeadbeee 处的不确定地址。我猜可能是Zephyr在初始化内存时破坏了堆栈。
同时Jlink调试器也输出错误日志
Jlink 输出
以下是Jlink输出的MCU信息,不知道Zephyr是否支持这个版本
我已经努力了7天,仍然无法解决这个问题。我尝试切换Zephyr的版本,也使用平台IO生成elf和bin文件,但都无效。请帮我。非常感谢。
websocket - FastAPI:WebSocket 连接在约 40 秒后关闭
我尝试使用 Zephyr RTOS 的 websocket 库在 FastAPI websocket 端点和客户端之间 ping/pong json 包。不幸的是,FastAPI 服务器在大约 40 秒后关闭了连接。这个时间似乎是恒定的。我的猜测是,由于缺少/错误的条件,必须发生超时事件。
这篇文章似乎解决了我的问题。不幸的是,我的代码没有运行支持--ws-ping-interval 或--ws-ping-timeout 的较新版本的uvicorn。
对于一个简单的测试,我做了以下事情:
服务器端:
客户端(在 Zephyr-RTOS 上运行的 C 代码):
我使用以下软件包版本:
有谁知道为什么连接在 40 秒后中止以及如何避免?