Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:code_composer_studio:start [2012-02-22 11:32] grafsoftware:code_composer_studio:start [2016-01-29 14:45] (aktuell) abajric
Zeile 11: Zeile 11:
 [[http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=spru187q|C6000 Optimizing Compiler v7.0 User's Guide]]\\ [[http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=spru187q|C6000 Optimizing Compiler v7.0 User's Guide]]\\
  
-==== DSP direkt aus Matlab/Simulink programmieren ====+==== DSP /BIOS Betriebssystem ==== 
 +DSP/BIOS ist ein auf den C6000-Kern abgestimmtes Betriebssystem. \\ 
 +[[http://www.ti.com/litv/pdf/spru423h|DSP/BIOS v5.41 User's Guide (Rev. H)]]\\ 
 + 
 +==== DSPLIB ==== 
 +Die C674x DSPLIB ist eine Floating Point Bibliothek mit optimierten Algorithmen für rechenintensive Aufgaben. \\ 
 +[[http://processors.wiki.ti.com/index.php?title=C674x_DSPLIB|C674x_DSPLIB]]\\ 
 + 
 +==== CMake anstatt Code Composer Studio verwenden ==== 
 + 
 +Beispiel eines Programs: 
 + 
 +<code> 
 +#include <evmc6748.h> 
 +#include <evmc6748_timer.h> 
 +#include <evmc6748_i2c.h> 
 +#include <evmc6748_led.h> 
 + 
 +int main(void) { 
 + USTIMER_init(); 
 + I2C_init(I2C0, I2C_CLK_400K); 
 +    
 + 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); 
 +    } 
 +
 +</code> 
 + 
 +Beispiel der CMakeLists.txt eines Programs: 
 + 
 +<code> 
 +cmake_minimum_required(VERSION 2.8) 
 +project(test C) 
 +add_executable(test test.c) 
 +</code> 
 + 
 +Toolchain-File: 
 + 
 +<code> 
 +include(CMakeForceCompiler) 
 + 
 +set(CMAKE_SYSTEM_NAME Generic) 
 + 
 +set(C6000_BASE "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C6000"
 +set(BSP_BASE "${CMAKE_CURRENT_LIST_DIR}/../../"
 +set(LINK_CMD_FILE "${CMAKE_CURRENT_LIST_DIR}/linker_dsp.cmd"
 + 
 +CMAKE_FORCE_C_COMPILER(${C6000_BASE}/bin/cl6x.exe TI) 
 +CMAKE_FORCE_CXX_COMPILER(${C6000_BASE}/bin/cl6x.exe TI) 
 +set(CMAKE_C_FLAGS_DEBUG "-g"
 +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}/inc) 
 +link_directories(${BSP_BASE}/lib) 
 +</code> 
 + 
 +Konfiguration von CMake unter Windows: 
 + 
 +<code> 
 +"D:\programs\CMake 2.8\bin\cmake.exe" .. -DCMAKE_TOOLCHAIN_FILE="D:\work\BSP\share\dsp\c6000.cmake" -G"MinGW Makefiles" 
 +</code> 
 + 
 +Kompilieren mit Make: 
 + 
 +<code> 
 +"c:\Program Files\mingw\bin\mingw32-make.exe" 
 +</code> 
 + 
 +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/Simulink programmieren ====
 Die Programmierung des C6748 mit Hilfe von MATLAB/Simulink geschieht über ein xMakefile. **Achtung! Pfadangaben können je nach Installation abweichen** Die Programmierung des C6748 mit Hilfe von MATLAB/Simulink geschieht über ein xMakefile. **Achtung! Pfadangaben können je nach Installation abweichen**
  
-=== Benötigte Komponenten ===+== Benötigte Komponenten ==
 Diese Komponenten müssen vorgängig heruntergeladen installiert bzw. entpackt werden: Diese Komponenten müssen vorgängig heruntergeladen installiert bzw. entpackt werden:
   * Code Composer Studio 4 (CCSc4 getestet mit Version: 4.2.0.10017)   * Code Composer Studio 4 (CCSc4 getestet mit Version: 4.2.0.10017)
Zeile 23: Zeile 107:
  
  
-=== MATLAB einrichten ===+== MATLAB einrichten ==
  
 Um ein xMakefile erstellen zu können, muss zuerst MATLAB konfiguriert werden.  Dazu tippt man in der MATLAB Konsole zuerst den Befehl: //setDspbiosFolder('C:\Program Files\Texas Instruments\bios_5_41_07_24','C:\Program Files\Texas Instruments\xdctools_3_20_03_63')// ein. Danach gibt man den Befehl //importDspbiosConfig('proc','all')// ein. Es öffnet sich ein Fenster bei dem man einen Ordner für die importierten Dateien angeben muss. Zuletzt noch //xmakefilesetup// eingeben. Darauf hin öffnet sich ein Fenster. Zuerst muss man das Häkchen bei //Display operational configurations only// entfernen.  Danach wählt man unter Configuration //ticcs_c6000_dspbios_ccsv4// aus und clickt auf Apply.  Es öffnet sich ein weiteres Fenster bei dem man den Installationspfad von Code Composer Studio 4 angeben muss . Auf den NTB Rechnern ist das: //C:\Program Files\Texas Instruments\ccsv4//. Weiter muss man in einem neuen Fenster den Pfad der Chip Support Library (CSL) angeben (C:\Program Files\Texas Instruments). Das ist der Ordner in dem sich der Ordner pspdrivers_01_30_01 befindet. Unter dem Writer //Tool Directories// kann kontrolliert werden ob alles geklappt hat bzw. können nachträglich Änderungen vorgenommen werden. \\ Um ein xMakefile erstellen zu können, muss zuerst MATLAB konfiguriert werden.  Dazu tippt man in der MATLAB Konsole zuerst den Befehl: //setDspbiosFolder('C:\Program Files\Texas Instruments\bios_5_41_07_24','C:\Program Files\Texas Instruments\xdctools_3_20_03_63')// ein. Danach gibt man den Befehl //importDspbiosConfig('proc','all')// ein. Es öffnet sich ein Fenster bei dem man einen Ordner für die importierten Dateien angeben muss. Zuletzt noch //xmakefilesetup// eingeben. Darauf hin öffnet sich ein Fenster. Zuerst muss man das Häkchen bei //Display operational configurations only// entfernen.  Danach wählt man unter Configuration //ticcs_c6000_dspbios_ccsv4// aus und clickt auf Apply.  Es öffnet sich ein weiteres Fenster bei dem man den Installationspfad von Code Composer Studio 4 angeben muss . Auf den NTB Rechnern ist das: //C:\Program Files\Texas Instruments\ccsv4//. Weiter muss man in einem neuen Fenster den Pfad der Chip Support Library (CSL) angeben (C:\Program Files\Texas Instruments). Das ist der Ordner in dem sich der Ordner pspdrivers_01_30_01 befindet. Unter dem Writer //Tool Directories// kann kontrolliert werden ob alles geklappt hat bzw. können nachträglich Änderungen vorgenommen werden. \\
Zeile 40: Zeile 124:
 [{{:embedded_systems:omapl138_tms320c6748:xmakefilesetup.png?700| xMakefile Setup Fenster}}] [{{:embedded_systems:omapl138_tms320c6748:xmakefilesetup.png?700| xMakefile Setup Fenster}}]
  
-=== Simulink Model erstellen ===+== 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//.\\ 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//.\\
Zeile 47: Zeile 131:
 [{{:embedded_systems:omapl138_tms320c6748:targetpreferencesblk.png?700|Target Preferences Block Einstellungen}}]\\ [{{:embedded_systems:omapl138_tms320c6748:targetpreferencesblk.png?700|Target Preferences Block Einstellungen}}]\\
  
-=== Target Configuration File erstellen ===+== 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.  Dazu werden GEL  und BSL Files benötigt. Nach dem entpacken der Files startet man CCSv4 und erstellt ein neues Target Configuration File mit  CCSv4 //File>New>Target Configuration File// Man gibt einen Namen ein und drückt //Finish//. Danach öffnet man das File und wählt unter Connection: //Texas Instruments XDS100v1 USB Emulator// und unter Board or Device: //TMS320C6748//. Danach unter Advanced Setup auf //Target Configuration// klicken. Unter All Connections alle Untergruppen aufklappen und den C674X_0 anklicken. Auf der rechten Seite im erschienenen Feld muss man den Pfad des C6748.gel Files angegeben z.B: //D:\1017293B_TMS320C6748_GEL_BSL_Files_v2.3\c6748\gel\C6748.gel//. Nach dem Speichern befindet sich im Projektordner ein .ccxml File zum Beispiel omapl138.ccxml. Um das Model runterladen zu können muss als nächstes mit Code Composer Studio ein Target Configuration File erstellt werden.  Dazu werden GEL  und BSL Files benötigt. Nach dem entpacken der Files startet man CCSv4 und erstellt ein neues Target Configuration File mit  CCSv4 //File>New>Target Configuration File// Man gibt einen Namen ein und drückt //Finish//. Danach öffnet man das File und wählt unter Connection: //Texas Instruments XDS100v1 USB Emulator// und unter Board or Device: //TMS320C6748//. Danach unter Advanced Setup auf //Target Configuration// klicken. Unter All Connections alle Untergruppen aufklappen und den C674X_0 anklicken. Auf der rechten Seite im erschienenen Feld muss man den Pfad des C6748.gel Files angegeben z.B: //D:\1017293B_TMS320C6748_GEL_BSL_Files_v2.3\c6748\gel\C6748.gel//. Nach dem Speichern befindet sich im Projektordner ein .ccxml File zum Beispiel omapl138.ccxml.
 [{{:embedded_systems:omapl138_tms320c6748:targetconfigfile.png?700|Target Configuration File Gel File Pfad einstellen}}] [{{:embedded_systems:omapl138_tms320c6748:targetconfigfile.png?700|Target Configuration File Gel File Pfad einstellen}}]
  
-=== Hardware vorbereiten ===+== Hardware vorbereiten ==
 Um den DSP programmieren zu können müssen die DIP-Switch S7 die folgende Schalterstellung haben: Um den DSP programmieren zu können müssen die DIP-Switch S7 die folgende Schalterstellung haben:
  
Zeile 66: Zeile 150:
 Das Board muss kurz vor dem Runterladen unbedingt neu gestartet werden. Das Board muss kurz vor dem Runterladen unbedingt neu gestartet werden.
 Damit ist alles für das Runterladen des Models bereit.  Damit ist alles für das Runterladen des Models bereit. 
-=== Herunterladen des Models === +== Herunterladen des Models == 
-Um das File runterzuladen wechselt man in der Windowskonsole in den Ordner: //…\Texas Instruments\CCSv4\ccsv4\scripting\examples\loadti// . Dann kann man mit: //loadti -a -c=omapl138.ccxml ExampleModule.out// das Model auf die Hardware runtergeladen werden. Die Files ExampleModule.out und omapl138.ccxml müssen sich im Ordner //…\Texas Instruments\CCSv4\ccsv4\scripting\examples\loadti// befinden. Alternativ kann der Pfad von loadti den Windows Path Variablen hinzugefügt werden.  Danach wechselt man in den Ordner in dem sich die beiden Dateien befinden. Mit: //loadti -a -c=omapl138.ccxml ExampleModule.out// wird dann das Model auf die Hardware runtergeladen. +Um das File runterzuladen wechselt man in der Windowskonsole in den Ordner: //…\Texas Instruments\ccsv4\scripting\examples\loadti// . Dann kann man mit: //loadti -a -c=omapl138.ccxml ExampleModule.out// das Model auf die Hardware runtergeladen werden. Die Files ExampleModule.out und omapl138.ccxml müssen sich im Ordner //…\Texas Instruments\ccsv4\scripting\examples\loadti// befinden. Alternativ kann der Pfad von loadti den Windows Path Variablen hinzugefügt werden.  Danach wechselt man in den Ordner in dem sich die beiden Dateien befinden. Mit: //loadti -a -c=omapl138.ccxml ExampleModule.out// wird dann das Model auf die Hardware runtergeladen. 
-=== Beispiel Files ===+== Beispiel Files ==
 {{:embedded_systems:omapl138_tms320c6748:omapl138.rar|ccxml File}}\\ {{:embedded_systems:omapl138_tms320c6748:omapl138.rar|ccxml File}}\\
 {{:embedded_systems:omapl138_tms320c6748:examplemodule.rar|Simulink Model}} {{:embedded_systems:omapl138_tms320c6748:examplemodule.rar|Simulink Model}}
 === Auftretende Fehler === === 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 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: S-Function 'c6748evm_adc_sfcn' does not exist. Dieser Fehler tritt auf wenn bei MATLAB nicht alle Komponenten installiert wurden.    * Beim Builden des Moduls erscheint die Fehlermeldung: S-Function 'c6748evm_adc_sfcn' does not exist. Dieser Fehler tritt auf wenn bei MATLAB nicht alle Komponenten installiert wurden. 
   * 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 erscheint ein Fenster bei dem der BIOS PSP DRIVER Installationspfad verlangt wird. Dieser Fenster erscheint wenn die MATLAB Pfadvariable nicht gesetzt wurde.
Zeile 79: Zeile 163:
   * 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 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:ExampleModul.out hängen. Dieser Fehler tritt auf wenn kurz vor dem Laden das Board nicht neu gestartet wurde.   * Beim Herunterladen des Moduls bleibt das Programm bei Loading D:ExampleModul.out hängen. Dieser Fehler tritt auf wenn kurz vor dem Laden das Board nicht neu gestartet wurde.
 +  * 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.
 +  * {{:software:code_composer_studio:fehler.png?550|}}
 +  * Trotz Neustart bleibt das Programm immer bei „loading Aufgabe1.out“ hängen. Für dieses Problem wurde noch keine Lösung gefunden.