Mit einem Klick zum C-Projekt - Dezember 2014

Mit einem Klick zum C-Projekt - Dezember 2014

Postby ag » Wed Dec 17, 2014 4:49 pm

Vielen Dank an Jens Nickel für das neue EFL Configurator. Finde ich super :)

Dennoch, habe ich damit folgendes Problem: nach Anlegen ein neues Projekt damit und dann laden in Atmel Studio 6, scheitert das Kompilieren.

OK, vielleicht liegt es daran, dass ich noch mit Atmel Studio 6.0 arbeite. Also, 6.2 frisch installiert, alle updates dazu ausgeführt, und auch noch die EFL Downloads frisch "installiert". Neuer Versuch scheitert mit gleicher Fehler:
make: *** No rule to make target `Common/BoardpinEFL.o', needed by `ElektorShieldADC.elf'. Stop.


Im Solution Explorer sieht alles OK aus :?

Noch was anders versuchen: in AS6.2, mit Tools->Create Project from Makefile ausgeführt und dabei das im Unterverzeichnis "Debug" erzeugte Makefile ausgewählt. Wieder ein tadellos aussehende Solution, die sich nicht kompilieren last. :x OK. Alles kontrollieren. Was siehe ich da: die Unterverzeichnisse "Common", "Hardware" und "Libraries" wurden vom Skript angelegt, aber sie sind alle leer. Konnte das vielleicht das Problem sein? Im Solution Explorer sind aber alle Unterverzeichnisse mit dem zugehörigen Dateien gefüllt :o (siehe Anlage). Wieso nicht im Projektverzeichnis? Oje, beim 2. Hinsehen merke ich lauter gelbe Warnzeichen vor jeder Dateiname im den Unterverzeichnisse. :oops: Nachdem ich die entsprechende Inhalte aus dem Download von Projekt 140328-11 in die zugehöhrige neu erzeugte aber leer gebliebene Verzeichnisse hineinkopierte, liese sich dann die Solution problemlos kompilieren. :D

Das kann aber doch nicht die Lösung sein. :shock: Deshalb schaute in Download Unterverzeichnis APP->SCRIPTS und öffnete die Skriptdatei "Create" und finde dort dies:

Code: Select all
## all the EFL-Common files have to be copied in the project folder and have to be registered in the cproj file as XML-elements


<SET RName='Includes' ></SET>

<SET Array='True' RName='File' RS='Files' >
Source\Common\BoardpinEFL.c;
Source\Common\BoardpinEFL.h;
Source\Common\CommonEFL.h;
Source\Common\ControllerDefinesEFL.h;
Source\Common\ConfigEFL.c;
Source\Common\ConfigEFL.h;
Source\Common\MapEFL.c;
Source\Common\MapEFL.h;
Source\Common\ProtocolEFL.c;
Source\Common\ProtocolEFL.h;
Source\Common\RingBufferEFL.c;
Source\Common\RingBufferEFL.h;
Source\Common\SchedulerEFL.c;
Source\Common\SchedulerEFL.h;
</SET>


## copy the common-files in the project folder and extend the XML-element for the cproj-file to include the common-files

<FOREACHROW Of='Files' >

<SET RName='FileTarget' >@{Add(Common,\,RightSplitRev(@File,\))}</SET>

<SET RName='Includes' >@{Add(@Includes,Xml(Compile,Include,@FileTarget,Xml(SubType,compile)))}</SET>
<FILERC PathOld='@{Add(@txtEFLFolder,@File)}' PathNew='@{Add(@txtTargetFolder,@txtAppName,\,@txtAppName,\,@FileTarget)}' CopyFile='True' ></FILERC>
</FOREACHROW>


########################################################################################################################################
## the following EFL Library files have to be copied in the project folder and have to be registered in the cproj file as XML-elements

<SET Array='True' RName='File' RS='Files' >

Source\Libraries\LEDButtonEFL.h;
Source\Libraries\LEDButtonEFL.c;
</SET>




Leider verstehe ich diese Skriptsprache nicht und weiß nicht wie ich das debuggen kann. Offenbar läuft da was schief, aber ich weiß nicht was. Kann mir dabei jemand behilflich sein?

Vielen Dank für jede Hilfe,
Attachments
SolutionExplorer.pdf
Unterverzeichnisse in AS6.2
(191.82 KiB) Downloaded 45 times
Ag
ag
 
Posts: 529
Joined: Thu Jan 02, 2014 10:37 am

Re: Mit einem Klick zum C-Projekt - Dezember 2014

Postby ag » Wed Dec 17, 2014 6:37 pm

Problem gelöst.

Da in der heruntergeladene EFL Verzeichnis kein Unterverzeichnis "source" zu finden ist, waren mir die entsprechende Einträge in der "Create" Skript etwas verdächtig:

<SET Array='True' RName='File' RS='Files' >
Source\Common\BoardpinEFL.c;
Source\Common\BoardpinEFL.h;
Source\Common\CommonEFL.h;
Source\Common\ControllerDefinesEFL.h;
Source\Common\ConfigEFL.c;
Source\Common\ConfigEFL.h;
Source\Common\MapEFL.c;
Source\Common\MapEFL.h;
Source\Common\ProtocolEFL.c;
Source\Common\ProtocolEFL.h;
Source\Common\RingBufferEFL.c;
Source\Common\RingBufferEFL.h;
Source\Common\SchedulerEFL.c;
Source\Common\SchedulerEFL.h;
</SET>


Deshalb habe ich probeweise unter EFL ein Unterverzeichnis "source" angelegt, und die restliche unter EFL befindliche Unterverzeichnisse dorthin kopiert. Nun findet das Skript die zu kopierende Dateien und der neue Projekt wird richtig angelegt (mit gefüllte Unterverzeichnisse) :D

Leider gibt es ein weiteres Problem: wenn ich auf die Schaltfläche "Documentation" klick, kommt kein Doxygen, sondern das ganze friert sofort ein und ich kann nur mit Windows Task Manager das Prozess brutal beenden. :(

Na ja, da bin ich mal wieder der Beta-Tester ;)
Last edited by ag on Wed Dec 17, 2014 8:33 pm, edited 1 time in total.
Ag
ag
 
Posts: 529
Joined: Thu Jan 02, 2014 10:37 am

Re: Mit einem Klick zum C-Projekt - Dezember 2014

Postby ag » Wed Dec 17, 2014 7:25 pm

Auch hier konnte ich den Fehler eruieren: in Skriptdatei "OpenDoc" wird davon ausgegegangen, das dass Verzeichnis "Documentation" sich unter EFL befindet. Im Download befindet sich "Documentation" aber direct unter Verzeichnis "EFL Code" und nicht unter die darunterliegende "EFL" Verzeichnis. Außerdem ist noch eine weitere dazwischenliegende Unterverzeichnis "Doxygen", die im Skript nicht enthalten war. Nach entsprechende Korrekturen zur Verzeichnis und Skript, funktioniert nun auch die Schaltfläche "Documentation":

Code: Select all
<FOREACHROW>

<OPEN Browser='IE'  >@{Add(@txtEFLFolder,Documentation\Doxygen\html\group__library.html)}</OPEN>

</FOREACHROW>
Ag
ag
 
Posts: 529
Joined: Thu Jan 02, 2014 10:37 am


Return to Elektor-Mikrocontroller-Forum

Who is online

Users browsing this forum: No registered users and 1 guest