embedded 相关问题

嵌入式系统是指嵌入式系统,涉及微控制器/ DSP固件编程,实时系统,电子接口,硬件驱动器,串行总线通信等领域。

如何通过 Kconfig 或类似的东西配置 Zephyr Devicetree 文件的包含内容

我目前正在开发我的主板的Devicetree,但它有3个带有可配置GPIO的扩展端口。根据连接的扩展,io 可以是 I2C 端口,也可以只是带有 ...

回答 1 投票 0

相似的类型(`int16_t`和`short`)在引用实例化期间产生不同的行为

根据我为变量选择的类型,我遇到了以下错误。 /home/zak/Development/Arduino/ generated_examples/ArduinoIoTCloud_Basic/thingProperties.h:在函数“void

回答 1 投票 0

stm32中的断点指令会用next无限执行

我目前正在学习STM32微控制器,我使用的CPU是ARM Cortex-M4。在我的代码中,我添加了断点指令。然而,当我使用 GDB next 命令时,程序...

回答 1 投票 0

在 C 中将结构复制到数组时出现 PC-LINT 警告

这是我在 Stack Exchange 上的第一个问题,所以请跟我一起。 在我的一个嵌入式 C 项目中,我尝试将结构数据的一部分复制到数组中。 前任: 类型定义结构 { uint16_t Length_ui...

回答 1 投票 0

如何编写 CANopen 堆栈?

我也有类似的问题。如何对简单的 CANopen 层进行编程。 我阅读了答案,但我必须自己编写一个 CANopen 层,我无法获得商业层。那么有没有什么基本的...

回答 3 投票 0

STM32-HAL CAN 仅传输空错误消息

我正在尝试使用 HAL 库通过 CAN 传输消息。为了进行测试,我重复了该视频第一部分中的代码,我有相同的 bluepill,所以我也做了同样的事情。我也尝试过他的项目...

回答 2 投票 0

原子增量在中断中无法按预期工作

我有一个带有 RT1176 SoC(800MHz Cortex-m7 和 400MHz Cortex-m4)的 Google Coral Dev Micro,m7 运行 FreeRTOS,m4 运行裸机,使用 GCC none eabi 9.3.1 和

回答 1 投票 0

使用avr定时器、快速pwm和中断驱动ws2812b

在有人对我大喊大叫之前,我知道 WS2812B LED 灯带需要非常精确的时序,并且使用汇编代码更容易完成(并且已经存在出色的库)。 尽管如此,...

回答 1 投票 0

stm32 FreeRTOS 中断无法像我想象的那样顺利运行

我有两个任务,T1和T2。我想通过调用 ISR 在这两者之间切换,但是,T1 和 T2 都有自己的私有 vTaskDelay。当代码中有延迟时如何让它们运行得更流畅? 无效T...

回答 1 投票 0

Cargo objdump 不显示任何二进制文件

我有一个 STM32F446 微控制器,我观看了一些有关入门的不同视频,并尝试尽我所能地遵循它们(当然没有一个适合我的确切设置,所以我有

回答 1 投票 0

在 Windows 上的软件中关闭 USB 设备电源

我想通过 Windows 上的软件重新启动 USB 设备。 我正在开发一个小型 USB 电源微控制器。该芯片将在电源循环后恢复到本机行为,并且...

回答 5 投票 0

Cargo objdump 不显示任何二进制文件 - Rust

我最近开始尝试学习嵌入式 Rust,并拥有一个 STM32F446 微控制器。我观看了一些有关入门的不同视频,并尝试尽我所能地关注它们......

回答 1 投票 0

控制器通过串行接口接收到命令,但机械臂不运动

使用系统; 使用 System.Collections.Generic; 使用 System.ComponentModel; 使用系统数据; 使用系统绘图; 使用系统.IO.端口; 使用 System.Linq; 使用系统文本; 使用 System.Threa...

回答 2 投票 0

为什么我无法写入我的 zynq 板的寄存器?

我有一个运行 petalinux 的 zynq 板。 .xsa 文件用于使用 AXI DMA 在处理系统 (PS) 和可编程逻辑 (PL) 之间传输数据。我正在 VITIS 中编写一个应用程序来验证...

回答 1 投票 0

将数据放置在由常量算术表达式给出的地址处

上下文 我的团队将我们的项目从使用 Arm 编译器用于嵌入式 5 升级到嵌入式 6。在我们的代码中,我们将数据放置在 RAM 中的特定位置,如下所示: #定义 RAM_START_ADDR 背景 我的团队将我们的项目从使用 Arm 编译器用于嵌入式 5 升级到嵌入式 6。在我们的代码中,我们将数据放置在 RAM 中的特定位置,如下所示: #define RAM_START_ADDR <some constant> #define OFFSET <some other constant> ... volatile my_datatype_t __attribute__((at(RAM_START_ADDR + OFFSET))) var = ...; 但由于某种原因,Embedded 6 不再支持__attribute__((at(<addr>))),相反,我们需要使用__attribute__((section(".ARM.__at_<addr>")))。您可能已经注意到,我们正在处理的地址是一个算术表达式,__attribute__(section) 不支持该表达式,它需要一个数字字符串参数。 ARM 确实提供了一种解决方法,即 volatile my_datatype_t * const var = (volatile my_datatype_t *) (RAM_START_ADDR + OFFSET); 不同的是,当编译时,它不会为 var 分配空间,而是覆盖 RAM_START_ADDR + OFFSET 处的任何数据。还没有问 ARM 如何实现这一点,但我不相信除了他们已经提供的不起作用的解决方法之外我们还能得到任何东西。 问题 有没有办法在编译时计算常量算术表达式并将其格式化为字符串?如果是这样,那么我们仍然可以使用 __attribute__((section)) 并将数字字符串传递给它。 我做了很多研究,似乎没有一种方法可以定义宏,以便对表达式进行求值并且可以将值作为标记或字符串或任何其他内容进行访问。 你运气不好。这是一个预处理器,如果您想添加任何内容,则必须对所有可能的组合进行硬编码。这可以使用脚本生成,或者您可以尝试搜索像 boost 这样的现有项目。 // Add two numbers and output them in hex #define ADDHEX_1_1() 2 #define ADDHEX_1_2() 3 // .... few billion lines later #define ADDHEX_123_456() 234 #define CONCAT4(a, b, c, d) a##b##c##d #define XCONCAT4(a, b, c, d) CONCAT4(a, b, c, d) #define STRING(x) #x #define XSTRING(x) STRING(x) #define RAM_START_ADDR 123 #define OFFSET 456 #define AT XSTRING(XCONCAT4(ADDHEX_, RAM_START_ADDR, _, OFFSET)()) #include <stdio.h> int main() { puts(".ARM.__at_" AT); } 您可以使用 Boost 预处理器库来实现这一点:

回答 1 投票 0

支持需要使用外部传感器与ASR6601单片机进行SPI通信

目前,我正在探索ASR6601微控制器,它是一款通用LPWAN无线通信SoC。 在这方面,我专门致力于 SPI 和 I2S 外部传感器与

回答 1 投票 0

评估嵌入式系统测试的 CppUTest:行业采用和兼容性 [已关闭]

我目前正在评估适合嵌入式系统开发的测试框架,特别关注目标测试环境。 CppUTest 因其兼容性而引起了我的注意...

回答 1 投票 0

哪些公司/项目使用CppUTest作为测试框架?

我想知道这些: 哪些公司使用 CppUTest 作为测试框架? (公司名称) 有没有正式使用它的公司? 哪个已知/流行的开源

回答 1 投票 0

STM32H7的L1缓存行为

我正在玩STM32H753的L1缓存。 我想要做的是故意引起缓存和 RAM 之间的不一致,如下所示: 将 SRAM 区域设置为直写式

回答 1 投票 0

使用SST89E516RD控制器,如何将变量值写入内部闪存并从闪存读回

我正在使用新版本的SST89E516RD控制器和KEIL c51编译器。我想将变量值存储到闪存中以供开机周期使用。为此,我正在使用 in_application_program...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.