closed

Loginbox

Please enter your username and password into the following fields to log in.


  • Username:
  • Password:
  •  
  • Auto log in on every visit.


  •  

Changes in upcoming compiler release



Merlin offline
Administrator
Avatar
Gender: male
Location: UNITED KINGDOM 
Age:
Posts: 1261
Registered: 03 / 2005
Private message
Subject: Changes in upcoming compiler release  -  Posted: 02.11.2021 - 10:59   -  
AVRCo has always defined {$DATA} as being the registers plus IO space.

In older chips this led to no ambiguity and a statement like

Code
{$DATA}
var
  x : byte;


would lead to x being stored in the register area.

For newer chips (XMEGA and UPDI chips) the registers have been moved out of normal data space. This also means that the IO page has moved in these chips.

This causes ambiguity issues in various parts of the compiler, because where previously the data space could be inferred from the address, in these later chips it cannot.

Therefore from the next release I will be prohibiting variable definitions in the DATA space, unless they are referenced.

so

Code
{$DATA}
var
  x : byte;


will be banned, but variables of the form

Code
{$DATA}
var
  x[_SCRATCH0] : byte;


will be allowed.

Older chips will not be affected.

=====================================

AVRCo hat {$DATA} immer als die Register plus IO Raum definiert.

In älteren Chips führte dies zu keiner Zweideutigkeit und eine Anweisung wie

Code
{$DATA}
var
  x : byte;


würde dazu führen, dass x im Registerbereich gespeichert wird.

Bei neueren Chips (XMEGA- und UPDI-Chips) wurden die Register aus dem normalen Datenbereich ausgelagert. Das bedeutet auch, dass die IO-Seite bei diesen Chips verschoben wurde.

Dies führt zu Mehrdeutigkeitsproblemen in verschiedenen Teilen des Compilers, denn wo früher der Datenbereich aus der Adresse abgeleitet werden konnte, ist dies bei diesen neueren Chips nicht mehr möglich.

Daher werde ich ab der nächsten Version Variablendefinitionen im DATA-Raum verbieten, es sei denn, sie werden referenziert.

also

Code
{$DATA}
var
  x : byte;


verboten sein, aber Variablen der Form

Code
{$DATA}
var
  x[_SCRATCH0] : byte;


werden erlaubt sein.

Ältere Chips werden davon nicht betroffen sein.

Übersetzt mit www.DeepL.com/Translator (kostenlose Version)
Merlin.

:magic:

Software is a black art.
This post has been edited 1-times. Last edit: 02.11.2021 - 11:01 by Merlin.
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 57
Posts: 1993
Registered: 03 / 2003
Private message
Subject: Re: Changes in upcoming compiler release  -  Posted: 02.11.2021 - 17:42   -  
Sorry, aber hat das jemand verstanden und kann es mir erklaren? Und was bedeutet das für bestehende Projekte mit XMegas?

Was bewirkt/bedeutet dieses [ _SCRATCH0] ?

Gruss
Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
Merlin offline
Administrator
Avatar
Gender: male
Location: UNITED KINGDOM 
Age:
Posts: 1261
Registered: 03 / 2005
Private message
Subject: Re: Changes in upcoming compiler release  -  Posted: 02.11.2021 - 17:54   -  
Sorry Harry, not sure what went on there.

Code
x[ _SCRATCH0] : byte


should read

Code
x[@_SCRATCH0] : byte


_SCRATCHn is a location to store fast access bytes in some devices, but is just given as an example.

Existing XMEGA projects should be unaffected, but if they are affected then they are faulty.

Regards

Merlin

=========================================

Tut mir leid, Harry, ich weiß nicht, was da los war.

Code
x[ _SCRATCH0] : byte


sollte lauten

Code
x[@_SCRATCH0] : byte


_SCRATCHn ist ein Speicherplatz für schnell zugreifende Bytes in einigen Geräten, wird aber nur als Beispiel angegeben.

Bestehende XMEGA-Projekte sollten nicht betroffen sein, aber wenn sie betroffen sind, sind sie fehlerhaft.

Mit freundlichen Grüßen

Merlin
Merlin.

:magic:

Software is a black art.
go down go up
 


Registered users in this topic
Currently no registered users in this section

Delete cookies of this forum  •  FAQ / Help  •  Team page  •  Imprint   |  Local time: 02.10.2022 - 05:59