Im Prinzip ist die Erstellung und Einbindung eines eigenen Boards
in uracolli recht einfach.
Die folgende kurze Anleitung sollte das Recoden der
Basisroutinen unnötig machen. Hab mir die Verdrahtung mal
angeschaut, kann das Beispiel aber nicht testen, da ich keinen
mega128 hier habe, aber ein bisschen Debugspass soll ja auch
noch bleiben.
So gehts (in 15min):
1) Quellen auschecken:
cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/uracoli
\
co uracoli
2) Ein Headerfile Src/Lib/Inc/boards/board_XYZ.h erzeugen, in dem
Fall hab ich board_stkm8.h kopiert und angepasst. (siehe Anhang)
3) Einen Eintrag in Src/Lib/Inc/boards/board.cfg erzeugen
1 | [acluxi212]
|
2 | comment = acluxi212 Hardware
|
3 | include = boards/board_acluxi212.h
|
4 | cpu = atmega128
|
5 | bootoffset = 0x0
|
6 | ccflags =
|
7 | f_cpu = 8000000UL
|
8 | no_app = diag rdiag sniffer wuart wgpio
|
9 | no_xmpl = xmpl_keys xmpl_key_events xmpl_leds xmpl_dbg xmpl_timer
|
10 | xmpl_hif xmpl_hif_echo
|
11 | xmpl_trx_echo
|
12 | xmpl_trx_txaret xmpl_trx_rxaack
|
13 | xmpl_linbuf_tx xmpl_linbuf_rx xmpl_radio_stream
|
(die vielen Aushnamen bei den Examples und Apps sind deshalb drin,
weil ich zu faul war, Timer und Uart Macros korrekt zu schreiben :-( )
4) scons acluxi212
aufrufen, es sollte alles problemlos bauen.
5) Jetzt geht es ans debuggen der Macros, JTAG ICE oder dragon wäre
schön
5a) Zuerst das Programm xmpl_trx_base.hex/elf laden und debuggen.
Wenn alle SPI Funktionen und der IRQ richtig funktioniert
landet man in der while() schleife.
5b) danach xmpl_trx_tx.hex laden, vorzugsweise hat man dabei einen
sniffer laufen.
5c) danach xmpl_trx_rx.hex laden, wenn auf einem anderen Board
xmpl_trx_tx.hex arbeitet, blinkt die LED im gleichen Takt.
Nun kann man die Library für eigene Anwendungen nehmen und kann sich
auf die Funktionen verlassen.
.