Topfield 5000
Eine Übersicht aller aktuellen TAP Applikationen gibts auf der genialen Seite von Strizzi: |
für eine Einleitung siehe Beschreibung von TAP 0.1
Buffer werden nun transparent von PC memory ins Topfield Memory (respektive umgekehrt) kopiert und MSB/LSB richtig übersetzt. Somit können Strukturen (struct) direkt verwendet werden. Ich habe eine alte Version von JAGs QuickEPG (die letzte mit source code) zum testen verwendet. Es ist also jetzt möglich, "richtig" zu debuggen, variablen zu tracken, usw.
Der grosse Nutzen: Grafische / EPG / File Routinen können nun interaktiv gedebugged werden.
Geplante Änderungen für 0.3: Komplettes transparentes abhandeln von TAP_Main und SystemProc.
[DOWNLOAD] (Anforderungen: Visual C++ 6.0, evtl. höher, TAP SDK 1.0 für Topfield 5000, serielles kabel passend für Topf)
Der Download besteht aus 2 seperaten Projekten, eins für Visual Studio, ein Projekt für die TAP Entwicklungsumgebung. Sinn des Debuggers ist es, unter Windows mit Hilfe eines seriellen Schnittstellenkabels die kompletten TAP Befehle des Topf5000 zu verwenden und damit die Applikationen zu debuggen. Wichtig dabei: das Programm läuft auf dem Windows PC unter Kontrolle des Visual Studio Debuggers, alle Topf Spezifika werden via serielle Schnittstelle zum Topf geschickt, dort ausgeführt und das etwaige resultat zurück geschickt.
Debugging TAP 0.1 ist zur Zeit vor allem dazu geeignet grafische Oberflächen auszutesten (zB TAP_Osd_, sowie TAP_Win_ funktionen).
Anwendung: Serielles Kabel anschliessen und Debugging TAP auf dem Topfield starten. Im Visual Studio Projekt gibt es ein Unterverzeichnis "TopfieldApplication", dort sind 2 files: build.c (sozusagen das build.bat als c include file), sowie die applikation, die ich debuggen möchte (im default fall: topf_app.c). ich kann jetzt das file topf_app in den visual studio editor laden, zB einen breakpoint auf die zeile TAP_GetState legen und das projekt starten. dann kann ich im single stepping mode das Programm durchlaufen.
In der 0.1er version gibts noch ein paar drawbacks: Buffer werden im normalfall nur als pointer (im topf memory) zurückgegeben (strings funktionieren schon), man kann den inhalt dann mit TAP_Debug_BufferT2P(void *targetmemory, topfieldpointer, length) holen, das ist aber noch nicht getestet. d.h. prinzipiell bei allen array operationen muss man den speicher mit TAP_MemAlloc allozieren, lokale arrays und fixe arrays gehen noch nicht. Ausserdem wird zZ die SystemProc nicht unterstützt, d.h. man kann noch nicht auf eingaben von der fernbedienung reagieren, es ist also zZ nur sinnvoll programmteile auszutesten (vor allem grafische oberflächen).
Ausblick: Ich möchte auf jeden fall noch einen speichermapper einbauen, der transparent pc memory und topf memory replizieren kann, damit vollständiges debuggen von array funktionen möglich ist. Ausserdem werde ich noch den kompletten systemproc teil einbauen (d.h. der topf schreit zum pc programm wenn eine fernbedienungscode oä kommt). damit sollten dann topf c dateien und windows c dateien komplett austauschbar werden (solange sie nicht auf den bildschirmspeicher direkt zugreifen).
Bei fragen, bitte im super topfield board melden.
For an Introduction please read TAP 0.1
Buffer are now transparently copied from PC memory to Topfield memory (and vice versa) and MSB/LSB translated (if it's a known structure). That expands the possibilities of the debugger far away from only debugging graphical issues to a real application level debugging. You can track variables, structures, change structures in the debugger, ...
planned improvements for version 0.3: completely transparent usage of TAP_Main and SystemProc - Just use your unmodified source code with events inside the debugger!
[DOWNLOAD] (system requirements: visual c++ 6.0, maybe higher, TAP SDK 1.0 für Topfield 5000, serial cable and the topf itself)
The download consists of 2 different projects, one for visual studio, the other one for the TAP SDK. The reason for the debugger is, that i want to debug applications directly with the visual studio debugger, with the I/O of the tap library directly on the topfield. all the TAP commands are sent to the topf itself, where the topf interprets them, executes them and writes the results back.
Version 0.1 is more or less able to completely test grafical issues (TAP_Osd_, TAP_Win_, ..).
Usage: connect the serial cable to the topf, start the TAP "debugger.tap". Fire up your visual studio 6, in the project directory exists a subdir called "TopfieldApplication" with 2 files. the "build.c" file, which actually includes all the c files of the project, like the build.bat that compiles all the files. the other file is "topf_app.c" which is the demo application for the debugger. try to set a breakpoint at the line with "TAP_GetState" and start the program. now you can singlestep or execute the rest of the program, see the results on you tv.
drawbacks and pitfalls of the 0.1 version: buffer are only sent as long values and use the topfield memory (except strings). so you cannot define a local buffer and use this pointer for a tap function. you absolutely must use TAP_MemAlloc for array, no fixed or local arrays are supported! you can use TAP_Debug_BufferT2P to get data from the topfield to the PC. as a second problem, the systemproc event systems does not work. so this version is more or less only usefull for debugging graphical issues.
planned improvements: I want to write a transparent/automatic memory mapper, so the memory of structs is always synced between topf and pc. the other things is, I want to support the complete systemproc and tap_main stuff, so you can directly debug a existing application, with remote codes that will be sent to the pc...
for questions, please use the excellent german topfield board
copyright 2004, Roland Aigner Software Development, all rights reserved
>> thrash >> death >> metal >> austria >> enemy inside >> burn