4 ms·
If you're interested in low-level code (assembly, JITs, Forth, etc.), note that official documentation for the ARM ISA has considerable encumbrance. It's not li
by 0xcde4c3db 11y ago
If you're interested in low-level code (assembly, JITs, Forth, etc.), note that official documentation for the ARM ISA has considerable encumbrance. It's not like most architectures where you just go to the manufacturer's website and download a PDF of the programming manual; ARM makes you register an account and agree to a rather restrictive clickwrap license (something to the effect of "you're only allowed to use this manual to support our products, not to compete with us").
This seems to not be common knowledge. Maybe the atmosphere of typical ARM applications is already so buried under NDAs that nobody cares, or maybe people just punch "ARM Architecture Reference Manual" into Google and grab one of the many slightly-outdated copies that are floating around on .edu servers. But I found it pretty surprising after seeing how widespread ARM is in "open" hardware.
- d9fb698e010974b 11y agoThat shouldn't encumber most people though. How many people who don't already know that have the skills to seriously compete with ARM? Probably none.
- 0xcde4c3db 11y agoHistorically, it hasn't really taken "serious competition" to invite threats. There's a reason that the best-known open-source ARM implementation explicitly only targets ARMv2 (which dates from the days when the "A" stood for "Acorn") [1]. That said, people who just want to play with ARM-based hardware can get pretty far by leaning on the GNU support and third-party documentation (there are some Game Boy Advance documents that cover the ARMv4 instruction set, for example). [1]: http://opencores.org/project,amber http://opencores.org/project,amber
- pcwalton 11y agoThe situation still isn't great, but this has gotten better over time with the documentation on infocenter.arm.com, which Google usually pulls up as a top result when you search for various ARM instructions. For example, Googling for "arm tbl" brings up this: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/TBL_advsimd_vector.html http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.... which contains links to the rest of the AArch64 instruction set. The documentation has scary "Superseded" notices, but it's all basically accurate and it's enough to do low-level programming.
- 0xcde4c3db 11y agoThat's good to know. I hope it's a sign of things to come. I've been hoping for RISC-V to take off, but even being optimistic, that's probably 3+ years from being orderable on Digi-Key.
- mikechml 11y agoIt's only got the "Superseded" notices because it's an old version, if you browse to the latest one in the menu on the left they're not there. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/TBL_advsimd_vector.html http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc....
- userbinator 11y agoor maybe people just punch "ARM Architecture Reference Manual" into Google and grab one of the many slightly-outdated copies that are floating around on .edu servers That's what everyone does, and AFAIK the ARM ISA documentation is public. The lower-level details to do with the core hardware itself/how to synthesise the core are NDA'd, however.