EmbeddedRelated.com
Forums

Arm registers

Started by Hul Tytus April 16, 2021
Maybe I should take a look at the version 8 text. Thanks

Hul

antispam@math.uni.wroc.pl wrote:
> Hul Tytus <ht@panix.com> wrote: > > David - I'm in the process of putting together an assembler for the Arm > > 32 bit processors. There is no all-knowing compiler envolved so I need > > to know what machine codes are valid for a given processor. Any suggestions > > on where that information can be found?
> If you think about microcontrollers, then most relevant probably > is ARM v8-M Architecture Reference Manual which I found under > file name DDI0553A_e_armv8m_arm.pdf
> It contains list of instructions with their encodings. v8 is resonably > recent (maybe newest) version of ARM architecture. Since ARM is > mostly adding instructions it probably covers all intructions that > you want to support. ARM defined several subsets, for example > Cortex -M3 Devices Generic User Guide file name > DUI0552A_cortex_m3_dgug.pdf describes Cortex M3, in particular > provides list of valid instructions.
> Collectiong information that you need looks like large and tedious > job: you need to check instruction descriptions to know if > instruction is valid for given subset (given mnemonic may be > valid, but specific combination of argument may be invalid). > I am not aware any documents containing needed data is > syntetic form. You may try a shortcut: generate "program" > that contains all varianants of all instructions and look > which one GNU assembler accepts for given subset (model). > Of course, in this way you will repeat any bugs in tables > in GNU assembler. OTOH tables in GNU assembler are probably > debugged at least as well as ARM documents...
> -- > Waldek Hebisch
Apparantly you read a different version of the GNU copyright
than I did but I didn't read it all. It does vary with
time.

Hul

Tauno Voipio <tauno.voipio@notused.fi.invalid> wrote:
> Your code is just data passed through the tools, the GNU > copyright does not limit it.
> You'll be safe as long as you are not going to modify the > tools. Even then you have to publish the modifications, not > the code processed using the tools.
> For libraries, there is the GNU LGPL coversin such cases > and permitting to use them.
> --
> -TV
> On 17.4.2021 22:38 PM, Hul Tytus wrote: > > Tauno - just the GNU copyright provides reason for not using it. > > I would expect anyone using it, or considering same, to a major extent, whether > > government sponsored or private, would look closely. > > > > Hul > > > > Tauno Voipio <tauno.voipio@notused.fi.invalid> wrote: > >> On 17.4.21 18.53, Hul Tytus wrote: > >>> David - I'm in the process of putting together an assembler for the Arm > >>> 32 bit processors. There is no all-knowing compiler envolved so I need > >>> to know what machine codes are valid for a given processor. Any suggestions > >>> on where that information can be found? > > > > > >> Why on earth? > > > >> What is wrong with the GNU arm-none-eabi-as? > > > >> The arm-none-eabi-gcc has switches for different processor > >> architectures. > > > >> ARM has an instruction reference card for Thumb2, with > >> different processors marked on the card. > > > >> -- > > > >> -TV
Hul Tytus <ht@panix.com> wrote:
> I'm aiming at the 32 bit devices and looking at the v7 text.
ARMv8-M devices /are/ 32 bit. ARMv8-A brought in the 64 bit instruction set (AArch64) for Application cores. The classic 32 bit instruction set (AArch32) remains optional for Application cores. v8-A (and v9-A) describe the Application class architecture. ARMv8-M describes the Microcontroller class architecture and it's all 32 bit. For example v8-M brought in TrustZone instructions which weren't in ARMv7-M. You should check which core(s) you plan to use and what architecture they are. For example the Cortex M55 follows ARMv8.1-M while the Cortex M7 follows ARMv7E-M. Theo
Thanks Theo. I will get the version 8 manual. Is the title for that "Armv8-m
Archetecture Reference Manual"? From what you've said, I was probably looking
at the v8-A manual.

Hul

Theo <theom+news@chiark.greenend.org.uk> wrote:
> Hul Tytus <ht@panix.com> wrote: > > I'm aiming at the 32 bit devices and looking at the v7 text.
> ARMv8-M devices /are/ 32 bit.
> ARMv8-A brought in the 64 bit instruction set (AArch64) for Application > cores. The classic 32 bit instruction set (AArch32) remains optional for > Application cores. v8-A (and v9-A) describe the Application class > architecture.
> ARMv8-M describes the Microcontroller class architecture and it's all 32 > bit. For example v8-M brought in TrustZone instructions which weren't in > ARMv7-M.
> You should check which core(s) you plan to use and what architecture they > are. For example the Cortex M55 follows ARMv8.1-M while the Cortex M7 > follows ARMv7E-M.
> Theo