Jump to content

Firmware in Eclipse kompilieren


Recommended Posts

Hallo

 

Ich bin dabei, die Firmware mit Eclipse zu kompilieren, allerdings gibt es da Probleme.

 

Ich verwende Windows 7, Eclipse 4.3 (Kepler) mit Plug-in "GNU ARM", CMake 2.8.11.2, Sourcery CodeBench Lite 2013.05.23.

 

Wenn ich die Firmware über "generate_makefile.bat" kompilieren, funktioniert es auch.

Aber halt nicht in Eclipse.

 

Ich hab mir schon den Thread von David angesehen (http://www.tinkerunity.org/forum/index.php/topic,1505.msg10024.html) und konnte da einige interessante Informationen bekommen, aber es hat sich inzwischen einiges geändert.

 

- Bei den Eclipse Projekteinstellungen musste ich bei "Build Command" anstatt "make" -> "cmake" schreiben.

- Desweiteren gibt es den Menüpunkt "Discovery Options" nicht mehr.

  Sie wurde ersetzt durch "Project -> Properties -> C/C++ General -> Preprocessor Include Paths, Marcos" ersetzt.

  Deshalb weiß ich jetzt nicht, wurde in den Einstellung (bei "Discovery Options") etwas geändert?

 

Jetzt bekomme ich diese Fehlermeldung:

12:45:13 **** Build of configuration Debug for project master ****
cmake -C C:/Users/admin/Desktop/eclipse/workspace/master/build all 
loading initial cache file C:/Users/admin/Desktop/eclipse/workspace/master/build
CMake Error: cmListFileCache: error can not open file C:/Users/admin/Desktop/eclipse/workspace/master/build
CMake Error: Error processing file:C:/Users/admin/Desktop/eclipse/workspace/master/build
-- 
Found following source files:
C:/Users/admin/Desktop/eclipse/workspace/master/all/src/communication.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/logging/logging.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/crc/crc.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/dacc/dacc.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/pwmc/pwmc.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/usart/uart_console.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/usart/usart.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/twi/twid.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/twi/twi.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/adc/adc.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/pio/pio.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/pio/pio_it.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/efc/efc.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/wdt/wdt.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/flash/flashd.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/board/board_cstartup_gnu.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/board/board_lowlevel.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/board/exceptions.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/tc/tc.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/usb/USBD.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/usb/USBDescriptors.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/usb/USBRequests.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/usb/USBDCallbacks.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/usb/USBD_HAL.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/usb/USBDDriver.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/usb/USBDDriverCallbacks.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/pmc/pmc.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/spi/spi.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/drivers/uid/uid.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/free_rtos/croutine.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/free_rtos/tasks.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/free_rtos/portable/MemMang/heap_3.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/free_rtos/portable/GCC/ARM_CM3/port.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/free_rtos/queue.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/free_rtos/list.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/utility/pearson_hash.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/utility/rand.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/utility/init.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/utility/led.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/utility/syscalls.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/utility/profiling.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/utility/trace.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/utility/sqrt.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/utility/mutex.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/com_messages.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_common.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_slave.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_master.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/none/none.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/com.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/usb/usb_descriptors.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/usb/usb_callbacks.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/usb/usb.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/com_common.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/i2c/i2c_clear_bus.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/spi/spi_stack/spi_stack_common.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/spi/spi_stack/spi_stack_slave.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/spi/spi_stack/spi_stack_master.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/com/spi/spi_stack/spi_stack_select.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/bricklet/bricklet_communication.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/bricklib/bricklet/bricklet_init.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/extension_init.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/extension_i2c.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/brickd.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/chibi/chibi_low_level.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/chibi/chibi_master.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/chibi/chibi_slave.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/chibi/chibi_init.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/chibi/chibi.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/rs485/rs485_low_level.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/rs485/rs485_slave.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/rs485/rs485_master.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/rs485/rs485.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/wifi/wifi_low_level.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/wifi/wifi_command.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/wifi/wifi_data.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/wifi/wifi_ringbuffer.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/wifi/wifi.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/ethernet/ethernet_low_level.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/ethernet/ethernet_dhcp.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/extensions/ethernet/ethernet.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/main.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/master.c;C:/Users/admin/Desktop/eclipse/workspace/master/all/src/routing.c

-- Configuring incomplete, errors occurred!

12:45:13 Build Finished (took 133ms)

 

Kann mir jemand sagen, was dieses "cmListFileCache"-File ist?

Und wozu wird der Ordner "/all" gebraucht, den ich extra anlegen musste?

 

Gruß

FLORIAN

Link to comment
Share on other sites

- Bei den Eclipse Projekteinstellungen musste ich bei "Build Command" anstatt "make" -> "cmake" schreiben.

 

Nein, dass kann nicht richtig sein. cmake und make haben verschiedene Aufgaben. cmake erzeugt das Makefile das make dann verarbeitet.

 

make -C C:/Users/admin/Desktop/eclipse/workspace/master/build all

 

Das würde Sinn ergeben: -C sagt make es soll zuerst mal in das angegebene Verzeichnis wechseln und dort das Target all im dortigen Makefile erfüllen. Mit cmake ergibt das keinen Sinn. Es gibt auch in cmake eine -C Option aber dies erwartet eine Cache-Datei, was das build Verzeichnis aber nicht ist. Auch ist all kein Verzeichnis.

 

Du solltest also erstmal das "Build Command" von cmake auf make zurückstellen. Die sonstigen Fehler sind Folgefehler von diesem Problem.

Link to comment
Share on other sites

Mal eine ganz verwegene Frage zum Thema FW:

Wäre es möglich eine komlette Entwicklungsumgebung der User-Community mit allen notwendigen Frameworks, Plugins, Bundles etc. die zum Bearbeiten der TF-FW nötig sind, zusammenzustellen und diese hier im TF-Portal als Download zur Verfügung zu stellen ? Sozusagen ein all-incl. und sorgenfreies :) Komplettpaket...

 

Als IDE würde ich mir das platformunabh.Eclipse Kepler durchaus vorstellen, allerdings sind mir die ARM-Frameworks und deren Abhängigkeiten und weiteren Tools ein Buch mit 7 Siegeln :(

Link to comment
Share on other sites

Dann bekomme ich aber die Fehlermeldung, das "make" nicht vorhanden ist.

 

14:24:22 **** Build of configuration Debug for project master ****
make -C C:/Users/admin/Desktop/eclipse/workspace/master/build all 
Cannot run program "make": Launching failed

Error: Program "make" not found in PATH
PATH=[C:\Programme\CodeSourcery\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;;C:\Program Files (x86)\Microchip\MPLAB C32 Suite\bin;C:\Program Files (x86)\HI-TECH Software\PICC\9.83\bin;c:\program files (x86)\bmw\ediabas\bin;C:\Program Files\SlikSvn\bin;C:\Program Files\TortoiseSVN\bin;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Windows Imaging\;C:\Program Files (x86)\CMake 2.8\bin\]

14:24:23 Build Finished (took 300ms)

 

 

Was muss ich da noch einfügen in PATH?

Link to comment
Share on other sites

Dann fehlt dir make an sich noch, gut möglich das weder Eclipse noch der Code Sourcery Installer das mitbringen.

 

Das GnuWin32 Projekt beinhaltet eine make Version für Windows, die kannst du hier finden:

 

http://gnuwin32.sourceforge.net/packages/make.htm

 

Am einfachsten nimmst du den "Complete package, except sources" Download. Standardmäßig installiert der make nach "C:\Programme\GnuWin32\bin". Wenn der Installer diesen Ordner nicht schon zum PATH hinzufügt musst du das noch händisch tun. Dann sollte Eclipse make finden. Ich denke dann hast du alle Tools zusammen.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...