Pumpkin, Inc.

Pumpkin User Forums

another starting problem using salvo in IAR

For issues specific to Atmel's AVR and MegaAVR microcontrollers, including Atmel AVRStudio and ImageCraft's ICCAVR C compiler.

another starting problem using salvo in IAR

Postby aek » Wed Nov 17, 2004 2:07 am

Hi MiM.

OK, we are now generating IAR AVR libraries with all the possible combinations of options.

Unfortunately, this results in a huge number of libraries -- 240 libraries for the -v3 AVR processor CPU types alone!

Please let me know exactly which version of IAR AVR EW3.2 you are running (what's the compiler version), and we'll email you the appropriarte libraries. I presume you want the --64k_flash versions of sliaravr3t-a and sliaravr3s-a for use with the mega64?

If so, we'll send you (new naming convention)

sliaravr3t--s-a.r90
sliaravr3t--s-t.r90
sliaravr3s--s-a.r90
sliaravr3s--s-t.r90

Where the middle three switches are for extended instruction set, 64k flash, and 64-bit doubles.

------------------

[This message has been edited by aek (edited November 17, 2004).]

-------
aek
aek
 
Posts: 1888
Joined: Sat Aug 26, 2000 11:00 pm

Re: another starting problem using salvo in IAR

Postby MiM » Wed Nov 17, 2004 5:16 am

I started to write a Salvo LE application for Atmel ATmega64 using IAR EWAVR v3.2. Unfortunately right in the beginning I faced the below described fatal problem.

The problem can simply be demonstrated with the Salvo Tutorial 5 project.

Just open the C:salvo ut u5sysac u5.eww file and make only the following target-related modifications:

1)
In Project/Options/General/Target change the Processor configuration from --cpu=8515 to --cpu=m64 (optionally also change the Memory model from Tiny to Small).
2)
Change the Salvo library from sliaravr1t-a to sliaravr3t-a (optionally to sliaravr3s-a).
3)
In the files main.h and isr.h change the lines #include <io8515.h> to #include <iom64.h>.

Now when you run the project rebuild the following error message is displayed:

Error[e117]: Incompatible runtime models. Module binsem specifies that '__has_elpm' must be 'true', but module isr has the value 'false'

The same problem appears as well with the Salvo Lite version.

MiM
 
Posts: 4
Joined: Tue Oct 19, 2004 11:00 pm
Location: Bratislava, SK, EU

Re: another starting problem using salvo in IAR

Postby aek » Wed Nov 17, 2004 10:39 am

Hi MiM.

OK, we are able to duplicate your problem.

It occurs because the Salvo libraries for the v3 class of AVRs (like the mega64) were generated with default command-line options, and --64k_flash was not explicitly specified. Therefore, the library expects the ELPM instruction and RAMPZ register to be available, but they are not (based on --cpu=m64 or -v3), and you get the error.

This means that we must generate additional v3, v4 and v5 libraries with the --64k_flash option.

Let me see if we can issue a patch for now ...

------------------

[This message has been edited by aek (edited November 17, 2004).]

-------
aek
aek
 
Posts: 1888
Joined: Sat Aug 26, 2000 11:00 pm

Re: another starting problem using salvo in IAR

Postby aek » Wed Nov 17, 2004 10:46 am

As an aside, please note that having Salvo Pro is very useful in these situations, as one can always do a source-code build for any target configuration. Therefore one does not have to wait for new / compatible Salvo libraries to be added to the Salvo distribution.

For processors with a wide variety of compiler options (like the IAR AVR compiler), going with Salvo Pro is recommended.

Also, the Salvo LE and Salvo Lite libraries are identical in these respects, so potential users can identify this sort of problem while evaluating Salvo Lite.

Nonetheless, we'll work to get these additional library variants into the distribution.

------------------

-------
aek
aek
 
Posts: 1888
Joined: Sat Aug 26, 2000 11:00 pm


Return to Atmel AVR and MegaAVR

Who is online

Users browsing this forum: No registered users and 1 guest

cron