Das Elektor-Forum schließt seine Pforten (siehe auch http://www.elektormagazine.de/forum). Ab Freitag, den 01. März, ist es nicht mehr möglich, sich im Forum einzuloggen. Alle Inhalte des Forums bleiben jedoch bis Ende März noch sichtbar. Am 01. April wird das Forum schließlich komplett geschlossen.

Quelltextdateien ausserhalb des defaultmaessigen Projektwork

Postby hkuenzel » Thu Jan 14, 2010 12:00 am

Tach an alle Programmierer,

Haette eigentlich erwartet das das Forum zum R8C/13 längst verweist ist und bestenfalls noch zur „History“ Recherche von Guido Knopp taugt.

Gibt aber sogar schon Einträge aus 2010 ! Also in diesem Sinne ein frohes neues Jahr an die Runde.

Das im R8C/13-Blog noch „geblökt“ wird liegt aber vielleicht auch daran das Elektor das Leserinteresse durch ein neues Applikationsboard das die leistungsfähigere Prozessoren aus dem Hause Renesas unterstützt, wieder hat aufflammen lassen, und alle die sich an dem R32C versuchen moechten vorerst noch mal ihre alten Boards samt Entwicklungumgebung wieder auskramen, um laengst vergessen geglaubte Probleme wiederzuentdecken .

Wie dem auch sei.

Nun zu meinem Problem:
Wie erreiche ich die fehlerfreie Kompilierung eines Projektes mit der HEW auch dann wenn die Quelltextdateien nicht in dem default-maessig angelegten Projekt-Workspace

c:\ Workspace\xxx\xxx<- xxx steht für den jeweiligen Projektnamen

hinterlegt sind. Obwohl ich in den jeweiligen include - Statements den vollstaendigen absoluten Pfad zwischen "" gesetzt habe, bekomme ich untenstehende Fehlermeldungen.

In meinem Fall handelt es sich um ein Projekt zur Ansteuerung des LCD-Displays auf dem R8C/13 Applikation-Board das auf den Originalcode von Burkhard Kainkas „Basiskurs R8C/13 ab S.73 aufbaut. Allerdings habe ich die entsprechenden Funktionen auf verschiedene Quelltextdateien verteilt und die dazu entsprechenden Headerdateien angelegt. Diese enthalten lediglich die jeweiligen Funktionprototypen.

Solange sich die Dateien in dem von der HEW jeweils angelegten Projekt-Workspace befinden funktioniert alles problemlos. Speicher ich die Dateien aber an einem anderen Ort erscheinen Fehlermeldungen der Art:

C:\WorkSpace\LCD2_Test\LCD2_Test\LCD2_Test.c(12) : [Error(cpp30.21)] include file not found 'D:\Heiko\Eigene_Programmierideen\Projekte\Basiskurs_R8C13\LCD_Ansteuerung\sfr_r813.h'

.
.
.
C:\WorkSpace\LCD2_Test\LCD2_Test\lcd.c(1) : [Error(cpp30.21)] include file not found 'D:\Heiko\Eigene_Programmierideen\Projekte\Basiskurs_R8C13\LCD_Ansteuerung\sfr_r813.h'

.
.
.
Error (ln30): Can't open file 'C:\WorkSpace\LCD2_Test\LCD2_Test\Release\lcd.r30'
.
.
.
Error (lmc30): Can't open file 'C:\WorkSpace\LCD2_Test\LCD2_Test\Release\LCD2_Test.x30'

Den oben genannten Fehlermeldungsauszug enthaelt man beispielsweise wenn man wie ich das getan habe zu Testzwecken die Headerdatei sfr_r813.h die jedes Projekt benoetigt „extern“ speichere. Alle anderen aber im dafür vorgesehenen Projektbereich belasse.

In meinem Fall gibt es dazu die
C-Dateien: mit den Funktionen (analog zu Basiskurs ab S.73)

LCD2_Test--------------------main-Funktion
lcd.c---------------------------lcdctrl, lcddata
delay.c------------------------delayus
LCD_init.c---------------------initlcd

h-Dateienenthalten die jeweiligen die Funktionsprototypen-Aufrufe

lcd.h--------------------------void lcdctrl (unsigned char);
-------------------------------void lcddata (unsigned char);
delay.h-----------------------void delayus (unsigned int);
LCD_init.h--------------------void initlcd (void);

Da bestimmte Quelltextdateien wie beispielsweise eine LCD-Treiberroutine nach HD44780 Standard aber voellig unabhaengig vom jeweils verwendeten Prozessortyp zu programmieren sind, moechte ich sie nicht in den entsprechenden Projektworkspace mit aufnehmen.

Ich moechte in Zukunft beispiesweise eine Idee zunaechst mit der Proteus VSM MPLAB Entwicklungsumgebung (Elektor 2007) simulieren und sie sie dann, wenn alles funktioniert auf dem R8C/13-Applikation Board testen.

Veraendere ich eine Quelltextdatei in dem einem Projektworspace muss ich immer daran denken dieses auch in dem anderen zu tun, damit die Konsistenz der Projekte gewaehrleistet bleibt.

Während die MPLAB problemlos Dateien einbindet die „irgendwo“ auf dem Computer hinterlegt sind scheint die HEW stur darauf zu bestehen das die Dateien im Projektworspace angelegt wurden.

Oben gezeigte Fehlermeldungen bekommt man interessanter weise aber auch beim belassen der entsprechenden Datei im Projektworkspaces wenn man statt des relativen
#include "sfr_r813.h"

den absolute Pfad

#include "c:\WorkSpace\xxx\xxx\sfr_r813.h"

angibt, obwohl auf den gleichen Ort verwiesen wird.

Dabei schein es voellig egal zu sein ob beim hinufuegen der Dateien mit „Add Files“ das Haekchen „Projekt relativ file path“ gesetzt ist, oder nicht.

Das Haekchen ist etwa so sinnvoll wie Loriot Universalbenutzer. Sieht fasst so aus als haetten die Programmierer die Option schon mal mit eingebaut den dazugehoerigen Code aber auf spaetere HEW-Releases vertagt. Schliesslich ist meine HEW Stand 2005.

so das wars erst einmal.

And dieser Stelle uebrigens noch einmal Vielen Dank an Herrn Potgorny (Wie Ekel Alfred immer sagt wenn er den alten Nowottny meint) fuer die schnelle Reaktion auf meine andere Anfrage (liegt schon ein bisschen zurueck) in Sachen „renesasinteractive“. Haette eigentlich auch noch einmal eine Rückfrage dazu gehabt, hat sich aber erledigt da der Service von Renesas soweit ich weis leider eingestellt wurde.

Vielleicht moegen Sie sich ja auch zu meinem oben genannten Problem noch einmal aeussern.

oder wer sonst diese Problem nachvollziehen kann.

Also schoenen Gruss an die Community
hkuenzel
 
Posts: 5
Joined: Fri Jan 03, 2014 1:52 pm

Postby frankl » Mon Jan 18, 2010 12:00 am

Damit der Compiler Header-Dateien in anderen Verzeichnissen findet müssen diese als Include-Verzeichnis in Build > Renesas M16C Standard Toolchain auf dem C-Tab in der Category Source als Include Directory angegeben werden. Mit deinem Verzeichnis sollte dann unten bei den Compiler-Optionen diese Option mit aufgeführt sein: -I"D:\Heiko\Eigene_Programmierideen\Projekte\Basiskurs_R8C13\LCD_Ansteuerung"
Diese Include-Verzeichnisse geben Startverzeichnisse an, in denen mit #include eingebundene Dateien gesucht werden.
Meines Wissens kann man bei #include keine absoluten Pfade angeben.

Den Unterschied zwischen relativen und absoluten Pfaden beim Hinzufügen von Dateien wird man erst bemerken wenn man das komplette Projekt in ein anderes Verzeichnis kopiert und da öffnet. Ich denke die HEW wird auf jeden Fall meckern das das Projekt jetzt in einem anderen Verzeichnis liegt. Aber wenn das Projekt relative Pfade benutzt hat kann man es danach trotzdem direkt neu compilieren. Bei absoluten Pfaden ist dann Feierabend.
frankl
 
Posts: 125
Joined: Thu Jan 02, 2014 10:42 am

Postby hkuenzel » Sat Mar 06, 2010 12:00 am

Frankl - vielen Dank fuer die schnelle Antwort, hass rech dat geit wie der Ostfriese sacht.

hatt leider mit meiner Reaktion ein bisschen gedauert, musste zwischenzeitlich Urlaub machen. Hatte das aber vorher noch ausprobiert. Find ich ja irgenwie ein bisschen "doppelt gemoppelt" das man in der Compilerconfiguration auch noch einmal Bezugspfade einstellen muss - aber nun denn - wenn mans weis, oder schlaue Leute wie dich hatt die ein dass erklären.
hkuenzel
 
Posts: 5
Joined: Fri Jan 03, 2014 1:52 pm


Return to Das R8C-Projekt

Who is online

Users browsing this forum: No registered users and 2 guests