Also folgende Erfahrungen habe ich gemacht:
- Wenn man eine Baugruppe initialisiert, dann sollte man das gesamte
Register aus der Dokumentation abtippen. Ich mache das gleich mit
vollständigem Kommentar und benenne sie als init_XXX, also wie init_SPI,
init_EPWM, init eQEP usw. Diese Arbeit ist natürlich sehr aufwendig,
aber man beschäftigt sich mit den Registern und definiert auch jedes.
Natürlich muss man auf R/W Rechte achten. Wenn das Register aufgebaut
ist, dann dauerte das Ansprechen der Schnittstelle nie mehr als einen
Tag, bzw. incl. Verarbeitung. Einzige Ausnahme wäre eCAN, dafür ist das
Register eindeutig zu groß.
- Grundsätzlich kann man vieles in normalen C /C++ Code schreiben, aber
es gibt keine Formate wie bool , int8 usw.
- Mit #pragma CODE_SECTION(Funktion, ".weißdergeier");. kann man seine
Funktionen in einem bestimmten Speicherbereich mappen.
- Sehr wichtig sind die PDF Dateien aus User Guides und die PDF "System
Control and Interrupts Reference Guide"
- Halte dich nicht lange mit den Examples auf! Bis jetzt habe ich nie
eine Struktur übernehmen können und hab immer alles selber geschrieben.
Evtl. können die Registerwerte / Einstellungen übernommen werden.
- Aus leidvolle eigener Erfahrung, bestell dir rechtzeitig DSPs für die
Produktion/Entwicklung. Ich muss nun 8 Wochen auf meine DSPs warten und
diese Zeit habe ich eigentlich nicht.
- Arbeite möglichst oft mit Strukturen, die Sache mit Define finde ich
persönlich später sehr unübersichtlich. Es gibt bestimmt Gründe für
define, aber bist jetzt habe ich sie sehr selten genutzt.
- GPIOs würde ich nicht mit DAT arbeiten, sondern mit SET. Zwar habe ich
das Problem noch nicht ganz lokalisiert, aber der DSP verschluckt sich
mal selten und setzt nicht den Ausgang! Ich denke mit Set kann man
dieses Problem evtl. umgehen.