javier_ballesteros-rodriguez javier_ballesteros-rodriguez

Command line assembler and EMAC instructions

Discussion created by javier_ballesteros-rodriguez javier_ballesteros-rodriguez on Mar 9, 2007
Latest reply on Apr 2, 2007 by javier_ballesteros-rodriguez javier_ballesteros-rodriguez
Hello,

We have been using the Freescale’s CodeWarrior for a while without problems. Nevertheless, we have just acquired Rational TestRealtime and we need to compile our project with the command line tools.

For regular C files, it works fine, but we are having troubles with an assembler file because EMAC specific instructions are not accepted.

The output from mwasmmcf is:

“C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Accumulator only valid for processor with EMAC unit
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Accumulator only valid for processor with EMAC unit
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Instruction not legal for current target processor(s)
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Accumulator only valid for processor with EMAC unit
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Accumulator only valid for processor with EMAC unit
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Instruction not legal for current target processor(s)
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Accumulator only valid for processor with EMAC unit
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Accumulator only valid for processor with EMAC unit
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Instruction not legal for current target processor(s)
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Accumulator only valid for processor with EMAC unit
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Accumulator only valid for processor with EMAC unit
C:\DATA\MILLIQIntegral\C Source\Services\Quadros\RTXCGEN\Rtxcgen Files\uexcptn.s:98: Instruction not legal for current target processor(s)”

This line corresponds to the following one (the file “uexcptn.s”):

89: .extern i2c_handler
90: I2CEXP .equ 10 // I2C handler
91: I2CEXP_LEVEL .equ 3 // Interrupt level
92: I2CEXP_VECTOR .equ 81 // Vector number
93:
94: // Begin - User Include Information
95: // End - User Include Information
96:
97:
98: RTXCISRms isvcpit0isrc,pit0isrc,TMR0ISR_LEVEL,TMR0ISR // 1 TMR0ISR - Timer 0 Interrupt Service Routine
99: RTXCISRms isvccan_b14_handler,can_b14_handler,buffer14_LEVEL,buffer14 // 2 buffer14 - interrupt buffer 14


The compiler line used is the following:

mwasmmcf -nodefaults -msgstyle gcc -gccinc -g -proc MCF5282 –l PATHS> uexcptn.s –o uexcptn.o

Within the IDE, we have chosen MCF52xx and the option “Processor has EMAC” is effectively enabled.

However, for the command line assembler, I have tried with several processors without success, and the pragma line “#pragma emac on” in the assembler file does not work neither.

Do you have any ideas?

Thanks in advance,

Javier

PS: For info:
mwasmmcf.exe -version

CodeWarrior Assembler for Embedded ColdFire.
Copyright (c) 2006, Freescale Semiconductor, Inc
All rights reserved.
Version 6.3 build 4
Runtime Built: Jul 12 2006 11:07:57

Message Edited by jballes on 2007-03-0902:11 PM

Outcomes