问题标签 [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.
zephyr-rtos - Zephyr OS:使用 DTS phandle 数组初始化多个 GPIO
在我的板上,我有 10 个 LED 连接到不同的 GPIO。在板的 DTS 文件中,所有引脚定义为
在代码中,我有一长串 device_get_binding/gpio_pin_configure
如何使用 UTIL_LISTIFY 以及如何正确描述 DTS 文件中的引脚阵列以使用索引控制 LED?一般来说,我希望有一个类似于 cx1276.c 驱动程序的解决方案,但在用户空间中。
cmake - Zephyr / PlatformIO / CMake / 外部代码
我对 Zephyr 很陌生,在兄弟文件夹中添加和编译代码时遇到了麻烦。使用 PlatformIO 可能会使这更加复杂,它的构建结构与普通的 Zephyr 结构略有不同。
IDE是Windows下的Visual Studio Code
代码结构如下:
我想要做的是将源文件或静态库从ext_library 添加到zephyr_project 而不手动复制源/包含文件或手动构建库并将其复制过来。
到目前为止我已经尝试过:
- 在zephyr_project/zephyr/CMakeList.txt的 FILE(GLOB ...) 命令中添加ext_library的路径。此命令从zephyr_project/source提取源文件,但似乎不喜欢ext_library的相对或静态路径。
- 在编译静态库的ext_library中添加 CMakeList.txt 。这也需要在 zephyr CMakeLists.txt 文件中使用add_subdirectory 。这似乎没有编译库,但是,它似乎找到了ext_library/CMakeLists.txt。这方面的证据在zephyr_project/lib文件夹中,其中包含一些空的 CMake 文件夹,但名称与ext_library/CMakeLists.txt相同。其他证据是正在打印两个 CMakeLists.txt 中的 message(...) 命令。
- 使用ext_library文件夹的静态和相对路径。
- 使用 cmake FILE(COPY ...),文件没有被复制。没有明显的错误。
什么有效:手动将代码从ext_library/source和ext_library/include复制到zephyr_project的适当文件夹中。
附加信息: zephyr_project/zephyr/CMakeLists.txt(原始+尝试将 ext_library 添加为子目录)
ext_library/CMakeLists.txt(CMAKE_CURRENT_SOURCE_DIR 在运行时确实指向正确的目录,已通过删除的 message(...) 日志记录确认)
非常感谢您提供解决此问题的任何建议或提示,奥斯汀
cmake - 我在 cmd 上构建简单的 hello world 应用程序时遇到错误“工具链无法构建虚拟 C 文件”
我在cmd上构建简单的 hello world 应用程序时遇到错误“工具链无法构建虚拟 C 文件” 。我有 Windows 10 64 位机器。我已经按照网站 ( https://docs.zephyrproject.org/1.13.0/getting_started/installation_win.html ) 上的说明为 Windows 安装了所有必要的工具和软件包。我已经从 ARM 开发者网站安装了 GNU ARM Embedded:(https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)
我也尝试在CMake GUI上运行并得到同样的错误。请指教 。我附上下面的截图:请指教。我也尝试过使用其他板,比如 reel_board,但仍然面临同样的问题。
ubuntu - 在我的 Windows 上的 WSL2 Ubuntu 应用程序上执行 lsusb 命令时出现错误“无法初始化 libusb:-99”
在我的 Windows 10 上的 WSL2 Ubuntu 应用程序上执行lsusb命令时出现错误“无法初始化 libusb:-99 ”。请帮忙。我基本上是想通过 USB 电缆将 reel_board 连接到我的 PC,将 Zephyr 作为简单的 Hello world 应用程序在我的 reel_board 上闪烁。每当我将开发板插入 PC 时,我在 /dev 文件夹中的任何地方都看不到任何 ttydevice,例如 /dev/ttyUSB* 或 /dev/ttyACM* 目录,我应该看到这些目录。
我认为这可能是与 udev 规则相关的权限问题。现在要设置权限规则,我需要只能使用不适合我的lsusb命令检索的供应商 ID 和产品 ID。
请指教
embedded - 嵌入式应用程序如何实际使用设备树 blob?
我正在尝试学习如何device tree
工作。我已经阅读了一些文档,并且或多或少地了解了什么是dts
,dtsi
和dtb
文件。
我不太了解的是如何dtb
从最终应用程序中访问文件中的信息。我一直在阅读zephyr
os 文档和一些 linux 内核来理解这一点,但对我来说仍然不是很清楚。
我现在所理解的是最终应用程序(可能是操作系统内核)dtb
“手动”读取和解析文件。这意味着每个操作系统内核都会dtb
以自己的方式解析文件,对吗?
但是,据我了解,应用程序没有链接到dtb
文件,后者在一些内存区域中闪烁,然后是应用程序。以某种方式访问它。那么,如果这些符号在构建时不可用,如何构建应用程序?
c-preprocessor - 如何使用 Zephyr 检查 Kconfig 字符串是否为空?
鉴于此 Kconfig:
对于默认的空字符串,该指令#if defined(CONFIG_MY_STR)
将评估为 true。
如何在编译时检查CONFIG_MY_STR是否为空字符串?像下面这样使用第二个布尔值(例如CONFIG_USE_MY_STR)是更好的做法吗?
docker - 如何使用 Github 操作在不同文件夹中执行操作
试图让 Github 操作适用于涉及 Zephyr 和 West 的特定工作流程。目前,我让 West 通过这个带有 Docker 版本的市场插件进行初始化以节省时间。我的 Zephyr 项目在 nrf9160 芯片上运行,并通过在文件夹中运行west build -b nrf9160dk_sgnns
在本地构建。project
目前,一切正常,直到构建部分,(我相信)必须在project
文件夹中而不是在父文件夹中调用 West。但是,在这种情况下如何链接事件?目前,我West build
这样打电话
但是,如果我像提示系统找不到我的板的操作那样执行此操作,则会导致错误,因此我如何才能在我的project
文件夹中正确执行此构建操作?
我尝试设置working-directory
但是这会导致错误working-directory cannot be used with uses, with
c - 前几页写入美光 MT25Q 闪存设备失败
我正在做一个项目,我想将一些信息写入美光科技的 MT25Q ( MT25QL512ABB1EW9-0SIT ) 闪存设备。但是,当我尝试从前几页(0-13)写入和读取时,我会返回垃圾数据。我认为闪存中可能有一个受保护区域,所以我检查了状态寄存器中相应位的值,该值对应于没有受保护的扇区。此外,受保护扇区的任何可能范围都与该值不对应。我正在使用支持闪存设备的zephyr-os 。这是我的代码:
对于循环的前 15 次迭代,我读回了一些垃圾字符串。之后它按预期工作。该设备是字节可写的。
有人可以帮我理解为什么会这样吗?我希望我发布了所有必需的信息,但以防万一:
总页数 = 256 myflash.size = 131072
zephyr-rtos - 如何在 zephyr-rtos 项目中添加应用程序单元测试
想如何使用 Zephyr RTOS 启动一个新应用程序,包括应用程序源的单元测试。我已经看到 Zephyr 提供了一个测试框架 z-test 和一个测试运行器 sanitycheck。
我的目标是使用以下目录结构将生产代码与测试代码分开:
该src
文件夹应包含应用程序源。该test
文件夹应包含应用程序源的单元测试,可能包含多个单独的二进制文件。
如何使用 Zephyr 提供的框架(west、sanitycheck)来实现这一点?测试应用程序如何知道在哪里寻找应用程序源?
windows - 断言失败:工具链无法构建虚拟 C 文件
一些学生和我自己一直在尝试在 Windows 10 下建立 Zephyr RTOS 构建环境,以构建针对各种 ARM Cortex M 板的应用程序。我们每个人都遵循了 Zephyr“入门指南”并遇到了同样的问题。当为许多不同的板子编译时(我们这里只使用 nrf52840dk_nrf52840 作为例子)我们得到这个错误:
错误信息
此错误将我们指向文件:CMakeError 和 CMakeOutput。以下是他们的内容:
CMake错误
CMake输出
我的问题:
- 这个错误是什么意思?
- 如何修复它,以便我可以成功构建应用程序。