Compile Error

Ian Caddy ianc at goanna.iinet.net.au
Fri Aug 26 02:22:29 UTC 2005


Sorry, I just read my own email, on the first line I meant to add "for a 
BCLR and a BSET instruction" ... ;-)

Ian Caddy


Ian Caddy wrote:
> Hi Mike,
> 
> On Coldfire processors, you can not have an immediate bit number AND an 
> absolute address at the same time.
> 
> If you look at the Programmers Reference manual, it is not obvious, but 
> for the BCLR (and BSET) instructions, it supports different addressing 
> modes for the "Bit Number Static, specified as immediate data" (your 
> case) and "Bit Number Dynamic, specified as a register".
> 
> In the first case (Bit number static):
> bclr.b #<data>, Dx
> bclr.b #<data>, (Ax)
> bclr.b #<data>, (Ax)+
> bclr.b #<data>, -(Ax)
> bclr.b #<data>, (d16,Ax)
> 
> Note all the rest of the addressing modes in the table show a dash for 
> Mode, which means they are not allowed.
> 
> In the second case (bit number dynamic):
> bclr.b Dx, Dx
> bclr.b Dx, (Ax)
> bclr.b Dx, (Ax)+
> bclr.b Dx, -(Ax)
> bclr.b Dx, (d16,Ax)
> bclr.b Dx, (d8,Ax,Ai)
> bclr.b Dx, (xxx).W
> bclr.b Dx, (xxx).L
> 
> So, you will have to do something like Keith suggested about putting the 
> destination address into an Address register and using that.
> 
> I hope this helps.
> 
> regards,
> 
> Ian Caddy
> 
> 
> 
> 
> Mike Bertosh wrote:
> 
>> Ian,
>>
>>  .BITLOOP2: BCLR.B   #SCL,PORTQS           |ROL.B    #1,d0           
>> BCS      .HIGHBIT2
>> .LOWBIT2: BCLR.B   #SDA,PORTQS
>>           BRA      .SKIP2
>> .HIGHBIT2:BSET.B   #SDA,PORTQS
>>
>> m68k-rtems4.7-gcc --pipe 
>> -B/opt/rtems/rtems-4.7/bin/m68k-rtems4.7/mcf5235/lib/ -specs bsp_specs 
>> -qrtems   -m528x    -m528x     -c  -DASM -o o-optimize/eecode2.o 
>> eecode2.S
>> eecode2.S: Assembler messages:
>> eecode2.S:122: Error: operands mismatch -- statement `bclr.b 
>> #5,0xFFFC15' ignored
>> eecode2.S:125: Error: operands mismatch -- statement `bclr.b 
>> #6,0xFFFC15' ignored
>> eecode2.S:127: Error: operands mismatch -- statement `bset.b 
>> #6,0xFFFC15' ignored
>>
>> Hopefully this will help you out, let me know if there is any other 
>> information I can supply that will help.
>>
>> -Mike
>>
>> On 25 Aug 2005 at 9:55, Ian Caddy wrote:
>>
>>
>>> Hi Mike,
>>>
>>> Maybe you could provide us with a little more information, such as 
>>> which peice of code is generating the error.
>>>
>>> It is quite hard to help when you have provided no details.
>>>
>>> regards,
>>>
>>> Ian Caddy
>>>
>>>
>>> Mike Bertosh wrote:
>>>
>>>> Aaron,
>>>>
>>>> I have looked into your suggestion but the addressing modes I am 
>>>> using seem to exist. Any other ideas? Thanks.
>>>>
>>>> On 24 Aug 2005 at 14:28, Aaron J. Grier wrote:
>>>>
>>>>
>>>>
>>>>> On Wed, Aug 24, 2005 at 04:52:16PM -0400, Mike Bertosh wrote:
>>>>>
>>>>>
>>>>>> I am compiling some assembly code for a Coldfire MCF5235 board. I am
>>>>>> getting an error that says "Error invalid instruction for this
>>>>>> architecture; needs 68000 or higher." and an error that says "Error
>>>>>> operands mismatch --statement ignored". Does anyone know how I can 
>>>>>> fix
>>>>>> this? Thanks for your time.
>>>>>
>>>>>
>>>>> check your assembly code.  coldfire v2 is missing some addressing 
>>>>> modes
>>>>> which exist on earlier members of the 68k family.
>>>>>
>>>>> -- 
>>>>> Aaron J. Grier  |   Frye Electronics, Tigard, OR   |  aaron at frye.com
>>>>
>>>>
>>>>
>>>>
>>>> Mike Bertosh
>>>> Motion Control Systems, Inc.
>>>> New River, Va
>>>> 540.731.0540
>>>>
>>>>
>>>
>>> -- 
>>> Ian Caddy
>>> Goanna Technologies Pty Ltd
>>> +61 8 9221 1860
>>>
>>>
>>
>>
>>
>>
> 

-- 
Ian Caddy
Goanna Technologies Pty Ltd
+61 8 9221 1860





More information about the users mailing list