[fpc-devel] arm embedded cortexM3 unrecognized opcode
mrb at periphon.net
Tue Jul 13 16:12:10 CEST 2010
On 13 Jul 2010, at 12:24, Jeppe Johansen wrote:
> The bit names are a bit hard, since there aren't any parsing
> facilities in place for them, to my knowledge. I think they would
> need a special syntax to not be seen as symbols by the assembler
> It'll take some work on the assembler reader and writer to get those
> special instructions to work
> The special registers should be added to armreg.dat(and then run
> mkarmreg). I didn't add all the cortex registers.
ok, I have done that, 'msr primask,r0' compiles ok. I will disassemble
and compare with the C code examples, if I can understand them :-)
> Is primask a real register btw? It just assembles to cpsr
cpsr should not exist in cortexm3 according to ARM (see www.arm.com/files/pdf/Cortex-M3_programming_for_ARM7_developers.pdf
eg. page 10 ) It is not in either the v7m archictecture or cortex_m3
tech ref manuals.
primask is a (real as far as I can see) one bit register. I will try
flipping it on the hardware debugger and see if it changes anywhere
> Geoffrey Barton skrev:
>> On 12 Jul 2010, at 19:06, Jeppe Johansen wrote:
>>> Add the missing instructions to the bottom of armins.dat, run
>>> mkarmins in the same directory.
>> It now recognises the mnemonic 'cpsie' but not the following 'i'.
>> The 'msr' instruction should also allow the interrupts to be
>> enabled/disabled as
>> msr primask,r0
>> but msr gives an unknown identifier error for 'primask' and all the
>> other 'special' register names ('apsr' etc.) Perhaps they have been
>> given different names, but I cannot find them listed anywhere in
>> the FPC source.
>>> (and then submit patch) :-)
>> well, once I have some code which works on the chip, I will ask
>> someone where to put it :-)
>>> Geoffrey Barton skrev:
>>>> I wrote a procedure to turn on interrupts:-
>>>> procedure intenable;nostackframe;
>>>> cpsie i
>>>> The compilation fails with 'Error: Unrecognized opcode cpsie'
>>>> The compiler also does not recognise 'cpsid' and also 'primask'
>>>> as in 'mrs r0,primask'
>>>> any ideas/workarounds?
>>>> fpc-devel maillist - fpc-devel at lists.freepascal.org
>>> fpc-devel maillist - fpc-devel at lists.freepascal.org
>> fpc-devel maillist - fpc-devel at lists.freepascal.org
> fpc-devel maillist - fpc-devel at lists.freepascal.org
More information about the fpc-devel