mikrocontroller.net

Forum: Compiler & IDEs sfr error in IAR Embedded Workbench


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Philipp S. (phischl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Ich arbeite erst seit kurzem mit IAR Embedded Workbench (8.20.1) und 
programmiere damit einen Arm Cortex-M4 Mikrocontroller.

Ich möchte das Bluetooth Modul nRF2740 von Nordic (nRF8001 BLE Chip) mit 
dem µC ansteuern. Für das Bluetooth Modul gibt es Beispielprojekte und 
Source Code. Die Beispielprojekte konnte ich in µVision 5 ohne Fehler 
compilieren.

Jetzt zu meinem Problem: Wenn ich nun zu meinem Programm für den 
Mikrocontroller in IAR die Files für das Bluetooth Modul hinzufüge 
bekomme ich folgende Fehlermeldung:
identifier "sfr" is undefined

Hier einige Zeilen wo der Fehler auftritt (insgesamt mehr als 115 mal):
sfr   P0           = 0x80;
sfr   SP           = 0x81;
sfr   DPL          = 0x82;
sfr   DPH          = 0x83;
sfr   DPL1         = 0x84;
sfr   DPH1         = 0x85;
sfr   PCON         = 0x87;

Wie der Fehler schon sagt muss sfr definiert werden, leider habe im www 
nichts dazu gefunden.

Kann mir dabei vielleicht jemand helfen? Vielen Dank!

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

die von Dir aufgelisteten "sfr" sind für den 8051.

Das gibt es glaube ich nicht für die ARM CPUs

Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans schrieb:
> die von Dir aufgelisteten "sfr" sind für den 8051.

Da ist man schon ein wenig sprachlos ;-)

Autor: Jim M. (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philipp S. schrieb:
> Kann mir dabei vielleicht jemand helfen? Vielen Dank!

Ich habe schon mal ein nicht-triviales Projekt von 8051 auf Cortex-M3 
portiert, da fässt man gefühlt jede 2. Zeile an.

Natürlich müsste man den 8051 Code dazu überhaupt lesen können, was bei 
Dir offensichtlich nicht der Fall ist (ansonsten wäre Dir bekannt was 
ein SFR ist).

Schmeiss das olle nRF8001 Modul weg und nimm eins mit den Nachfolgern 
NRF51 oder NRF52. Dort sind Cortex-M0 oder Cortex-M4 Core drin, die 
kannste mit IAR direkt programmieren.

Autor: Cool Drinks (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine Ahnung und dann nen M4?
Cool ...

Autor: Michael F. (michaelfu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend,

das BLE Modul hängt per SPI oder I2C oder UART oder ... am CM4 und Du 
versuchst über diese Schnittstelle das Ganze ans rennen zu bekommen?

Wenn Du den CM4 programmieren möchtest, dann interessieren Dich die 
internen SFR im BLE Modul nicht sonderlich, da Du ja indirekt über das 
serielle Interface auf das BLE Modul zugreifst und hier würde ich die 
Zuordnung von Label und Adresse in ein #define packen.

Oder möchtest Du direkt den 8051 im BLE Modul programmieren? Dann bist 
Du bei der EWARM falsch und bräuchtest die EW8051, die mit den SFRs 
besser umgehen kann...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.