6.2. TMS320C64x és TMS320C67xx DSP használata 6.2.1. bemutatása TI Davinci DM6446 EVM rövid A Davinci DM6446 EVM az alábbi fő hardver paraméterekkel rendelkezik: 1db ARM 9 CPU (ARM926EJ) 1db C64x DSP 4MB SRAM 16 MB NOR memory 64MB NAND memory 256MB DDR2 RAM 40 GB IDE HDD 10/100 Mbps Ethernet port UART0 RS232 Serial port MMC/SD card slot Szükséges eszközök, szükséges környezet Ahhoz, hogy Debian GNU/Linux-ot tudjunk futtatni Davinci DM6446 EVM eszközön, az alábbiak szükségesek: Davinci DM6446 EVM board Számítógép telepített Debian GNU/Linux 6.0-val internet kapcsolat router-en keresztül patch kábelek soros kábel a boardhoz való csatlakozáshoz (opcionálisan USB/Serial adapter) Debian GNU/Linux telepítési, adminisztrátori tapasztalatok Linux kernelfordítási tapasztalatok A Debian GNU/Linux 6.0 működési környezete Ahhoz, hogy Linux-ot tudjunk indítani ezen a platformon, különböző feltételeknek kell teljesülnie. Ami biztosan minden esetben szükséges: platform specifikus rendszerbetöltő (uboot)
Linux kernel image Debian 6.0 arm(el) gyökér fájlrendszer Mivel a fejlesztőkészlet előre telepített MontaVista Linux-szal érkezik, és ez az uboot rendszerbetöltőt használja, ezért ez adott volt. Ennek a telepítésével, frissítésével a továbbiakban nem foglalkozom. A MontaVista Linux egy 2.6.10-es kernelt használ. Ahhoz, hogy saját kernelt tudjak fordítani szükségem volt egy feltelepített Debian GNU/Linux 6.0 rendszerre (i386-ot használtam virtuális gépen). Továbbá, ezen rendszerben elő kell készíteni egy cross-compile környezetet. Ha ez adott, akkor lehetséges ARM architektúrájú kernelt fordítani az i386-os számítógépen. Szükséges Debian 6.0 arm(el) gyökér fájlrendszer is a feladathoz. Ehhez qemu-t telepítettem Debian GNU/Linux 6.0 rendszerben. Qemu-ban telepítettem arm(el) architektúrájú Debian-t, és a feltelepített rendszerből képes voltam kinyerni a gyökérfájlrendszert. A feladat folyamán a következőknek kell teljesülnie: a kernel-t TFTP-ről kell letölteni a gyökérfájlrendszer NFS-en vagy SD kártyán vagy egyéb tárolóeszközön található saját, egyedi kernelt kell tudni fordítani (indítani), amely NFS-ről vagy SD kártyáról, vagy egyéb eszközről olvassa a gyökérfájlrendszert saját arm(el) architektúrájú Debian gyökérfájlrendszert kell felhasználni legalább soros konzolon keresztül el kell tudni érni az új Debian rendszert
6.2.2. TI TMDSEVM6472 rövid bemutatása A TMDSEVM6472 az alábbi fő hardver paraméterekkel rendelkezik: 1db fix pontos, több magos (6 C64x+ mag) C6472 DSP 700MHz 256MB DDR2 RAM 128MB NAND flash memory 1Mb I2C EEPROM a helyi boot-hoz (távoli boot elképzelhető) 2db 10/100/1000 Mbps Ethernet port UART (RS232 szintű) 3 tűs csatlakozón USB mini-b-n keresztüli UART lehetőség MSP 430 (MMC) FPGA AMC Type B+ szabványos csatlakozó JTAG csatlakozási lehetőségek, felhasználói kapcsolók és led-ek Szükséges eszközök, szükséges környezet Ahhoz, hogy Linux-ot tudjunk futtatni TMDSEVM6472 eszközön, az alábbiak szükségesek: TMDSEVM6472 board Számítógép telepített Debian GNU/Linux 6.0-val internet kapcsolat router-en keresztül patch kábelek soros kábel a boardhoz való csatlakozáshoz (opcionálisan USB/Serial adapter) Debian GNU/Linux telepítési, adminisztrátori tapasztalatok Linux kernelfordítási tapasztalatok Számítógép telepített Windows XP-vel (vagy virtuális gépen) Code Composer Studio Alkalmazás futtatása az eszközön A TMDSEVM6472 board-hoz mellékelt DVD-n található 4.2-es verziójú Code Composer Studio. Ennek a futtatásához valamilyen Windows operációs rendszerre van szükségünk. A Code Composer Studio egy Eclipse-re épülő fejlesztő és debug eszköz, amely segítségével alkalmazásokat lehet fejleszteni, az eszköz DDR2 memóriáját közvetlenül el tudjuk érni, ide programokat tudunk betölteni, a betöltött programokat tudjuk futtatni.
A TMS320C6472 DSP, amely az EVM-en található a TI C6000-es DSP családba tartozik. Ezen család speciális utasításkészlettel rendelkezik, de nem annyira általánosan elterjedt, mint például az arm vagy a mips architektúra. Mivel Linux operációs rendszert szeretnénk futtatni az eszközön, ez megnehezíti a dolgunkat. A Linux a C6000-es családhoz tartozó architektúrát C6x-el rövidíti. Ezen architektúra az ún. ELF DSBT (Data Segment Base Table) binárisokat támogatja. Ez az ELF általános formátumnak egy olyan fajtája, amelyet tipikusan MMU-val (Memory Management Unit) nem rendelkező mikrovezérlőkhöz találtak ki. A továbbiakban ezt a szoftver arra fogom használni, hogy a segítségével kapcsolatba lépjek a TMDSEVM6472, és azon képes legyek Linux operációs rendszert futtatni. Csatlakoztassuk a TMDSEVM6472 adapterét erre az eszköz automatikusan elindul. A mikro USB-s csatlakozón keresztül pedig csatlakoztassuk a Windows-t futtató számítógépünkhöz, ahová a Code Composer Studio-t telepítettük. Windows XP esetén automatikusan érzékeli új USB-s eszközként, és telepíti a hozzá tartozó drivert. TI XDS100 JTAG program feltöltő Channel A, és B USB-s eszközök jelennek meg. Ezen keresztül fog kommunikálni a szoftver az EVM-el. A továbbiakban azt mutatom be, hogy milyen beállítások szükségesek ahhoz, hogy képesek legyünk alkalmazást futtatni az eszközön. A Code Composer Studio indítását követően definiálnunk kell a céleszköz (target) paramétereit. A Target főmenüpont, New Target Configuration... menüre kattintva tehetjük meg ezt. Itt meg kell adnunk a konfiguráció nevét.
Ezt követően a kapcsolat, és az eszköztípus kiválasztását kell elvégezni. Az elsőnél a Texas Instruments XDS1000v1 USB Emulator-t kell választani, az eszköz esetében pedig a TMS320C6472 (Full Peripheral Register Set). A mentést követően ki kell választani a definiált célt, és elindítani az adott konfigurációt (Launch Selected Configuration).
Ilyenkor a Debug ablakban megjelennek az eszköz paraméterei. Majd csatlakoztatni kell a cél eszközt a Connect Target segítségével. Végezetül a Target/Load Program menüpont segítségével kiválasztani azt a programot, amit szeretnénk az eszköz memóriájába tölteni. A betöltést követően pedig a Target/Run menüpontra kattintva indíthatjuk el az alkalmazás futását.