Questions tagged [arm]

This tag is used for questions related to the ARM (Advanced RISC Machine) family of computers; that is machines or electronics running on ARM processor cores or systems using an ARM core. For Azure-related questions, use [azure-resource-manager].

ARM (formerly Advanced RISC Machine and Acorn RISC Machine) is a reduced instruction set computer (RISC) instruction set architecture (ISA) developed by Acorn Computers and extended by ARM Holdings. The ARM architecture is the most widely used 32-bit instruction set architecture in numbers produced.

More information can be found in the Wikipedia article on ARM Architecture and the ARM Reference Documents.

There are many different variants of the ARM assembler that have evolved over time. The notation can be confusing. For instance, arm7 and armv7, are completely different. The first is a CPU implementation; the second is a CPU architecture. The architecture, also called a family, is a set of machine instructions (or ISA for instruction set architecture) that are generally compatible. See: Wikipedia's list of ARM microarchitectures for more.

Related tags:

  • - the first version consisted of a reduced set of 16bit instructions. thumb2, introduced with armv6, includes a mix of 16 and 32bit instructions, extended further in armv7 such that it can do most things the normal ARM ISA can.
  • - a SIMD extension for ARM CPUs
  • - an embedded ISA of the armv7 that only supports thumb2.
  • - the application version of armv7 ISA.
  • - the eighth arm architecture (armv8) includes 64bit registers.
  • - a security feature in some armv6, armv8 and armv7 CPUs.
  • - bus or interconnect specification used between CPUs and peripherals.
  • - SWD (Serial Wire Debug) is a light weight version of JTAG designed for ARM MCUs.

Do not create tags such as . Often those posts apply to other cortex-m CPUs and/or the difference between the versions is important to understand. Also newer future CPUs may extend a specific CPU and questions in that tag maybe relevant.

If you are only posting to the tag try to give some specifics about the system you are using.

12252 questions
25
votes
7 answers

Cross-compiling Node.js for ARM6 (Raspberry Pi)

I'm trying to get node.js v0.7.9 to compile for the raspberry pi, but as node and v8 are quite large, I'm hoping to be able to cross-compile on another more powerful PC. I'm using the linux-x86 arm-bcm2708-linux-gnueabi toolchain from…
Adam M-W
  • 3,509
  • 9
  • 49
  • 69
24
votes
21 answers

Best platform for learning embedded programming?

I'm looking to learn about embedded programming (in C mainly, but I hope to brush up on my ASM as well) and I was wondering what the best platform would be. I have some experience in using Atmel AVR's and programming them with the stk500 and found…
mdec
  • 5,122
  • 4
  • 25
  • 26
24
votes
6 answers

Undefined reference to _sbrk

I am having a problem with _sbrk. In a link phase of compilation i use below comand to link my objects and i get undefined reference to _sbrk. arm-none-eabi-ld -static -T linkerscript.ld -o exe timer_example.o…
71GA
  • 1,132
  • 6
  • 36
  • 69
24
votes
3 answers

Which variable types/sizes are atomic on STM32 microcontrollers?

Here are the data types on STM32 microcontrollers: http://www.keil.com/support/man/docs/armcc/armcc_chr1359125009502.htm. These microcontrollers use 32-bit ARM core processors. Which data types have automatic atomic read and atomic write access? I'm…
Gabriel Staples
  • 36,492
  • 15
  • 194
  • 265
24
votes
2 answers

Is there an equivalent instruction to rdtsc in ARM?

For my project I must use inline assembly instructions such as rdtsc to calculate the execution time of some C/C++ instructions. The following code seems to work on Intel but not on ARM processors: {unsigned a, d;asm volatile("rdtsc" : "=a" (a),…
Curious
  • 373
  • 1
  • 2
  • 8
24
votes
2 answers

What is the difference between =label (equals sign) and [label] (brackets) in ARMv6 assembly?

I'm following along with the Baking Pi course from Cambridge University, in which a simple operating system is built in the ARMv6 instruction set, targeting the Raspberry Pi. We've been using two ways of loading data into registers via the ldr…
d11wtq
  • 34,788
  • 19
  • 120
  • 195
24
votes
6 answers

Why do we need a bootloader in an embedded device?

I'm working with ELinux kernel on ARM cortex-A8. I know how the bootloader works and what job it's doing. But i've got a question - why do we need bootloader, why was the bootloader born? Why we can't directly load the kernel into RAM from flash…
chainz
  • 253
  • 1
  • 2
  • 8
24
votes
4 answers

Compiling for iOS with CMake

I've compiled a C++ static library by using CMake as my building tool and I want to link it to my iOS app. I created a simple 'Empty' application in Xcode and linked my library called libengine.a to it. I tried to compile my iOS project and the…
Tal Zion
  • 1,331
  • 2
  • 14
  • 23
23
votes
2 answers

how to use llvm+clang to compile for stm32

Has someone infos how to build a llvm+clang toolchain using binutils and newlib and how to use it? host: Linux, AMD64 target: cortex-m3, stm32 c-lib: newlib assembler: gnu as
wermut
23
votes
3 answers

Which compiler does Android NDK use?

I'm writing ARM NEON-based code for an Android application and I was struggling with certain compiler flags not being recognized. I later realized that support for those flags was only added quite recently and that my GCC version is older. I'm doing…
Phonon
  • 12,549
  • 13
  • 64
  • 114
23
votes
3 answers

Why Device Tree Structure (DTS) file is needed both in bootloader and kernel source code?

Bootloaders like U-Boot that do not implement the Open Firmware API, are expected to pass to the kernel a binary form of the flattened device tree - LinuxFDTBlob Why are the DTS files present in the kernel as well? Isn't that redundant? As an…
Hamzahfrq
  • 696
  • 1
  • 6
  • 25
23
votes
8 answers

STM32 WWDG interrupt firing when not configured

I have an application that I am porting from the Keil IDE to build with the GNU toolchain due to license issues. I have successfully be able to set up, build, flash and run the application on the device. The application on the GNU side is for some…
gettingSmarter
  • 661
  • 1
  • 5
  • 15
23
votes
5 answers

Learning ARM assembly

During this year there will be coming couple sub-600€ multi-touch portable computers that contain Tegra2. They bring me to a good excuse to learning ARM assembly language. But I have no clue where to start from aside the arm.com. For first throw I…
Cheery
  • 24,645
  • 16
  • 59
  • 83
22
votes
1 answer

Is it possible to run a native arm binary on a non-rooted android phone?

Well, I've been diving in the murky waters of low-level Android programming (native C/C++ using the CodeSourcery toolchain). I tried out the executable on an emulator and it worked. I'd like to try it out on a real device. So I plugged in my nexus…
AnimatedRNG
  • 1,859
  • 3
  • 26
  • 39
22
votes
2 answers

Set all bits in CPU register to 1 efficiently

To clear all bits you often see an exclusive or as in XOR eax, eax. Is there such a trick for the opposite too? All I can think of is to invert the zeroes with an extra instruction.
Pascal de Kloe
  • 523
  • 4
  • 12