embedded 相关问题

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

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

Eclipse Embedded C:在项目“project_name”上运行构建器“CDT Builder”时出错

当我尝试在 Eclipse 中构建嵌入式 C 项目时,在构建进行到 37% 左右后,出现以下错误。我认为这可能与从

回答 1 投票 0

每次追加数据到缓冲区的函数

我不确定如何在不使用全局变量的情况下将数据填充到缓冲区追加中。 int main(){ 字符缓冲区[100]; for(int i = 0; i<10; i++){ write_to_buffer(buffer); } } void

回答 3 投票 0

更改 IAR 嵌入中的空白字符

与我们使用的任何其他IDE(而且有很多)相比,IAR Embedded(我专门使用STM8变体,不知道他们的ARM工具)中的空白字符是最具侵入性的。如果你

回答 0 投票 0

有关使用单独文件在 C 中管理依赖于硬件的配置的建议?

我目前正在开发一个嵌入式系统项目,该项目在三种硬件模型中使用相同的 C99 代码库。这些模型之间的主要差异封装在常量 arr 中......

回答 1 投票 0

Cortex-M 执行更高优先级的故障处理程序时发生外部中断

当 cortex-m 正在执行较高优先级的故障处理程序时,发生来自外设的较低优先级中断会发生什么?它会被忽略还是会触发硬故障?

回答 1 投票 0

SSDP 用于设备发现

我正在开发一个应该在Windows中自动发现的硬件设备,所以我更喜欢通过SSDP而不是mDNS(Zeroconf等)来完成,以避免强迫用户安装其支持

回答 2 投票 0

接口固件无法重置/停止目标MCU

我想将简单的 STM32F401RET6 Nucleo 连接到计算机,通过 USB 端口进行固件更新,而不是通过 STLINK 引脚和 SWD。当我尝试连接 USB 电缆时,我收到此错误消息...

回答 1 投票 0

在STM32 Dual-Bank flash上执行Bank2固件时出现问题

我目前正在使用 STM32L073RZ 开展一个需要通过专有无线协议进行固件更新的项目。我正在研究的 OTA 方法是使用该 MCU 的双组功能。我

回答 1 投票 0

自动售货机硬件要求?

我想从头开始创建自己的自动售货机。但没有钱的方面。只是一个基本的机器,人们必须选择一个数字,然后适当的项目就会从 Mac 中出来......

回答 2 投票 0

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