70得票4回答
arm gcc工具链作为arm-elf或arm-none-eabi,有何区别?

当你构建gcc工具链时,有可能将其构建为arm-elf或arm-none-eabi,但是它们有什么区别呢? 我今天使用eabi,但那只是因为其他人似乎都这样做...但既然这是一个非常糟糕的论点,了解一下区别会很好。 注意:这个工具链将交叉编译基于Cortex-M3的mcu,如stm32的代...

38得票3回答
如何创建一个带有自定义外设和内存映射的QEMU ARM虚拟机?

我正在编写针对Cortex-M3 CPU的代码,并使用qemu-arm二进制文件执行单元测试。目前一切正常。但是我想知道是否能够使用qemu-system-arm测试整个系统?我的意思是,我想编写自定义的“机器”以用于QEMU,其中我将定义所需的内存映射,以及所需外设的软件模拟,是否有此类模块...

29得票12回答
使用C语言在不使用标准函数的情况下生成正弦信号

我想在C中生成正弦信号,而不使用标准函数sin(),以便触发LED亮度的正弦形变化。我的基本想法是使用包含40个点和插值的查找表。 这是我的第一个思路:const int sine_table[40] = {0, 5125, 10125, 14876, 19260, 23170, 26509...

24得票2回答
如何使用LLVM+Clang编译STM32代码?

有人知道如何使用binutils和newlib构建一个llvm+clang工具链,并且如何使用它吗? 主机:Linux,AMD64 目标:cortex-m3,stm32 C库:newlib 汇编器:gnu as

23得票4回答
安全地检测函数是否从中断服务程序(ISR)中调用?

我正在为ARM Cortex M3(NXP LPC1769)微控制器开发软件。目前,我正在寻找一种机制来检测我的函数是否在中断服务程序(ISR)中被调用。我假设我需要检查一个寄存器。根据这些信息,我想调用一些复杂的函数。 我已经查阅了参考手册,看是否有包含所需信息的寄存器。 例如,我尝试通...

23得票8回答
STM32在未配置时,WWDG中断会触发。

我有一个应用程序,我正在将其从Keil IDE移植到使用GNU工具链进行构建,因为存在许可问题。我已经成功地设置、构建、烧录并在设备上运行该应用程序。 GNU端的应用程序由于某种原因在弱链接的WWDG中断处理程序中陷入了无限循环。该应用程序不启用WWDG,并且在复位时默认禁用它。我还验证了配...

18得票1回答
在ARM Cortex-M3中使用newlib的malloc函数

我正在为ARM Cortex-M3(NXP的LCP17xx)创建代码。到目前为止,我一直在使用静态内存,一切都运行良好。我尝试添加动态内存支持,但一旦调用malloc,系统就会卡住。 我正在使用gcc编译针对ARM裸机,并使用newlib。版本:gcc-arm-none-eabi-4_6-20...

18得票5回答
在ARM Cortex M4(或M3)上的循环计数器?

我正在尝试对一个C函数进行性能分析(该函数是从中断调用的,但我可以将其提取出来并在其他地方进行分析),这个函数运行在Cortex M4上。 有哪些可能性可以计算这个函数通常使用的周期数? 函数应该在大约4000个周期内运行,所以RTC不是一个选择,我猜测从反汇编中手动计算周期可能会很痛苦 -...

17得票3回答
在字对齐的处理器上快速处理不对齐的数据的最佳方法是什么?

我正在使用ARM Cortex M0进行项目开发,但该处理器不支持非4字节对齐的访问。我尝试优化未对齐数据的操作速度。 我将蓝牙低功耗访问地址(48位)存储为6字节数组,并将其作为数据包缓冲区中的一些紧凑结构体进行处理。由于紧凑结构,BLE地址不一定从字对齐的地址开始,因此在优化对这些地址的...

16得票2回答
STM32内部时钟

我对我的STM32F7设备上的时钟系统感到困惑(来自STMicroelectronics的Cortex-M7微控制器)。参考手册没有充分阐明这些时钟之间的差异: SYSCLK HCLK FCLK 参考手册在第5.2章“时钟”中称:“RCC使用AHB时钟(HCLK)除以8的值来提供Cor...