TMS320C6472
Chip Support Library User Guide
Contents
|
Read This First
About this Manual
This document
describes how to install and work with Texas Instruments' TMS320C6472 Chip
Support Library (CSL). In this context, the document contains instructions to:
- Install the release
- Build the sources
contained in the release
- Updated and changed APIs
Installation
System Requirements
Hardware Requirements:
·
TMS320C6472
Software
Requirements:
·
This version of CSL has been compiled with TI Codegen tools version c6000 7.0.3.
·
Code Composer Studio version 4.2.0.10012 for running CCSv4
example projects
Package Contents
The delivery packages from Texas
Instruments include four zip files for each package as shown below:
|
File name |
Contents |
Product Zip |
csl_c6472_03_00_07_01.zip |
v All header files. v CSL libraries in big endian and little endian mode. v Release example - Each device has its own example folders. v User Guide and API Reference Guide for CSL are provided. v ReleaseNotes_C6472_03_00_07_01.html v SoftwareManifest_C6472.pdf |
Interrupt Controller (INTC) module zip |
csl_c64xplus_intc_03_00_07_01.zip |
v INTC module header files. v INTC module library file in big endian and little endian mode. v Release examples for INTC. This module is provided as separate library to facilitate use of CSL with an operating system. This module should not be used with an embedded OS with interrupt controller support, such as DSP/BIOS. Please refer to the API Reference Guide for more information on the INTC module. |
CSL Source zip file |
csl_c6472_src_03_00_07_01.zip |
v All C6472 CSL source files. v All header files. v Build script batch file v Makefiles to build the library |
INTC Source zip file |
csl_c64xplus_intc_src_03_00_07_01.zip |
v All INTC CSL source files. v All INTC CSL header files. v Build script batch file v Makefiles to build the library |
Installation Guidelines and Directory Structures
The steps
to be followed for installation of the release package are as follows:
1. Download the release zip files.
2. Unzip the files with command “unzip
<zip file name>” at the command prompt. Alternatively, use the WinZip
wizard to extract the files.
The directory structure
of the package is as shown below:
Installation Package
|
|_____csl_c6472
|
|_____csl_c6472_src
|
|_____csl_c64xplus_intc
|
|_____csl_c64xplus_intc_src
The
directory structure of the product zip package release is as shown below:
csl_c6472
|_____doc -> contains the User
Guide and API Reference Guide
|
|
|_____example
| |
|
|_____bwmngmt
| |
|
|_____cache
| |
| |_____chip
| |
| |_____dat
| |
| |_____ddr2
| |
| |_____edma
| |
| |_____idma
| |
| .
| .
| |_____utopia2
|
|_____inc CSL module header files
|
|_____lib
| |_____csl_c6472.lib
(little endian CSL library)
| |
| |_____csl_c6472e.lib
(big endian CSL library)
|
|
|_____ ReleaseNotes_C6472_03_00_07_01.html
(Release notes document)
|
|_____ SoftwareManifest_C6472.pdf (Software
manifest document)
The
directory structure of the source zip package is as shown below:
csl_c6472_src
|
|_____batch files (to build the library)
|
|_____makefiles
to build the library
|
|_____inc ALL Header files
|
|_____src
|_____bwmngmt
|
|_____cache
|
|_____cfg
.
.
.
|_____utopia2
The
directory structure of the INTC zip package release is as shown below:
csl_C64xplus_intc
|_____ example
| |
| c64xplus
| |
| intc
| |___intc_example1
| |
| .
| .
| |
| |___intc_example6
|
|_____inc INTC module Header files
|
|_____lib
|___csl_c64xplus_intc.lib (little endian INTC CSL library)
|
|___csl_c64xplus_intce.lib (big endian INTC CSL library)
The
directory structure of the INTC CSL source zip package is as shown below:
csl_c64xplus_intc_src
|
|_____batch files (to build the INTC library)
|
|_____makefiles
to build the library
|
|_____inc INTC Header files
|
|_____src
|_____common
|
|_____intc
Supported Modules
This release of CSL for TMS320C6472 contains functional and register-level APIs for the modules listed in the table below to program the peripherals. This set of APIs provides peripheral abstraction that can be used by higher layers of software.
Module |
Register Layer Provided? (Yes/No) |
Functional Layer Provided?
(Yes/No) |
Example Provided? (Yes/No) |
Example
Tested on? (NotTested/ Sim/ /QuickTurn/VDB/EVM) |
Remarks |
BWMNGMT |
Yes |
Yes |
Yes |
EVM |
|
CACHE |
Yes |
Yes |
Yes |
EVM |
|
CFG |
Yes |
Yes |
Yes |
EVM |
|
CHIP |
Yes |
Yes |
Yes |
EVM |
|
DAT |
Yes |
Yes |
Yes |
EVM |
|
DDR2 |
Yes |
Yes |
Yes |
EVM |
|
DTF |
Yes |
Yes |
NA |
NA |
Example
for this module is covered in other module example
|
DEV |
Yes |
NA |
NA |
NA |
Only
Register layer is provided |
ECTL |
Yes |
Yes |
NA |
NA |
Example
for this module is covered in other module example
|
EDC |
Yes |
Yes |
Yes |
EVM |
|
EDMA |
Yes |
Yes |
Yes |
EVM |
|
EMAC |
Yes |
Yes |
Yes |
EVM |
|
ETB |
Yes |
Yes |
Yes |
EVM |
|
GPIO |
Yes |
Yes |
Yes |
EVM |
|
HPI |
Yes |
Yes |
NA |
Not Tested |
Known issue |
I2C |
Yes |
Yes |
Yes |
EVM |
|
IDMA |
Yes |
Yes |
Yes |
EVM |
|
INTC |
Yes |
Yes |
Yes |
EVM |
1.
Example for INTC module is available only in 2.
INTC module is available as separate library, and should generally
not be used with an embedded operating system with interrupt controller
support, such as DSP/BIOS. Please refer to the API Reference Guide for more
information on the INTC module. Modules
using INTC should use “csl_c64xplus_intc.lib” (little endian)
and “csl_c64xplus_intce.lib” (big endian).
|
INTGEN |
Yes |
NA |
NA |
NA |
Only Register
layer is provided |
MDIO |
Yes |
Yes |
NA |
NA |
Examples
are not provided |
MEMPROT |
Yes |
Yes |
Yes |
EVM |
|
PDMA |
No |
Yes |
NA |
NA |
Example
for this module is covered in other module example
|
PLLC |
Yes |
Yes |
Yes |
EVM |
|
PSC |
Yes |
Yes |
NA |
NA |
Example
for this module is covered in other module example
|
POWERDOWN |
Yes |
Yes |
Yes |
EVM |
|
SEC |
Yes |
NA |
NA |
NA |
Only
Register layer is provided |
SMC |
Yes |
Yes |
Yes |
EVM |
|
SMCP |
Yes |
Yes |
NA |
NA |
Example
for this module is covered in other module example
|
SRIO |
Yes |
Yes |
Yes |
EVM |
|
TIMER |
Yes |
Yes |
Yes |
EVM |
|
TSC |
Yes |
Yes |
Yes |
EVM |
|
TSIP |
Yes |
Yes |
Yes |
EVM |
|
UTOPIA2 |
Yes |
Yes |
NA |
Not Tested |
Known issue |
Prerequisites
to Run Examples
- Make sure that EVM has been set up properly, so that CCS can be used for running examples.
- Load corresponding GEL files before running
example projects.
Gel
file |
Location |
evm6472.gel for core 0 evm6472-MemoryMap.gel for core
1-5 |
Install EVMC6472 SDK, and the gel
files can be found at C:\Program Files\Texas
Instruments\ccsv4\emulation\boards\evmc6472\gel |
- Configure PLLs if
required such as when running EMAC example projects with a boot mode other
than I2C and EMAC boot. When the gel files above are loaded and target
core 0 is connected, PLL2 and PLL3 are enabled while PLL1 is configured to
get CPU clock of 625MHz. PLL1 multiplier can also be changed through
running evm6472.gel - PLL Controller Functions - PLL1_Controller_Setup.
- Although PLL configuration is provided in the
above GEL files, PLL APIs in the CSL package should to be used instead in
applications to configure PLLs.
- For running EMAC dual_emac
example, connect both EMACs to a Giga bit capable
(10/100/1000) Ethernet switch.
- Additional gel file (example\emac\emac_core_restart\core_restart.gel) is provided
for running EMAC core restart example. Detailed instructions for how to
run this example can be found from example\emac\emac_core_restart\readme.txt.
- For running TSIP dlb
example on C6472EVM, frame sync and clock input must be supplied from such
external hardware as chassis.
Build Guidelines
Environmental Variable
Settings
1.
Make sure the
path to the gmake executable is in the DOS PATH environment
variable.
If gmake path is not set, then set path for ‘gmake’ as below if XDC tools are installed under
“C:\Program Files\Texas Instruments\xdctools_3_20_03_63”.
set
path=C:\Program Files\Texas Instruments\xdctools_3_20_03_63
2.
Make sure the path
to the compiler executable, cl6x.exe is in the DOS PATH environment variable.
If not, then set
path as below if CGT 7.0.3 is installed to “C:\Program Files\Texas
Instruments\C6000 Code Generation Tools 7.0.3”.
set
path=%path%;C:\Program Files\Texas Instruments\C6000
Code Generation Tools 7.0.3\bin
Compiling CSL Libraries
The steps
to be followed to build the CSL libraries from the release source package are
as follows:
1.
Download
the release source zip file: “csl_c6472_src_03_00_07_01.zip”.
2.
Unzip
the files with command “unzip <zip file name>” at the command prompt.
Alternatively, use the WinZip wizard to extract the files.
3.
Go
to the command prompt and change the current directory to <Zip folder
path>\<csl_src_folder> e.g., cd C:\csl_c6472_src
4.
Setup the
target name at command prompt using the following command:
set
TARGET=c6472
5.
Set
the environment variable “set CSL3X_ROOT_DIR=<Zip folder path>” at
command prompt of the system. Compile the code with the batch file given.
Different batch files for creating libraries for the device are listed below.
Batch files will be found in the following path csl_c6472_src.
Library |
Batch file to be invoked |
Library name |
C6472 CSL |
build_csl (little endian) |
csl_c6472.lib |
build_csle (big endian) |
csl_c6472e.lib |
6.
To
clean the built object files, invoke the corresponding batch file with the
argument ‘cleanall’: .\build_csl.bat
cleanall.
Note: Each time
while building the library, use the ‘cleanall’ option
with the build script and then build the library.
Compiling INTC CSL
Libraries
The steps
to be followed to build the INTC CSL library from the release are as follows:
1.
Download
the release zip file, “csl_c64xplus_intc_src_03_00_07_01.zip”.
2.
Unzip
the files with the command “unzip <zip file name>” at the command prompt.
Alternatively, use the WinZip wizard to extract the files.
3.
Go
to the command prompt and change the current directory to <Zip folder
path>\<csl_intc_src_folder> e.g., cd C:\ csl_c64xplus_intc_src.
4.
Set
the environment variable “set CSL3X_ROOT_DIR=<Zip folder path>” at
command prompt of the system. Compile the code with the batch file given.
Different batch files for creating libraries for the device are listed below.
It will be found in the following path csl_c64xplus_intc_src\.
Library |
Batch file to be invoked |
Library name |
INTC CSL |
build_c64xplus_intc (little endian) |
csl_c64xplus_intc.lib |
build_c64xplus_intce (big endian) |
csl_c64xplus_intce.lib |
5.
To
clean the built object files, invoke the corresponding batch file with the
argument ‘cleanall’: .\build_c64xplus_intc.bat cleanall.
Note: Each time while building the library, use
the ‘cleanall’ option with the build script and then
build the library.
Updated
and Changed APIs
Table below provides information on updated
and changed APIs in this release.
File |
API |
Change Description |
Any changes required
in applications |
Notes |
csl_cache.h |
CACHE_disableCaching() |
A new function is added |
NO |
This function disables caching for a specific memory region. |
csl_emac.h |
EMAC_Common_Config |
MdioPhyAddr is added |
NO |
This is added along with the MDIO flag MDIO_MODEFLG_SPECPHYADDR for applications
to specify a PHY address to be monitored by MDIO. No changes are required in
applications if the newly added MDIO_MODEFLG_SPECPHYADDR flag is not used. |
csl_emac.h |
EMAC_Core |
A new structure is added |
YES |
This EMAC Core Instance structure is introduced to include core
specific information which is updated run-time. In multi-core scenarios, it
is desirable to place it in local memory to avoid run-time cache writeback/invalidation. Please refer to EMAC core
restart, dual emac, and local loopback examples provided. |
csl_emac.h |
EMAC_Device |
Removed: hApplication[], RxCh[],
TxCh[] Added: pEMACCore[] |
NO |
hApplication[], RxCh[],
TxCh[] are now placed in EMAC_Core.
Pointers to EMAC_Core are then stored in EMAC_Device. |
csl_emac.h |
EMAC_Device |
hMDIO (MDIO handle) is
replaced with MdioDev (MDIO device) |
NO |
This is due to MDIO API change |
csl_emac.h |
EMAC_open() |
hCore (EMAC_Core handle) is added as a new argument |
YES |
This is due to the EMAC_Core addition. Applications
need to initialize EMAC Core Instance and then pass the handle when calling EMAC_open().
Please refer to EMAC local loopback example provided. |
csl_emac.h |
EMAC_coreInit() |
hCore (EMAC_Core handle) is added as a new argument |
YES |
This is due to the EMAC_Core addition. Applications
need to initialize EMAC Core Instance and then pass the handle when calling EMAC_coreInit().
Please refer to EMAC core restart example provided. |
csl_i2c.h |
CSL_I2C_CLEAR_ALL |
A new Macro is added |
NO |
This macro clears all status bits |
csl_i2cAux.h |
CSL_i2cClearStatus() |
arg is added as a new argument |
YES |
This newly added argument is used to specify the bit to clear |
csl_mdio.h |
MDIO_MODEFLG_SPECPHYADDR |
A new Macro is added |
NO |
This flag is added to enable applications to specify a PHY address to
be monitored by MDIO |
csl_mdio.h |
MDIO_ERROR_INVALID |
A new Macro is added |
NO |
This error code is added to report invalid f unction or calling parameter to MDIO |
csl_mdio.h |
MDIO_Device |
regId is added |
NO |
This is added for specifying the set of MDIO User Access and PHY Select
Registers used to modify a PHY |
csl_mdio.h |
MDIO_open() |
Input arguments are added: instance number, PHY address to be monitored,
handle to MDIO device Return value: MDIO handle is replaced with success/error code |
YES |
MDIO_open() is modified to
support simultaneous monitoring of two PHY address and also enable applications
to specify a PHY address for monitoring. When MDIO_MODEFLG_SPECPHYADDR flag is
not set, MDIO has the same behavior as before and instance number and PHY
address will not be used. Please refer to EMAC module for how the updated
MDIO is used. |
csl_srio.h |
CSL_SrioControlSetup |
logicalLayerDisable is added |
YES |
This is added to configure LOG_TGT_ID_DIS in SRIO PER_SET_CNTL
register. Please refer to the SRIO example provided. |
Last updated: October 22, 2010