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
64
votes
4 answers

Working of __asm__ __volatile__ ("" : : : "memory")

What basically __asm__ __volatile__ () does and what is significance of "memory" for ARM architecture?
vnr1992
  • 761
  • 1
  • 6
  • 7
57
votes
6 answers

cross compiler ldd

I have created a cross compiled arm executable. I want to find the library dependency of the executable. I am using ubuntu natty and installed arm-linux-gnueabi tool chain, which does not contain ldd. Is there a tool available to view arm…
Talespin_Kit
  • 20,830
  • 29
  • 89
  • 135
52
votes
5 answers

How does the linux kernel manage less than 1GB physical memory?

I'm learning the linux kernel internals and while reading "Understanding Linux Kernel", quite a few memory related questions struck me. One of them is, how the Linux kernel handles the memory mapping if the physical memory of say only 512 MB is…
TheLoneJoker
  • 1,589
  • 1
  • 23
  • 36
51
votes
2 answers

Why does the ARM PC register point to the instruction after the next one to be executed?

According to the ARM IC. In ARM state, the value of the PC is the address of the current instruction plus 8 bytes. In Thumb state: For B, BL, CBNZ, and CBZ instructions, the value of the PC is the address of the current instruction plus 4…
newbie
  • 1,230
  • 1
  • 12
  • 21
51
votes
8 answers

Cross-compilation for Raspberry Pi in GCC. Where to start?

TL/DR: Where can I find more information about building a GCC 4.7.0 cross-compiling toolchain for ARM (gnueabi) platform (intended to run on a Raspberry Pi device)? I have just got a brand new Raspberry Pi and I am very eager to start programming…
user267885
49
votes
3 answers

What are the purposes of the ARM ABI and EABI?

The more I look at this PDF (Application Binary Interface for the ARM Architecture: The Base Standard) the less I understand what it means. Also I'd like some comments on Procedure Call Standard for the ARM Architecture and ELF for the ARM…
Micro
  • 765
  • 1
  • 6
  • 10
49
votes
16 answers

duplicate symbols for architecture armv7

Getting following error when try to use Layar SDK in my existing app. How can I solve this? Ld /Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Products/Debug-iphoneos/hub.app/hub normal armv7 cd…
Paresh
  • 993
  • 1
  • 7
  • 15
49
votes
2 answers

How to access physical addresses from user space in Linux?

On a ARM based system running Linux, I have a device that's memory mapped to a physical address. From a user space program where all addresses are virtual, how can I read content from this address?
lang2
  • 11,433
  • 18
  • 83
  • 133
48
votes
4 answers

ARM Cortex-A8: Whats the difference between VFP and NEON

In ARM Cortex-A8 processor, I understand what NEON is, it is an SIMD co-processor. But is VFP(Vector Floating Point) unit, which is also a co-processor, works as a SIMD processor? If so which one is better to use? I read few links such as…
HaggarTheHorrible
  • 7,083
  • 20
  • 70
  • 81
48
votes
4 answers

Android architecture usage?

I have a few native libraries that are fairly big and bloating the application binary size. I looked into APK splitting but maintaining and QAing multiple APKs is not something I want to do. So I'd like to exclude unused architectures in my release…
kos
  • 1,770
  • 2
  • 19
  • 41
48
votes
14 answers

Looking for an efficient integer square root algorithm for ARM Thumb2

I am looking for a fast, integer only algorithm to find the square root (integer part thereof) of an unsigned integer. The code must have excellent performance on ARM Thumb 2 processors. It could be assembly language or C code. Any hints welcome.
Ber
  • 40,356
  • 16
  • 72
  • 88
46
votes
4 answers

Is the `if` statement redundant before modulo and before assign operations?

Consider next code: unsigned idx; //.. some work with idx if( idx >= idx_max ) idx %= idx_max; Could be simplified to only second line: idx %= idx_max; and will achieve the same result. Several times I met next code: unsigned x; //... some…
kyb
  • 7,233
  • 5
  • 52
  • 105
44
votes
10 answers

Unexpected output of 'arch' on OSX (using Mac M1 installing elastic beans)

when trying to install elastic beans on MacBook Air M1, using the following: % ./aws-elastic-beanstalk-cli-setup/scripts/bundled_installer as guidelines shown here: https://github.com/aws/aws-elastic-beanstalk-cli-setup I get the following…
42
votes
1 answer

What are "nosys", "nano", "rdimon" terms when using ARM GCC?

I am learning to write ARM code using the GCC toolchain. I've run into a few GCC options that I cannot find documentation for. Could someone please help explain what they do? -specs=nosys.specs -specs=nano.specs -specs=rdimon.specs -lnosys How do…
puritii
  • 1,069
  • 1
  • 7
  • 18
42
votes
4 answers

Can't find Android 8.0-8.1 (Oreo) API 26-27 ARM System Images

Are there anywhere Android 8.0 (Oreo) API 26 and Android 8.1 (Oreo) API 27 ARM System images (ARM, not x86 Intel) for AVD Manager? Thanks. Unofficial? Beta? Alpha? Any?