I tried installing the ARM 6 compiler but I received a compatibility error. So I am not sure which one to use that is compatible for the nano
Any 64-bit ARM will work. This includes anything with label arm64/aarch64/ARMv8-a. This excludes anything arm/arm32/armhf/ARMv7. If by ARM 6 you mean ARMv6, then this is very old and predates even arm32/armhf.
This is from the ARM 6 documentation https://developer.arm.com/tools-and-software/embedded/arm-compiler/documentation: “Arm Compiler 6 supports Armv6-M, and all Armv7 and Armv8 architectures.”
Which should work right? This was the compiler I tried to install and received a compatibility error for.
The description, if it is being exact (and most vendors are not, but ARM might be), would imply ARMv8 is only 32-bit. It has to be ARMv8-a to technically say 64-bit, and Nano is 64-bit.
The 64-bit ARMv8-a CPUs have a backwards compatible mode capable of executing 32-bit ARMv7. Anything ARMv7 can run on this, and is known as ARMv8, but not everything ARMv8 can run on ARMv7. ARMv8 is a superset of ARMv7, but is mostly ARMv7.
By default nothing is installed on Nano for 32-bit compatibility mode (a foreign architecture). It’s highly unlikely anything you do with 32-bit mode would ever be reasonable or satisfying. The pitfalls and performance issues are many. Because this is actually the company producing the ARM architectures, I would say that “ARMv8” is incompatible, and what you need is “ARMv8-a”. To be certain though you probably need to ask them to clarify if “ARMv8” is 32-bit for this purpose.
In the documentation of the ARM 6 compiler, it actually does support ARMv8-a and lists the ARM A57 Cortex chip as a supported processor.
Not sure where to go from here.
Other than contacting ARM to ask about the support, is there a reason not to use gcc? gcc supports ARM SIMD intrinsics, so recommend using gcc/g++
In the case of explicitly stating ARMv8-a and the Cortex A57, then the compiler is definitely compatible.