Jump to content

Benützung der Bricks ohne Brickd


Guest HotPizzaBox
 Share

Recommended Posts

Guest HotPizzaBox

Hi

 

Ist es möglich die Bricks ohne den BrickDaemon anzusprechen?

 

Oder gibt es einen BrickDaemon der in C geschrieben ist und den man auf arm cross-compilen könnte?

Link to comment
Share on other sites

Der Brick Daemon ist zwingend für die Übersetzung zwischen USB und TCP/IP nötig.

 

Die WIFI Extension und die zukünftige Ethernet Extension brauchen keinen Brick Daemon auf dem PC, da diese direkt TCP/IP sprechen.

 

Den Brick Daemon für Protokoll v1 gibt es nur die Python. Der neue Brick Daemon für Protokoll v2 ist in C geschrieben, damit er weniger Resources brauch und auf kleinen Rechner wie Routern oder dem Raspberry Pi besser läuft.

 

Auf https://github.com/Tinkerforge/brickd gibt es Brick Daemon v2 schon. Ist allerdings noch nicht ganz fertig. Funktioniert im Moment auf Windows, Linux und Mac OS X. Für Linux und Mac liegt unter src/brickv ein Makefile.

 

Für ARM zu crosscompilen habe ich noch nicht getestet. Du kannst das ja mal versuchen und berichten, ob's schon direkt so funktioniert oder welchen Änderungen noch für ARM nötig sind, denn die fertige Version soll auch auf ARM funktionieren.

Link to comment
Share on other sites

Also für den mips-basierten OpenWrt (TL-MR3420/3020) geht das kompilieren schon mal - mit etwas Modifikation des Makefiles. Beim Linker fehlt mir noch der Pfad zur libudev.

Was würde denn schon funktionieren und welche Bricks/Bricklets können damit umgehen ?

 

Link to comment
Share on other sites

Was musstest du denn ändern am Makefile? Dann kann ich das schon mal einbauen.

 

Bezüglich libudev sollte pkg-config eigentlich alle nötige Pfade liefern.

 

Auf github findet sich auch der Source Code für alle Firmwares und Plugins. Diese sind schon grundsätzlich für Protokoll 2.0 umgebaut. Es fehlen noch ein paar Kleinigkeiten und Authentication.

 

Wir haben noch keine vorkompilieren Firmwares/Plugins auf unserm Server aber im Source Code ist Protokoll 2.0 soweit fortgeschritten, dass du es schon testen kannst wenn du brickd und brickv sowie die Firmwares und Plugins aus dem aktuellen Source Code kompilierst und deine Bricks und Bricklets neu flashed.

Link to comment
Share on other sites

Na da es kein configure gibt, musste ich die Umgebung für das Crosscompilieren mit einbauen.

Auf dem Router kann ich nicht direkt kompilieren.

Aber wenn die Firmware schon läuft versuche ich mal die Resevebrick zu flaschen und mit ihr zu 'sprechen'. Ich vermute das die letzte Mail so zu verstehen ist, das die Bindings noch kein 2.0 unterstützen ?!

 

Update: Zumindest auf dem PC habe ich Brickd und Brickv laufen. Eine Masterbrick und 2 Temperatur Bricklets sind neu geflasht und ich kann sie mit 2.0 auslesen.

Next step: Brickd aud den Router schieben ...

 

Übrigens gehört mein feature-request eher in diesen thread:

Könnte man die neuen Bindings so bauen, dass sie sich auch ohne den brickd über ein serielles RS485 Device - oder auch direkt über tcpip

(wifi-, ethernet Extension) mit einem als entsprechender slave configuriertem Stack verbinden können ?

Link to comment
Share on other sites

Guest HotPizzaBox

Ich konnte die Frimware für den TemperaturBricklet erstellen. Jedoch wird beim MasterBrick nur ein master-brick.elf erstellt.

 

Hat das bei dir (skippi) ohne Probleme funktioniert?

Link to comment
Share on other sites

Guest HotPizzaBox

Okay, das Problem mit dem nicht existenten master-brick.bin ist gelöst. Leider funktioniert der MasterBrick nach dem flashen nicht mehr.

 

Beim Brick leuchtet nur noch die Blaue LED gleich neben dem Resetknopf ansonsten tut sich nichts.

 

Irgend eine idee?

 

Scanning dependencies of target master-brick.elf
[  1%] Building C object CMakeFiles/master-brick.elf.dir/src/communication.obj
[  2%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/logging/logging.obj
[  3%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/crc/crc.obj
[  4%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/dacc/dacc.obj
[  6%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/pwmc/pwmc.obj
/home/pascal/master-brick/software/src/bricklib/drivers/pwmc/pwmc.c: In function 'PWMC_ConfigureClocks':
/home/pascal/master-brick/software/src/bricklib/drivers/pwmc/pwmc.c:116:36: warning: array subscript is above array bounds [-Warray-bounds]
/home/pascal/master-brick/software/src/bricklib/drivers/pwmc/pwmc.c:116:36: warning: array subscript is above array bounds [-Warray-bounds]
[  7%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/usart/uart_console.obj
[  8%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/usart/usart.obj
[  9%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/twi/twid.obj
[ 10%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/twi/twi.obj
[ 12%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/adc/adc.obj
[ 13%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/pio/pio.obj
[ 14%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/pio/pio_it.obj
[ 15%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/efc/efc.obj
[ 16%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/wdt/wdt.obj
[ 18%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/flash/flashd.obj
[ 19%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/board/board_cstartup_gnu.obj
[ 20%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/board/board_lowlevel.obj
[ 21%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/board/exceptions.obj
[ 22%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/tc/tc.obj
[ 24%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/usb/USBD.obj
[ 25%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/usb/USBDescriptors.obj
[ 26%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/usb/USBRequests.obj
[ 27%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/usb/USBDCallbacks.obj
[ 28%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/usb/USBD_HAL.obj
[ 30%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/usb/USBDDriver.obj
[ 31%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/usb/USBDDriverCallbacks.obj
[ 32%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/pmc/pmc.obj
[ 33%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/spi/spi.obj
[ 34%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/drivers/uid/uid.obj
[ 36%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/free_rtos/croutine.obj
[ 37%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/free_rtos/tasks.obj
[ 38%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/free_rtos/portable/MemMang/heap_3.obj
[ 39%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/free_rtos/portable/GCC/ARM_CM3/port.obj
[ 40%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/free_rtos/queue.obj
[ 42%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/free_rtos/list.obj
[ 43%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/utility/pearson_hash.obj
[ 44%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/utility/rand.obj
[ 45%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/utility/init.obj
[ 46%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/utility/led.obj
[ 48%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/utility/syscalls.obj
[ 49%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/utility/profiling.obj
[ 50%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/utility/trace.obj
[ 51%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/utility/sqrt.obj
[ 53%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/utility/mutex.obj
[ 54%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/com_messages.obj
[ 55%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_common.obj
[ 56%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_slave.obj
[ 57%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_master.obj
[ 59%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/none/none.obj
[ 60%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/com.obj
[ 61%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/usb/usb_descriptors.obj
[ 62%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/usb/usb_callbacks.obj
[ 63%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/usb/usb.obj
[ 65%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/com_common.obj
[ 66%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/i2c/i2c_clear_bus.obj
[ 67%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/spi/spi_stack/spi_stack_common.obj
[ 68%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/spi/spi_stack/spi_stack_slave.obj
[ 69%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/spi/spi_stack/spi_stack_master.obj
[ 71%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/com/spi/spi_stack/spi_stack_select.obj
[ 72%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/bricklet/bricklet_communication.obj
[ 73%] Building C object CMakeFiles/master-brick.elf.dir/src/bricklib/bricklet/bricklet_init.obj
[ 74%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/extension_init.obj
[ 75%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/extension_i2c.obj
[ 77%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/brickd.obj
[ 78%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/chibi/chibi_low_level.obj
[ 79%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/chibi/chibi_master.obj
[ 80%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/chibi/chibi_slave.obj
[ 81%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/chibi/chibi_init.obj
[ 83%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/chibi/chibi.obj
[ 84%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/rs485/rs485_low_level.obj
[ 85%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/rs485/rs485_slave.obj
[ 86%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/rs485/rs485_master.obj
[ 87%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/rs485/rs485.obj
[ 89%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/wifi/wifi_low_level.obj
[ 90%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/wifi/wifi_command.obj
[ 91%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/wifi/wifi_data.obj
[ 92%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/wifi/wifi.obj
[ 93%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/ethernet/ethernet_low_level.obj
[ 95%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/ethernet/ethernet_dhcp.obj
[ 96%] Building C object CMakeFiles/master-brick.elf.dir/src/extensions/ethernet/ethernet.obj
[ 97%] Building C object CMakeFiles/master-brick.elf.dir/src/main.obj
[ 98%] Building C object CMakeFiles/master-brick.elf.dir/src/master.obj
[100%] Building C object CMakeFiles/master-brick.elf.dir/src/routing.obj
Linking C executable master-brick.elf
   text	   data	    bss	    dec	    hex	filename
109980	      0	   5220	 115200	  1c200	master-brick.elf
[100%] Built target master-brick.elf

Link to comment
Share on other sites

Guest HotPizzaBox

was ich gemacht habe:

git clone git://github.com/Tinkerforge/master-brick.git

cd master-brick/software/src

git clone git://github.com/Tinkerforge/bricklib.git

cd ../

./generate_makefile

-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /home/clfs/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/arm-none-eabi-gcc
-- Check for working C compiler: /home/clfs/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/arm-none-eabi-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /home/clfs/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/arm-none-eabi-g++
-- Check for working CXX compiler: /home/clfs/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/arm-none-eabi-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- 
Found following source files:
/home/pascal/master-brick/software/src/communication.c;/home/pascal/master-brick/software/src/bricklib/logging/logging.c;/home/pascal/master-brick/software/src/bricklib/drivers/crc/crc.c;/home/pascal/master-brick/software/src/bricklib/drivers/dacc/dacc.c;/home/pascal/master-brick/software/src/bricklib/drivers/pwmc/pwmc.c;/home/pascal/master-brick/software/src/bricklib/drivers/usart/uart_console.c;/home/pascal/master-brick/software/src/bricklib/drivers/usart/usart.c;/home/pascal/master-brick/software/src/bricklib/drivers/twi/twid.c;/home/pascal/master-brick/software/src/bricklib/drivers/twi/twi.c;/home/pascal/master-brick/software/src/bricklib/drivers/adc/adc.c;/home/pascal/master-brick/software/src/bricklib/drivers/pio/pio.c;/home/pascal/master-brick/software/src/bricklib/drivers/pio/pio_it.c;/home/pascal/master-brick/software/src/bricklib/drivers/efc/efc.c;/home/pascal/master-brick/software/src/bricklib/drivers/wdt/wdt.c;/home/pascal/master-brick/software/src/bricklib/drivers/flash/flashd.c;/home/pascal/master-brick/software/src/bricklib/drivers/board/board_cstartup_gnu.c;/home/pascal/master-brick/software/src/bricklib/drivers/board/board_lowlevel.c;/home/pascal/master-brick/software/src/bricklib/drivers/board/exceptions.c;/home/pascal/master-brick/software/src/bricklib/drivers/tc/tc.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBD.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBDescriptors.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBRequests.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBDCallbacks.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBD_HAL.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBDDriver.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBDDriverCallbacks.c;/home/pascal/master-brick/software/src/bricklib/drivers/pmc/pmc.c;/home/pascal/master-brick/software/src/bricklib/drivers/spi/spi.c;/home/pascal/master-brick/software/src/bricklib/drivers/uid/uid.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/croutine.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/tasks.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/portable/MemMang/heap_3.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/portable/GCC/ARM_CM3/port.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/queue.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/list.c;/home/pascal/master-brick/software/src/bricklib/utility/pearson_hash.c;/home/pascal/master-brick/software/src/bricklib/utility/rand.c;/home/pascal/master-brick/software/src/bricklib/utility/init.c;/home/pascal/master-brick/software/src/bricklib/utility/led.c;/home/pascal/master-brick/software/src/bricklib/utility/syscalls.c;/home/pascal/master-brick/software/src/bricklib/utility/profiling.c;/home/pascal/master-brick/software/src/bricklib/utility/trace.c;/home/pascal/master-brick/software/src/bricklib/utility/sqrt.c;/home/pascal/master-brick/software/src/bricklib/utility/mutex.c;/home/pascal/master-brick/software/src/bricklib/com/com_messages.c;/home/pascal/master-brick/software/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_common.c;/home/pascal/master-brick/software/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_slave.c;/home/pascal/master-brick/software/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_master.c;/home/pascal/master-brick/software/src/bricklib/com/none/none.c;/home/pascal/master-brick/software/src/bricklib/com/com.c;/home/pascal/master-brick/software/src/bricklib/com/usb/usb_descriptors.c;/home/pascal/master-brick/software/src/bricklib/com/usb/usb_callbacks.c;/home/pascal/master-brick/software/src/bricklib/com/usb/usb.c;/home/pascal/master-brick/software/src/bricklib/com/com_common.c;/home/pascal/master-brick/software/src/bricklib/com/i2c/i2c_clear_bus.c;/home/pascal/master-brick/software/src/bricklib/com/spi/spi_stack/spi_stack_common.c;/home/pascal/master-brick/software/src/bricklib/com/spi/spi_stack/spi_stack_slave.c;/home/pascal/master-brick/software/src/bricklib/com/spi/spi_stack/spi_stack_master.c;/home/pascal/master-brick/software/src/bricklib/com/spi/spi_stack/spi_stack_select.c;/home/pascal/master-brick/software/src/bricklib/bricklet/bricklet_communication.c;/home/pascal/master-brick/software/src/bricklib/bricklet/bricklet_init.c;/home/pascal/master-brick/software/src/extensions/extension_init.c;/home/pascal/master-brick/software/src/extensions/extension_i2c.c;/home/pascal/master-brick/software/src/extensions/brickd.c;/home/pascal/master-brick/software/src/extensions/chibi/chibi_low_level.c;/home/pascal/master-brick/software/src/extensions/chibi/chibi_master.c;/home/pascal/master-brick/software/src/extensions/chibi/chibi_slave.c;/home/pascal/master-brick/software/src/extensions/chibi/chibi_init.c;/home/pascal/master-brick/software/src/extensions/chibi/chibi.c;/home/pascal/master-brick/software/src/extensions/rs485/rs485_low_level.c;/home/pascal/master-brick/software/src/extensions/rs485/rs485_slave.c;/home/pascal/master-brick/software/src/extensions/rs485/rs485_master.c;/home/pascal/master-brick/software/src/extensions/rs485/rs485.c;/home/pascal/master-brick/software/src/extensions/wifi/wifi_low_level.c;/home/pascal/master-brick/software/src/extensions/wifi/wifi_command.c;/home/pascal/master-brick/software/src/extensions/wifi/wifi_data.c;/home/pascal/master-brick/software/src/extensions/wifi/wifi.c;/home/pascal/master-brick/software/src/extensions/ethernet/ethernet_low_level.c;/home/pascal/master-brick/software/src/extensions/ethernet/ethernet_dhcp.c;/home/pascal/master-brick/software/src/extensions/ethernet/ethernet.c;/home/pascal/master-brick/software/src/main.c;/home/pascal/master-brick/software/src/master.c;/home/pascal/master-brick/software/src/routing.c

-- Configuring done
-- Generating done
-- Build files have been written to: /home/pascal/master-brick/software/build

cd build

make

--> leider wird das bin nicht erstellt also nochmal generate-makefile

da wird am schluss eine Warnung angezeit. Sobald die erscheint sollte das bin file auch erstellt werden

Found following source files:
/home/pascal/master-brick/software/src/communication.c;/home/pascal/master-brick/software/src/bricklib/logging/logging.c;/home/pascal/master-brick/software/src/bricklib/drivers/crc/crc.c;/home/pascal/master-brick/software/src/bricklib/drivers/dacc/dacc.c;/home/pascal/master-brick/software/src/bricklib/drivers/pwmc/pwmc.c;/home/pascal/master-brick/software/src/bricklib/drivers/usart/uart_console.c;/home/pascal/master-brick/software/src/bricklib/drivers/usart/usart.c;/home/pascal/master-brick/software/src/bricklib/drivers/twi/twid.c;/home/pascal/master-brick/software/src/bricklib/drivers/twi/twi.c;/home/pascal/master-brick/software/src/bricklib/drivers/adc/adc.c;/home/pascal/master-brick/software/src/bricklib/drivers/pio/pio.c;/home/pascal/master-brick/software/src/bricklib/drivers/pio/pio_it.c;/home/pascal/master-brick/software/src/bricklib/drivers/efc/efc.c;/home/pascal/master-brick/software/src/bricklib/drivers/wdt/wdt.c;/home/pascal/master-brick/software/src/bricklib/drivers/flash/flashd.c;/home/pascal/master-brick/software/src/bricklib/drivers/board/board_cstartup_gnu.c;/home/pascal/master-brick/software/src/bricklib/drivers/board/board_lowlevel.c;/home/pascal/master-brick/software/src/bricklib/drivers/board/exceptions.c;/home/pascal/master-brick/software/src/bricklib/drivers/tc/tc.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBD.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBDescriptors.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBRequests.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBDCallbacks.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBD_HAL.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBDDriver.c;/home/pascal/master-brick/software/src/bricklib/drivers/usb/USBDDriverCallbacks.c;/home/pascal/master-brick/software/src/bricklib/drivers/pmc/pmc.c;/home/pascal/master-brick/software/src/bricklib/drivers/spi/spi.c;/home/pascal/master-brick/software/src/bricklib/drivers/uid/uid.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/croutine.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/tasks.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/portable/MemMang/heap_3.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/portable/GCC/ARM_CM3/port.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/queue.c;/home/pascal/master-brick/software/src/bricklib/free_rtos/list.c;/home/pascal/master-brick/software/src/bricklib/utility/pearson_hash.c;/home/pascal/master-brick/software/src/bricklib/utility/rand.c;/home/pascal/master-brick/software/src/bricklib/utility/init.c;/home/pascal/master-brick/software/src/bricklib/utility/led.c;/home/pascal/master-brick/software/src/bricklib/utility/syscalls.c;/home/pascal/master-brick/software/src/bricklib/utility/profiling.c;/home/pascal/master-brick/software/src/bricklib/utility/trace.c;/home/pascal/master-brick/software/src/bricklib/utility/sqrt.c;/home/pascal/master-brick/software/src/bricklib/utility/mutex.c;/home/pascal/master-brick/software/src/bricklib/com/com_messages.c;/home/pascal/master-brick/software/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_common.c;/home/pascal/master-brick/software/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_slave.c;/home/pascal/master-brick/software/src/bricklib/com/i2c/i2c_eeprom/i2c_eeprom_master.c;/home/pascal/master-brick/software/src/bricklib/com/none/none.c;/home/pascal/master-brick/software/src/bricklib/com/com.c;/home/pascal/master-brick/software/src/bricklib/com/usb/usb_descriptors.c;/home/pascal/master-brick/software/src/bricklib/com/usb/usb_callbacks.c;/home/pascal/master-brick/software/src/bricklib/com/usb/usb.c;/home/pascal/master-brick/software/src/bricklib/com/com_common.c;/home/pascal/master-brick/software/src/bricklib/com/i2c/i2c_clear_bus.c;/home/pascal/master-brick/software/src/bricklib/com/spi/spi_stack/spi_stack_common.c;/home/pascal/master-brick/software/src/bricklib/com/spi/spi_stack/spi_stack_slave.c;/home/pascal/master-brick/software/src/bricklib/com/spi/spi_stack/spi_stack_master.c;/home/pascal/master-brick/software/src/bricklib/com/spi/spi_stack/spi_stack_select.c;/home/pascal/master-brick/software/src/bricklib/bricklet/bricklet_communication.c;/home/pascal/master-brick/software/src/bricklib/bricklet/bricklet_init.c;/home/pascal/master-brick/software/src/extensions/extension_init.c;/home/pascal/master-brick/software/src/extensions/extension_i2c.c;/home/pascal/master-brick/software/src/extensions/brickd.c;/home/pascal/master-brick/software/src/extensions/chibi/chibi_low_level.c;/home/pascal/master-brick/software/src/extensions/chibi/chibi_master.c;/home/pascal/master-brick/software/src/extensions/chibi/chibi_slave.c;/home/pascal/master-brick/software/src/extensions/chibi/chibi_init.c;/home/pascal/master-brick/software/src/extensions/chibi/chibi.c;/home/pascal/master-brick/software/src/extensions/rs485/rs485_low_level.c;/home/pascal/master-brick/software/src/extensions/rs485/rs485_slave.c;/home/pascal/master-brick/software/src/extensions/rs485/rs485_master.c;/home/pascal/master-brick/software/src/extensions/rs485/rs485.c;/home/pascal/master-brick/software/src/extensions/wifi/wifi_low_level.c;/home/pascal/master-brick/software/src/extensions/wifi/wifi_command.c;/home/pascal/master-brick/software/src/extensions/wifi/wifi_data.c;/home/pascal/master-brick/software/src/extensions/wifi/wifi.c;/home/pascal/master-brick/software/src/extensions/ethernet/ethernet_low_level.c;/home/pascal/master-brick/software/src/extensions/ethernet/ethernet_dhcp.c;/home/pascal/master-brick/software/src/extensions/ethernet/ethernet.c;/home/pascal/master-brick/software/src/main.c;/home/pascal/master-brick/software/src/master.c;/home/pascal/master-brick/software/src/routing.c

-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_TOOLCHAIN_FILE


-- Build files have been written to: /home/pascal/master-brick/software/build

 

Die Firmware ist ca 107kb gross bei mir.

 

Leider immer noch das selbe Ergebniss. Ich habe keiene Bricklets angeschlossen.

Link to comment
Share on other sites

Wenn man das so liest, bewundere ich eure Ausdauer und das Geschick sich zwecks eigenem FW-Build durch diese Materie zu graben.

Für den Normalsterblichen reicht nicht die Zeit oder das Expertenwissen, wäre schön wenn ein ausführliches Tutorial irgendwann mal den Weg ins Wiki schafft.

Link to comment
Share on other sites

Nic, eigentlich sind hier alle nötigen Schritte beschrieben, wenn auch etwas knapp. Wo ich dir recht geben muss, da fehlt noch eine Art FAQ über mögliche Probleme und deren Lösungen.

 

HotPizzaBox, wie flashed du die Firmware? Genauer gefragt wie bringst du den Brick in den Bootloader Modus? Erase gedrückt halten und dann USB anstecken? In dem Fall schaft brickv es nach dem Flashen nicht den Brick richtig neuzustarten. Dann muss du einmal USB ab- und wieder anstecken, damit der Brick richtig neustartet.

 

Warum das passiert ist nicht ganz klar, wenn du allerdings Reset drückst, während Erase gedrückt gehalten wird und USB angeschlossen ist, dann funktioniert das Neustarten durch bríckv nach dem Flashen.

 

Ich dachte ich hätte das in der Dokumentation schon abgeändert, scheint nicht der Fall zu sein ???

Link to comment
Share on other sites

...eigentlich sind hier alle nötigen Schritte beschrieben, wenn auch etwas knapp.

Ich muss vor dem generate_makefile noch ein paar Pfade setzen:

 

export CMAKE_C_COMPILER=/opt/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/arm-none-eabi-gcc
export CMAKE_CXX_COMPILER=/opt/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/arm-none-eabi-g++
export PATH=/opt/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/:${PATH}

 

glaube aber nicht, das das HotPizzaBoxs Problem ist.

Bei mir wird das bin beim ersten mal erzeugt und es gibt auch weder beim kompilieren noch nachträglich Fehlermeldungen.

Vielleicht sind die Files beim download beschädigt worden. Hole doch das monierte pwmc nochmal.

Sonst fällt mir nur noch eine neue Kompilerversion ein ? Meine ist:

gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-69)

Das Binary ist:

119996 2012-12-03 15:48 master-brick.bin

 

Link to comment
Share on other sites

Guest HotPizzaBox

Also, ich habe es heute noch einmal versucht, neues Linux, neue Sourcery CodeBench gcc 4.7.2 (?) (Release 13. November 2012)

 

brickv / brickd ohne Probleme

 

master-brick wird normal geflasht jedoch startet er nicht mehr. Ich habe nun auch versucht die Reset-Taste und die Erase-Taste zusammengedrückt zu halten und danach den Master-brick anzuschließen. Jedoch bleibt das Ergebnis dasselbe. Nach erneutem Verbinden leuchtet einfach die LED neben dem Reset-Knopf

Link to comment
Share on other sites

Guest HotPizzaBox

also Problem mit dem Master-Brick gelöst...

 

Version:

Sourcery CodeBench Lite 2012.09-63 for ARM EABI ist nicht kompatibel (für mich jedenfalls)

 

Version:

Sourcery CodeBench Lite 2011.09-69 for ARM EABI ist kompatibel

 

nun noch eine Frage:

Wann werden die C Bindings fertig sein?

Link to comment
Share on other sites

HotPizzaBox, meinst du "Sourcery CodeBench Lite 2012.09-63 for ARM EABI" mit den "Sourcery CodeBench gcc 4.7.2 (?) (Release 13. November 2012)"? Ich frage, weil ich für eine "November 2012" Release eine andere Nummer als 2012.09-63 erwarten würde, denn 09 sieht so nach dem Monat aus.

 

Ich füge gerade auf der Firmware und Plugins Seite eine Liste über verschiedene Compilerversionen ein mit Angaben darüber ob diese Version richtig funktioniert.

Link to comment
Share on other sites

...eigentlich sind hier alle nötigen Schritte beschrieben, wenn auch etwas knapp.

Ich muss vor dem generate_makefile noch ein paar Pfade setzen:

 

export CMAKE_C_COMPILER=/opt/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/arm-none-eabi-gcc
export CMAKE_CXX_COMPILER=/opt/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/arm-none-eabi-g++
export PATH=/opt/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/:${PATH}

 

Es reicht eigentlich das bin Verzeichnis vor den PATH zu hängen, cmake findet dann die ARM Compiler selbst ohne, dass du CMAKE_C(XX)_COMPILER setzen musst.

Link to comment
Share on other sites

Guest HotPizzaBox

HotPizzaBox, meinst du "Sourcery CodeBench Lite 2012.09-63 for ARM EABI" mit den "Sourcery CodeBench gcc 4.7.2 (?) (Release 13. November 2012)"? Ich frage, weil ich für eine "November 2012" Release eine andere Nummer als 2012.09-63 erwarten würde, denn 09 sieht so nach dem Monat aus.

 

Ich füge gerade auf der Firmware und Plugins Seite eine Liste über verschiedene Compilerversionen ein mit Angaben darüber ob diese Version richtig funktioniert.

 

hier mein Download-Link: http://go.mentor.com/2jxr4

Link to comment
Share on other sites

Guest HotPizzaBox

Okay, ich konnte libusb-1.0 für arm builden. Jedoch habe ich Probleme mit der libudev, weiss jemand wo ich das finde und wie ich das kompiliere?

Link to comment
Share on other sites

Unter Linux benutzen wir libudev um uevents vom Kernel zu bekommen, die z.B. dann ausgelöst werden wenn USB Geräte ab- oder angesteckt werden. So bekommt brickd damit, dass ein Brick ab- oder angesteckt wurde.

 

Unter Windows benutzten wir dafür die DeviceNotifcation Funktionalität der WinAPI.

 

Unter Mac OS X benutzten wir dafür den IONotificationPort von IOKit.

 

Essentiell ist das nicht und brickd könnte auch ohne, nur kennt brickd dann halt nur die USB Geräte die da waren als brickd gestartet wurde.

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...