Wie vereinbart man im IAR-ASM für den MSP430 eine Datenstruktur? Wenn ich es so mache:
1 | ORG 0 |
2 | I1: DS8 1 |
3 | I2: DS8 1 |
4 | |
5 | ORG 0 |
6 | C1: DS8 1 |
7 | C2: DS8 1 |
dann mault der Linker, bei C1: Different parts of ASEG have overlapping code
|
Forum: Mikrocontroller und Digitale Elektronik MSP430 ASM DatenstrukturenWie vereinbart man im IAR-ASM für den MSP430 eine Datenstruktur? Wenn ich es so mache:
dann mault der Linker, bei C1: Different parts of ASEG have overlapping code Hallo, leider habe ich weder IAR noch MSP430 bisher eingesetzt. Aber die wiederholte Nutzung von ORG auf derselben Adresse kann kein mir bekannter Assembler durchgehen lassen. Gibt es kein .equ, .equiv oder sowas, womit du Adressen neu benamen kannst? Gruß, Edson Meister Eder schrieb: > leider habe ich weder IAR noch MSP430 bisher eingesetzt. Aber die > wiederholte Nutzung von ORG auf derselben Adresse kann kein mir > bekannter Assembler durchgehen lassen. Zu seeligen 8080-Zeiten haben wir das immer so gemacht... > Gibt es kein .equ, .equiv oder sowas, womit du Adressen neu benamen > kannst? Doch, das gibts, aber das ist doch ein Murx. >Zu seeligen 8080-Zeiten haben wir das immer so gemacht... Naja, der zählt für mich zu den Unbekannten. >Doch, das gibts, aber das ist doch ein Murx. Warum, was hast du denn vor? Wenn dus mit EQU machst, must du die Offsets der Labels absolut angeben. Wenn man jetzt aus irgendwelchen Gründen die Reihenfolge ändern muß, dann stimmt nichts mehr und man muß die Offsets neu ausrechnen. Wenn man es mit ORG machen könnte, dann müßte man nur die betreffende(n) Zeile(n) verschieben und den Rest besorgt der ASM. Mit Macros kann man sich was basteln, was es tut:
Es werden zwei Strukturen PLD_Data und PLD_Header definiert Beim MPASM gibt es die Anweisung udata_ovr, die überlappende Datenbereiche zulässt. In der IAR Doku hab ich auf die Schnelle nichts vergleichbares finden können(zum 1.mal reingeschaut). Dein Beispiel aus dem ersten Post sähe dann so aus:
Gegenüber deinem Makro sieht das doch richtig übersichtlich aus. Klar, hilft hier nix - aber du hast ja schon eine Lösung gefunden. Grüße, Edson Das letzte Beispiel für die Anwendung meiner Macros ist aus dem echten Leben. Mein Beispiel vom Eingangsposting würde damit so aussehen:
Ist also auch nicht so viel unbersichtlicher, als die Syntax von MPASM. Wobei der PADDING-Macro wohl besser so aussehen sollte:
modul muß eine 2er-Potenz sein. Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
|
|