log in | register | forums
Show:
Go:
Forums
Username:

Password:

User accounts
Register new account
Forgot password
Forum stats
List of members
Search the forums

Advanced search
Recent discussions
- Drag'N'Drop Autumn edition now available (News:)
- !DualHead puts 2 screens in one (News:)
- RISC OS London Show 2017 - Notes from the talks (News:6)
- November News (News:)
- !Organizer 2.28 reviewed (News:2)
- !OBrowse reviewed (News:10)
- Aemulor (Gen:16)
- DDE reaches release 28 and above (News:)
- Elesar quicks dispels stormy clouds (News:2)
- RISC OS London Show 2017 (News:)
Latest postings RSS Feeds
RSS 2.0 | 1.0 | 0.9
Atom 0.3
Misc RDF | CDF
Site Search
 
Article archives
The Icon Bar: Programming: Load multiple
 
  Load multiple
  swirlythingy (19:03 27/1/2013)
  sirbod (23:35 27/1/2013)
  Phlamethrower (13:36 28/1/2013)
 
Martin Bazley Message #121827, posted by swirlythingy at 19:03, 27/1/2013

Posts: 460
Quick question: what's the etiquette for "LDMIA Rn,{...Rn...}"? Is it OK as long as you don't use writeback (which I don't need)? The Debugger module seems to think so, but I don't know if there are any common half-arsed subtly-broken dodgy implementations of the ARM architecture which I need to be taking account of (hello again, StrongARM).

On a related note, does anyone know where the ARM ARM's got to? I swear the site never used to ask you to register to see them. I downloaded and read the ARMv5 one once (to prove a point in a mailing list argument, if I remember rightly), but sadly didn't think to keep it...
  ^[ Log in to reply ]
 
Jon Abbott Message #121829, posted by sirbod at 23:35, 27/1/2013, in reply to message #121827
Member
Posts: 563
It depends on what chip you're coding for, there's so many errata for the many variations of ARM, it's near impossible to avoid them all specifically. Having said that, most are not easy to reproduce in everyday code, so probably not worth worrying about, use LDM as you would any other instruction.

Here are the errata I know about, which occur on one or all between the SA and ARM9, some I've coded around, but only because I'm triggering and handling aborts.

The errata I think you're referring to is the K series bug, where loading the PC was unpredictable depending on the alignment of the LDM

Avoid using ^ if you're in a privileged mode and using R8 or above in the base register as it will overwrite the wrong register set

When loading two registers from an un-cached region immediately after a delayed buffered write, it may not load the second register

Loading over memory boundaries is unpredictable, ie RAM to ROM

Page faults occurring mid load are unpredictable on both the registers that are loaded and updating the base register in the case of writeback

[Edited by sirbod at 23:37, 27/1/2013]
  ^[ Log in to reply ]
 
Jeffrey Lee Message #121830, posted by Phlamethrower at 13:36, 28/1/2013, in reply to message #121827
PhlamethrowerHot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff

Posts: 15057
On a related note, does anyone know where the ARM ARM's got to? I swear the site never used to ask you to register to see them. I downloaded and read the ARMv5 one once (to prove a point in a mailing list argument, if I remember rightly), but sadly didn't think to keep it...
The ARMv7 ARM has always required you to register. Not sure about the ARMv5 ARM though; I think it used to be available without registration. Last time I tried registration was pretty painless, so you shouldn't have much to worry about. There's also a few different versions of the ARM ARM available here, if you don't feel like registering with ARM's site.
  ^[ Log in to reply ]
 

The Icon Bar: Programming: Load multiple