Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:code_composer_studio:start [2012-02-22 11:22] – graf | software:code_composer_studio:start [2016-01-29 14:45] (aktuell) – abajric | ||
---|---|---|---|
Zeile 10: | Zeile 10: | ||
Für die Programmierung des TMS320C6748 auf dem eXperimenters Board benutzen wir den C6000 Compiler.\\ | Für die Programmierung des TMS320C6748 auf dem eXperimenters Board benutzen wir den C6000 Compiler.\\ | ||
[[http:// | [[http:// | ||
+ | |||
+ | ==== DSP /BIOS Betriebssystem ==== | ||
+ | DSP/BIOS ist ein auf den C6000-Kern abgestimmtes Betriebssystem. \\ | ||
+ | [[http:// | ||
+ | |||
+ | ==== DSPLIB ==== | ||
+ | Die C674x DSPLIB ist eine Floating Point Bibliothek mit optimierten Algorithmen für rechenintensive Aufgaben. \\ | ||
+ | [[http:// | ||
+ | |||
+ | ==== CMake anstatt Code Composer Studio verwenden ==== | ||
+ | |||
+ | Beispiel eines Programs: | ||
+ | |||
+ | < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main(void) { | ||
+ | USTIMER_init(); | ||
+ | I2C_init(I2C0, | ||
+ | |||
+ | LED_init(); | ||
+ | LED_turnOn(LED_1); | ||
+ | LED_turnOff(LED_2); | ||
+ | |||
+ | while(1) { | ||
+ | LED_toggle(LED_1); | ||
+ | LED_toggle(LED_2); | ||
+ | USTIMER_delay(DELAY_10TH_SEC); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Beispiel der CMakeLists.txt eines Programs: | ||
+ | |||
+ | < | ||
+ | cmake_minimum_required(VERSION 2.8) | ||
+ | project(test C) | ||
+ | add_executable(test test.c) | ||
+ | </ | ||
+ | |||
+ | Toolchain-File: | ||
+ | |||
+ | < | ||
+ | include(CMakeForceCompiler) | ||
+ | |||
+ | set(CMAKE_SYSTEM_NAME Generic) | ||
+ | |||
+ | set(C6000_BASE " | ||
+ | set(BSP_BASE " | ||
+ | set(LINK_CMD_FILE " | ||
+ | |||
+ | CMAKE_FORCE_C_COMPILER(${C6000_BASE}/ | ||
+ | CMAKE_FORCE_CXX_COMPILER(${C6000_BASE}/ | ||
+ | set(CMAKE_C_FLAGS_DEBUG " | ||
+ | set(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG" | ||
+ | set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" | ||
+ | set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") | ||
+ | |||
+ | set(CMAKE_FIND_ROOT_PATH ${C6000_BASE}) | ||
+ | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | ||
+ | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) | ||
+ | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) | ||
+ | |||
+ | include_directories(${BSP_BASE}/ | ||
+ | link_directories(${BSP_BASE}/ | ||
+ | </ | ||
+ | |||
+ | Konfiguration von CMake unter Windows: | ||
+ | |||
+ | < | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | Kompilieren mit Make: | ||
+ | |||
+ | < | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | Wegen einem Bug in den CMake Scripts für den C6000 Compiler ist es nicht möglich das Link-Command-File dem Compiler zu übergeben. Das Link-Command-File muss als letzter Parameter dem C6000 Compiler übergeben werden. In der aktuellen CMake Version sind die Object Files die letzten Parameter. (Weil CMake die Reihenfolge der Object-Files selber bestimmt, kann man das Linker-Command-File nicht als Object-File übergeben. Dieser Workaround funktioniert also nicht.) | ||
+ | |||
+ | |||
+ | ==== TMS320C6748 auf eXperimenters Board direkt aus Matlab/ | ||
+ | Die Programmierung des C6748 mit Hilfe von MATLAB/ | ||
+ | |||
+ | == Benötigte Komponenten == | ||
+ | Diese Komponenten müssen vorgängig heruntergeladen installiert bzw. entpackt werden: | ||
+ | * Code Composer Studio 4 (CCSc4 getestet mit Version: 4.2.0.10017) | ||
+ | * Matlab 2011b (getestet mit Version: 7.13.0.564) | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | == MATLAB einrichten == | ||
+ | |||
+ | Um ein xMakefile erstellen zu können, muss zuerst MATLAB konfiguriert werden. | ||
+ | Durch einen Fehler im Linker vom DSP/BIOS müssen zusätzliche Konfigurationen vorgenommen werden. Dazu drückt man auf //New…//. Es erscheint ein Feld bei dem man einen Namen für die neue Konfiguration eingeben muss z.B // ticcs_c6000_dspbios_ccsv4_clone// | ||
+ | |||
+ | -l " | ||
+ | -l " | ||
+ | -l " | ||
+ | -l " | ||
+ | -l " | ||
+ | |||
+ | Unter //File extensions for library files// muss die Zeile mit: //,.a674// ergänzt werden.\\ | ||
+ | Mit einem Klick auf //ok// ist die xMakefile Konfiguration abgeschlossen.\\ | ||
+ | Danach müssen in MATLAB noch ein paar Pathvariable gesetzt werden. Dies geschieht mit dem Befehl // | ||
+ | |||
+ | [{{: | ||
+ | |||
+ | == Simulink Model erstellen == | ||
+ | |||
+ | Nun kann ein neues Simulink Model erstellt werden. Die DSP spezifischen Blöcke findet man unter: //Embedded Coder\Embedded Targets\Processors Texas Instruments C6000\OMAP_138 /C6748 EVM//.\\ | ||
+ | Dazu muss noch ein Target Preferences Block eingefügt werden. Er kann unter //Embedded Coder\Embedded Targets// gefunden werden. | ||
+ | Sobald das Model fertig ist kann mit //Ctr+B// oder //Tools > Code Generation > Build Model// das xMakefile erstellt werden. Dabei wird ein .out File im Working Directory erstellt zum Beispiel ExampleModel.out. | ||
+ | [{{: | ||
+ | |||
+ | == Target Configuration File erstellen == | ||
+ | |||
+ | Um das Model runterladen zu können muss als nächstes mit Code Composer Studio ein Target Configuration File erstellt werden. | ||
+ | [{{: | ||
+ | |||
+ | == Hardware vorbereiten == | ||
+ | Um den DSP programmieren zu können müssen die DIP-Switch S7 die folgende Schalterstellung haben: | ||
+ | |||
+ | * 1: OFF | ||
+ | * 2: OFF | ||
+ | * 3: OFF | ||
+ | * 4: OFF | ||
+ | * 5: ON | ||
+ | * 6: OFF | ||
+ | * 7: OFF | ||
+ | * 8: ON | ||
+ | |||
+ | Das Board muss kurz vor dem Runterladen unbedingt neu gestartet werden. | ||
+ | Damit ist alles für das Runterladen des Models bereit. | ||
+ | == Herunterladen des Models == | ||
+ | Um das File runterzuladen wechselt man in der Windowskonsole in den Ordner: //…\Texas Instruments\ccsv4\scripting\examples\loadti// | ||
+ | == Beispiel Files == | ||
+ | {{: | ||
+ | {{: | ||
+ | === Auftretende Fehler === | ||
+ | * Beim Hereinziehen des Target Preferences Block wird kein Prozessor ausgewählt. Dieser Fehler tritt auf wenn der Befehl: setDspbiosFolder(...) und/oder importDspbiosConfig(...) nicht ausgeführt wurden. | ||
+ | * Beim Builden des Moduls erscheint die Fehlermeldung: | ||
+ | * Beim Builden erscheint ein Fenster bei dem der BIOS PSP DRIVER Installationspfad verlangt wird. Dieser Fenster erscheint wenn die MATLAB Pfadvariable nicht gesetzt wurde. | ||
+ | * Beim Builden des Moduls erscheint die Fehlermeldung: | ||
+ | * Beim Builden des Moduls erscheint die Fehlermeldung: | ||
+ | * Beim Herunterladen des Moduls wird nach Connecting to target... ein Error ausgegeben. Diese Meldung erscheint wenn die Jumper nicht richtig gesetzt wurden. | ||
+ | * Beim Herunterladen des Moduls bleibt das Programm bei Loading D: | ||
+ | * Beim Herunterladen auf das Board erscheint die unten stehende Fehlermeldung. Das bedeutet, dass die Datei C6748.gel nicht gefunden wurde. Da beim Erstellen vom Target Configuration File nur der Pfad der Datei C6748.gel im ccxml File abgespeichert wird und nicht die ganze Datei. | ||
+ | * {{: | ||
+ | * Trotz Neustart bleibt das Programm immer bei „loading Aufgabe1.out“ hängen. Für dieses Problem wurde noch keine Lösung gefunden. | ||
+ | |||
+ | |||
+ | |||
+ |