Compiler give error message for following codes. A1174E: "Data transfer offset 0x00000102 out of range. Permitted values are 0x00..0x1F"
LDR R1,=USB_BASE LDRB R0,[R1,#USB0_CSRL0] ; Error code is A1174E !!!! USB_BASE EQU 0x40050000 USB0_CSRL0 EQU 0x102
But compiler dont give any error if i write this program thats way
USB_BASE EQU 0x40050000 USB0_CSRL0 EQU 0x102 LDR R1,=USB_BASE LDRB R0,[R1,#USB0_CSRL0] ; Error code is A1174E !!!!
What is wrong?
Go away, please. Enough is enough!
Did you see anything about "Some or all forms of this instruction are 16-bit (narrow) instructions in Thumb-2 code. For details see [...]"?
... I already tried pushing him in this direction with no success...!
(These are the narrow and wide variants that he claims to understand the implication of)
LDRB.N R0,[R1,#USB0_CSRL0] LDRB.W R0,[R1,#USB0_CSRL0]
Yes, but the OP is convinced that we still haven't even understood his problem, so why would he assume that any of our comments may be related to the problem?
Continuing on Andys track: a C programmer would have managed to implement quite a lot of real functionality by now since the C compiler condenses quite a lot of experience and documentation into a readily available digital servant.