2

I'm taking an assembly code class in college, and we're going to study ARM assembly. However, we'll only cover 32bit ARMv7 assembly code.

The class uses some weird ARM emulator, but I would much rather program in bare metal.

And I've heard that Raspberry Pis use ARM chips, and I've been meaning to get one for a while now, so this situation seemed like a perfect opportunity to get one.

However, I've been looking around Raspberry Pi's website, and I wasn't able to find a Raspberry Pi board which used 32bit ARMv7 architecture

FYI: I am VERY new to the whole assembly world, so maybe there exists some "equivalent" to 32bit ARMv7.

Is there a board that would serve my purpose?

7
  • Thanks for the link! Unfortunately, I don't see any mention of CPU architecture/Compatibility in said chart Sep 28, 2022 at 21:33
  • If you read through the whole page it does show which models contain which SOC and thus those with an ARM7 or ARM8 core - basically all since Pi2. Mind you most Raspberry Pi OS use an ARM6 kernel and your actual question is ambiguous.
    – Milliways
    Sep 28, 2022 at 21:40
  • Thanks! The thing is, and I'm asking because I sincerely do not know. Will I be able to code ARM assembly code on a ARMv8 that could run on a ARMv7 chip? Does that compatibily exist? Sep 28, 2022 at 21:44
  • I have read that ARM is backwards compatible, does that apply to 64 bit Chip as well? Will 32-bit ARMv7 code work on a 64-bit ARMv8 machine? Sep 28, 2022 at 22:29

1 Answer 1

2

I'm not an assembly programmer, but the only model with a 32-bit ARMv7 core is the Pi 2. Unfortunately right now they are going to be hard to find and expensive (eg., while there are none on that current "rpi locator" board, they are available on amazon.ca with no accessories for $172 CDN, ~4x their original price, with a 2 week delivery time...).

However, there are a number of different ARMv7-A implementations, and if you click through the right column, for some of them there you will find lists of SoCs that use them, eg. for Cortex-A9.

Probably a good option is the BeagleBoard Black. The original price was slightly higher than a comparable Pi, and while they look to be subject to similar market forces/logistical issues, they are only about twice that on amazon.ca.

3
  • Thank you so much for your thorough answer! So in theory, every single chip in that Wikipedia list should work with the same Assembly code. Correct? Sep 28, 2022 at 21:42
  • 1
    Again, I'm not an assembly programmer, but I do know from compiling C/C++ and such that what is spit out targets an ISA; there are more specific tweaks, eg., ARMv6 has a series of progressive variants that add functionality and were incorporated into ARMv7, meaning you have something like ARMv6 1/2 (it's not referred to that way, just a illustrative analogy) and ARMv6 3/4, but anything for baseline ARMv6 will work there.
    – goldilocks
    Sep 28, 2022 at 22:42
  • 1
    ...Also, if you look at the various linux distros that have binary releases for ARMv7 etc, they are usable on any system that implements that. Currently, I think (almost) all the distros that work on the Pi are that -- they are compiled for whatever ARM version generally, except for (maybe, dunno for sure) Raspbian/RPi OS -- which, in any case, started out as a binary fork of Debian for ARMv6 (by "binary fork" I mean it was not specially compiled, but more or less window dressing on a pre-existing,pre-compiled Debian), and in fact was that for most of Pi history (if it isn't still so).
    – goldilocks
    Sep 28, 2022 at 22:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.