Sign in

username:

password:



Not a member?

Search motoroladsp



Search tips

Subscribe to motoroladsp



motoroladsp by Keywords

56303 | 563xx | 5680 | 56805 | 5680x | 56F80 | 56F800DEMO | 56F805 | 56f807 | 56F830 | ADC | Bootloader | Codec | CodeWarrior | CW5 | CW6 | Debugger | DSP56303 | DSP56303EVM | DSP563xx | DSP5680 | DSP56800 | DSP56807 | DSP56858 | DSP56858EVM | DSP56F803 | DSP56F805 | DSP56F807 | DSP56F80x | DSP56F826 | DSP56F827 | DSP56F8xx | EVM | FFT | Flash_over_jtag | GPIO | Interrupt | Interrupts | JTAG | LCD | Linker | MCF5307 | Metrowerks | Modulus | MSCAN | PCMaster | PWM | Quad | Rif | RTOS | SDK | SPI

Discussion Groups

Discussion Groups | Freescale DSPs | 56303 C Compiler

Technical discussions about Freescale (Motorola) DSPs (including the DSP56000, DSP56300, DSP56600, 56800 DSPs).

  

Post a new Thread

56303 C Compiler - Rob Tonneberger - Jun 25 8:31:15 2007



I have a strange problem with the tools. I've searched the
documentation to no avail. When I assemble the output from the
compiled source files, I get the error "ERROR --- Instruction cannot
appear immediately after control register access or an ENDDO (Opcode
field)". This error refers to the following code snippet where the
given line number is the "rts" instruction at the end of the function: 
	move	(r6)-
	move	y:(r6)-,r7
	move	y:(r6)-,r2
	move	y:(r6),y0
	move	y:-(r6),ssh
	rts
By inserting a "nop" between the last "move" and the "rts", the
assembly error goes away. As this file has five instances of this so
that every time I recompile, I have to go in and edit the resulting
asm file. 
The compiler  invocation line is: "g563c -g -S Comm.c -o Comm.asm"
The assembler line is: "asm56300 -b -l Comm.asm"
Thanks alot for your help! Rob.



(You need to be a member of motoroladsp -- send a blank email to motoroladsp-subscribe@yahoogroups.com )

Re: 56303 C Compiler - Kenneth Ciszewski - Jun 26 7:21:18 2007

Motorola DSPs in the past have had issues like this, which are "pipeline"
issues--some instructions cannot be put after certain other instructions.Usually, this doesn't
cause problems.  Emailing Freescale tech support may get you an answer.

Rob Tonneberger <r...@northhorizons.com> wrote:          I have a strange problem with
the tools. I've searched the
documentation to no avail. When I assemble the output from the
compiled source files, I get the error "ERROR --- Instruction cannot
appear immediately after control register access or an ENDDO (Opcode
field)". This error refers to the following code snippet where the
given line number is the "rts" instruction at the end of the function: 
move (r6)-
move y:(r6)-,r7
move y:(r6)-,r2
move y:(r6),y0
move y:-(r6),ssh
rts
By inserting a "nop" between the last "move" and the "rts", the
assembly error goes away. As this file has five instances of this so
that every time I recompile, I have to go in and edit the resulting
asm file. 
The compiler invocation line is: "g563c -g -S Comm.c -o Comm.asm"
The assembler line is: "asm56300 -b -l Comm.asm"
Thanks alot for your help! Rob.



(You need to be a member of motoroladsp -- send a blank email to motoroladsp-subscribe@yahoogroups.com )

Re: 56303 C Compiler - Stefan Stenzel - Jul 2 9:05:22 2007

Think the easiest is to change the emitted code in the sources of the compiler.

Stefan

Rob Tonneberger wrote:
> I have a strange problem with the tools. I've searched the
> documentation to no avail. When I assemble the output from the
> compiled source files, I get the error "ERROR --- Instruction cannot
> appear immediately after control register access or an ENDDO (Opcode
> field)". This error refers to the following code snippet where the
> given line number is the "rts" instruction at the end of the function: 
> 	move	(r6)-
> 	move	y:(r6)-,r7
> 	move	y:(r6)-,r2
> 	move	y:(r6),y0
> 	move	y:-(r6),ssh
> 	rts
> By inserting a "nop" between the last "move" and the "rts",
the
> assembly error goes away. As this file has five instances of this so
> that every time I recompile, I have to go in and edit the resulting
> asm file. 
> The compiler  invocation line is: "g563c -g -S Comm.c -o Comm.asm"
> The assembler line is: "asm56300 -b -l Comm.asm"
> Thanks alot for your help! Rob.



(You need to be a member of motoroladsp -- send a blank email to motoroladsp-subscribe@yahoogroups.com )