8得票3回答
ARM Thumb/Thumb-2 性能

我正在使用具有Thumb-2指令集的ARM Cortex-M3控制器。 Thumb模式用于将指令压缩为16位大小,从而减小了代码的尺寸。但是在常规Thumb模式下,为什么说性能会降低呢? 在Thumb-2的情况下,据这两个链接所述,性能得到了改善: Wikipedia Arm.com ...

8得票1回答
像 .size X,.-X 这样的代码模式是什么意思?

我的问题是关于一些广为流传但文档不全的代码,我在ARM Cortex M启动文件中发现了这种代码,例如此STM32。 这种“模式”如下: .size X,.-X 其中X是符号或标签。 我找到了这个答案,了解了.size指令和点特殊符号的工作原理,但整行代码似乎对我没有任何作用。操作....

8得票2回答
零配置名称解析

我正在开发一个带有嵌入式Web服务器的控制设备。该Web服务器为任何请求它的Web浏览器提供控制界面(包括Windows浏览器、Mac浏览器、iPhone和Android等)。 我遇到的问题是如何通用地知道如何访问该设备,即在Web浏览器中键入什么地址。 固定IP对我的用户来说太复杂了,并且由...

8得票2回答
最快的轮询循环 - 如何减少1个CPU周期?

在一个实时应用程序¹中,我需要在ARM Cortex M3上(类似于STM32F101)轮询一个内部外设寄存器的某个位,直到它为零,在尽可能紧凑的循环中执行。我使用位带技术来访问相应的位。以下是(有效的)C代码: while (*(volatile uint32_t*)kMyBit != 0...

7得票4回答
ARM Cortex-M4:从外部闪存运行代码

在ARM Cortex-M4架构(例如STM32 F4)上是否可能分离基础FW和应用程序代码?我的想法是从外部闪存运行应用程序,而从内部闪存运行基础FW。所有应用程序都实现相同的“API”(单个头文件),但功能不同。 基础FW提供驱动程序、引擎和UI,并可以作为独立运行。当需要时,应用程序将...

7得票2回答
ARM Cortex M7 非对齐访问和 memcpy

我正在使用GCC为Cortex M7编译此代码: // copy manually void write_test_plain(uint8_t * ptr, uint32_t value) { *ptr++ = (u8)(value); *ptr++ = (u8)(value...

7得票1回答
嵌入式系统的C++数据容器

我从事嵌入式系统工作。一般情况下,我使用64-512 KB RAM和128-1024 KB闪存的小微控制器,如STM32。我喜欢使用C++来编程这些系统。但是我还没有找到一种可接受的方法来处理常见的数据结构,如栈、队列、映射等。 当然,STL包含了所有这些数据结构以及许多其他方便的功能,但大...

7得票2回答
Cortex-M3 STM32F103核心在执行闪存页擦除时是否会停顿,是因为FPEC忙于处理其他任务而无法从闪存中获取更多指令?

在STM32F103上,擦除一个闪存页需要20毫秒,期间核心会停顿。从ST PM00042闪存编程手册中并不清楚核心是否总是在擦除闪存页时停顿,或者只是因为指令流本身位于闪存内存(在我的项目中),而FPEC(闪存内存接口)正在忙于获取更多指令。 另一个提问的方式是,“如果我将闪存编程代码从R...

7得票1回答
ARMv7-M手册中没有“beq”或“bne”指令?

我正在使用运行Cortex-M4处理器和ARM/Thumb指令集的STM32l475微控制器。我从objdump中看到在ARM程序的二进制文件中生成了beq.n和bne.n指令(我在编译程序时添加了-mthumb标志)。然而,在最新的ARMv7-M手册中,我没有找到这些分支指令。 请问有人能...

7得票3回答
在XCode 3.2中添加一个自定义编译器。

我有一个适用于ARM Cortex-m3的工作gcc 4.3.3工具链,并希望将其集成到XCode中。 有没有办法设置XCode(3.2)使用这个gcc工具链,而不是内置的GCC 4.2? 我尝试过的方法: 我添加了一个修改过的GCC 4.2.xcplugin的副本,并更改了名称、版本和可...