Hallo zusammen,
also wir setzen hier den TriCore TC1796 seit ein paar Monaten
erfolgreich an unserem Lehrstuhl ein, wir verwenden aber nicht den
Tasking Compiler, sondern den GCC von HighTec. Ich habe hier ein paar
Erfahrungen beizutragen, aber auch eine Frage:
Zum Thema eigene Schaltung:
alle TriCore-Derivate sind in BGA-Gehäusen unter gebracht, die in eine
eigene Schaltung zu integrieren dürfte also schon ziemlich sportlich
werden, wenn man kein professionelles Equipment zur Verfügung hat.
Zum Thema Debuggen:
der TriCore hat ein sog. OCDS (OnChip Debug System), also soetwas
ähnliches wie ein JTAG, nur von Infineon :-) und die Eva-Boards von
Infineon selbst haben auch alle einen Onboard-Wiggler, d.h. man kann die
Teile einfach über die parallele Schnittstelle an flanschen und das Teil
prinzipiell debuggen - man braucht aber noch etwas, das das
OCDS-Protokoll in ein von irgendeinem Debugger unterstütztes Protokoll
(z.B. für den GDB) umsetzt, die GNU Toolchain von HighTeC bringt hier
einen sog. jtagserver mit. Das Debuggen mit dem GDB funktioniert zwar
insgesamt sehr gut, ist aber für einen so komplexen Chip wie den TC1796
schon etwas spartanisch, wir haben deshalb noch einen Lauterbach Trace32
inkl. Tracer, d.h. man kann Instruktions-Traces mit Timestamps
aufzeichnen lassen, zurück steppen (!!!), hat auch noch sehr einfach
Zugriff auf alle möglichen Peripherie-Register ..., der Nachteil: das
Teil hat ca. 10000 € gekostet, also für den Hobbyisten nicht
erschwinglich, für ernsthafte Softwareentwicklung aber auf jedenfall
lohnend.
Zum Thema Flashen:
Das Flashen über den Debugger (GDB und Trace32) laden zunächst über das
OCDS ein Programm ins RAM des Controllers, das seinerseits die
eigentlich Programmierung des Flash übernimmt, es ist also eine
In-System-Programmierung. Prinzipiell kann der TC1796 auch von diversen
Schnittstellen, wie z.B. seriell, CAN, etc. booten und man könnte sich
überlegen, das Programm zum Flashen auf diese Weise zu laden. Wie man
den TriCore aber "von außen" in den Zustand versetzt, dass er auf dieses
spezielle Weise bootet, damit habe ich mich noch nicht beschäftigt, und
weiß demzufolge auch nicht, ob das überhaupt klappt - abgesehen davon:
man möchte das teil wirklich nicht alleine über eine LED debuggen, also
kann man auch gleich über den Debugger Flashen (ich habe es allerdings
noch nicht geschafft über den GDB Breakpoints im Flash zu setzen :-()
Meine Frage zum Thema Tasking:
Wie findest du bisher die Tasking Toolchain - viele Leute mit denen ich
mich unterhalten habe, empfinden diese Toolchain als einzige Plage. Ist
da mittlerweile das Linker-Skript-Format sauber dokumentiert?
Ciao, Fabian