What does bx lr do in ARM assembly language?

bx stands for branch and exchange instruction set Which means that according to the lsb (least significant bit) of the address to branch to, the processor will treat the next instruction as ARM or as thumb. As lr usually holds the return address, it means that this is a return from a function, and if the lsb of lr is 1, it … Read more

Syntax error: word unexpected (expecting “)”)

An answer to this seems to be posted in the instructions to which you linked. Admittedly it’s a long way down in the comments but it didn’t take long to search for qmake: Syntax error: word unexpected. Quote: Tej says: January 4, 2013 at 12:20 pm Ok, I have solved the Problem. Its very unfortunate that ppl did … Read more

What are .axf files?

The AXF file is an object file format generated by ARM’s RealView compiler (also part of Keil’s ARM-MDK) and contains both object code and debug information. In the debugger, while just the object code is loaded on the target itself, both the code and the debug information are loaded in the development host’s memory. When … Read more

What are the purposes of the ARM ABI and EABI?

An ABI (Application Binary Interface) is a standard that defines a mapping between low-level concepts in high-level languages and the abilities of a specific hardware/OS platform’s machine code. That includes things like: how C/C++/Fortran/… data types are laid out in memory (data sizes / alignments) how nested function calls work (where and how the information on how to return … Read more

What is difference between arm64 and armhf?

armhf stands for “arm hard float”, and is the name given to a debian port for arm processors (armv7+) that have hardware floating point support. On the beaglebone black, for example: Although other commands (such as uname -a or arch) will just show armv7l The vfpv3 listed under Features is what refers to the floating point support. Incidentally, armhf, if your processor supports it, basically supersedes Raspbian, which … Read more

gcc: error: unrecognized command line option

A more deterministic way of pointing to the exact toolchain you want to use is to provide its full prefix when setting CROSS_COMPILE. This will avoid possible path-related errors, and the information on which exact toolchain was used for building will be embedded in your build script. Full example – installing official Arm gcc toolchain and … Read more

ARM Assembler – How do I use CMP, BLT and BGT?

You cannot do a conditional branch without first setting the condition register somehow. This can be done with cmp or by adding s to most instructions. Check out the ARM assembly documentation for details. Quick example: Branch if r0 greater than 5: Compare r6 with r4 , put difference into r7, branch if r7 < 0:

Differences between arm64 and aarch64

AArch64 is the 64-bit state introduced in the Armv8-A architecture (https://en.wikipedia.org/wiki/ARM_architecture#ARMv8-A). The 32-bit state which is backwards compatible with Armv7-A and previous 32-bit Arm architectures is referred to as AArch32. Therefore the GNU triplet for the 64-bit ISA is aarch64. The Linux kernel community chose to call their port of the kernel to this architecture … Read more

How does the ARM architecture differ from x86? [closed]

ARM is a RISC (Reduced Instruction Set Computing) architecture while x86 is a CISC (Complex Instruction Set Computing) one. The core difference between those in this aspect is that ARM instructions operate only on registers with a few instructions for loading and saving data from / to memory while x86 can operate directly on memory as well. Up until v8 ARM was … Read more