Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections,
modifications, enhancements, improvements, and other changes to its products and services at
any time and to discontinue any product or service without notice. Customers should obtain the
latest relevant information before placing orders and should verify that such information is current
and complete. All products are sold subject to TI’s terms and conditions of sale supplied at the
time of order acknowledgment.
TI warrants performance of its hardware products to the specifications applicable at the time of
sale in accordance with TI’s standard warranty. Testing and other quality control techniques are
used to the extent TI deems necessary to support this warranty. Except where mandated by
government requirements, testing of all parameters of each product is not necessarily performed.
TI assumes no liability for applications assistance or customer product design. Customers are
responsible for their products and applications using TI components. To minimize the risks
associated with customer products and applications, customers should provide adequate design
and operating safeguards.
TI does not warrant or represent that any license, either express or implied, is granted under any
TI patent right, copyright, mask work right, or other TI intellectual property right relating to any
combination, machine, or process in which TI products or services are used. Information
published by TI regarding third party products or services does not constitute a license from TI
to use such products or services or a warranty or endorsement thereof. Use of such information
may require a license from a third party under the patents or other intellectual property of that third
party , or a license from TI under the patents or other intellectual property of TI.
Reproduction of information in TI data books or data sheets is permissible only if reproduction
is without alteration and is accompanied by all associated warranties, conditions, limitations, and
notices. Reproduction of this information with alteration is an unfair and deceptive business
practice. TI is not responsible or liable for such altered documentation.
Resale of TI products or services with statements dif ferent from or beyond the parameters stated
by TI for that product or service voids all express and any implied warranties for the associated
TI product or service and is an unfair and deceptive business practice. TI is not responsible or
liable for any such statements.
Mailing Address:
Texas Instruments
Post Office Box 655303
Dallas, Texas 75265
Copyright 2001, Texas Instruments Incorporated
About This Manual
Preface
Read This First
The TMS320C6000t DSK Board Support Library (BSL) is a set of application
programming interfaces (APIs) used to configure and control all on-board devices. It is intended to make it easier for developers by eliminating much of the
tedious grunt-work usually needed to get algorithms up and running in a real
system.
Some of the advantages offered by the BSL include: device ease of use, a level
of compatibility between devices, shortened development time, portability,
some standardization, and hardware abstraction. A version of the BSL is available for the TMS320C6711t Developers Starter Kit (DSK).
This document is organized as follows:
- Introduction – a high level overview of the BSL
- Six BSL API module chapters
- Glossary
How to Use This Manual
The information in this document describes the contents of the
TMS320C6000t board support library (BSL) as follows:
- Chapter 1 provides an overview of the BSL, includes a table showing BSL
- Each additional chapter discusses an individual BSL API module and pro-
API module support for various C6000 devices, and lists the API modules.
vides:
J A description of the API module
J A table showing the APIs within the module and a page reference for
more specific information
J A module API Reference section in alphabetical order listing the BSL
API functions, enumerations, type definitions, structures, constants,
and global variables. Examples are given to show how these elements
are used.
Read This First
iii
How to Use This Manual
Notational Conventions / Related Documentation From Texas Instruments
Notational Conventions
This document uses the following conventions:
- Program listings, program examples, and interactive displays are shown
in a special typeface.
- In syntax descriptions, the function or macro appears in a bold typeface
and the parameters appear in plainface within parentheses. Portions of a
syntax that are in bold should be entered as shown; portions of a syntax
that are within parentheses describe the type of information that should be
entered.
- Macro names are written in uppercase text; function names are written in
lowercase.
- TMS320C6000 devices are referred to throughout this reference guide as
C6201, C6202, etc.
Related Documentation From Texas Instruments
The following books describe the TMS320C6x devices and related support
tools. To obtain a copy of any of these TI documents, call the Texas Instruments Literature Response Center at (800) 477–8924. When ordering, please
identify the book by its title and literature number. Many of these documents
can be found on the Internet at http://www.ti.com.
TMS320C62x/C67x Technical Brief (literature number SPRU197) gives an
introduction to the C62x/C67x digital signal processors, development
tools, and third-party support.
TMS320C6000 Chip Support Library API User’s Guide (literature number
SPRU401) describes the chip support library (CSL), a library dedicated
for initialization and control of the on-chip peripherals.
TMS320C6000 CPU and Instruction Set Reference Guide (literature
number SPRU189) describes the ’C6000 CPU architecture, instruction
set, pipeline, and interrupts for these digital signal processors.
TMS320C6000 Peripherals Reference Guide (literature number SPRU190)
describes common peripherals available on the TMS320C6000 digital
signal processors. This book includes information on the internal data
and program memories, the external memory interface (EMIF), the host
port interface (HPI), multichannel buffered serial ports (McBSPs), direct
memory access (DMA), enhanced DMA (EDMA), expansion bus, clocking and phase-locked loop (PLL), and the power-down modes.
iv
How to Use This Manual
TMS320C6000 Programmer’s Guide (literature number SPRU198)
describes ways to optimize C and assembly code for the TMS320C6000
DSPs and includes application program examples.
TMS320C6000 Assembly Language Tools User’s Guide (literature number
SPRU186) describes the assembly language tools (assembler, linker,
and other tools used to develop assembly language code), assembler
directives, macros, common object file format, and symbolic debugging
directives for the ’C6000 generation of devices.
TMS320C6000 Optimizing C Compiler User’s Guide (literature number
SPRU187) describes the ’C6000 C compiler and the assembly optimizer.
This C compiler accepts ANSI standard C source code and produces assembly language source code for the ’C6000 generation of devices. The
assembly optimizer helps you optimize your assembly code.
TMS320C62x DSP Library (literature number SPRU402) describes the 32
high-level, C-callable, optimized DSP functions for general signal processing, math, and vector operations.
TMS320C62x Image/Video Processing Library (literature number
SPRU400) describes the optimized image/video processing functions
including many C-callable, assembly-optimized, general-purpose
image/video processing routines.
Provides a description of the AD535 API module, lists the individual APIs within the module,
and includes a reference section with the API functions, structures, and constants that are applicable to this module.
Provides a description of the BOARD API module, lists the individual APIs within the module,
and includes a reference section showing the API functions and constants that are applicable
to this module.
Provides a description of the DIP API module, lists the individual APIs within the module, and
includes a reference section showing the single API function and constant within this module.
Provides a description of the FLASH API module, lists the individual APIs within the module,
and includes a reference section showing the API functions and constants that are applicable
to this module.
Provides a description of the LED API module, lists the individual APIs within the module, and
includes a reference section showing the API functions and constants that are applicable to this
module.
The BSL provides a C-language interface for configuring and controlling all onboard devices. The library consists of discrete modules that are built and archived into a library file. Each module represents an individual API and is referred to simply as an API module. The module granularity is architected such
that each device is covered by a single API module except the I/O Port Module,
which is divided into two API modules: LED and DIP.
How The BSL Benefits You
The BSL’ s beneficial features include device ease of use, shortened development time, portability, hardware abstraction, and a level of standardization and
compatibility among devices. In general, the BSL makes it easier for you to get
your algorithms up and running in the shortest length of time.
1-2
1.2BSL API Modules
For each on-board device, one header file and one source file will be generated with the following names: bsl_device.h and bsl_device.c.
Also, a library will be built for a given board:
i.e: bsl6711dsk.lib
Note : The soource files.c are archived into a single source file bsl.src.
Table 1–1 provides a current list of BSL API Modules.
Table 1–1. BSL Modules and Include Files
BSL API Modules
Board
Module
BSLTop-level module: Initialization of the BSLbsl_bsl.hBSL_init
BOARDBoard-specific module – can call CSL at run-
AD535Audio codec module (C6711 DSK)bsl_ad535.hAD535_SUPPORT
DIPDip switches modulebsl_dip.hDIP_SUPPORT
FLASHFlash ROM modulebsl_flash.hFLASH_SUPPORT
LED
DescriptionInclude File
bsl_board.hBOARD_SUPPORT
time
LED modulebsl_led.hLED_SUPPORT
Module Support
Symbol
Interdependencies
Although each API module is unique, there exists some interdependency between the CSL (Chip Support Library) and BSL modules. For example, the
AD535 module depends on the MCBSP module because MCBSP0 is dedicated to serial communication.
1.2.1BSL API Module Support
Not all API modules are supported on all boards. For example, the AIC10 module is not supported on the C6711 DSK because the board does not have an
AIC10 codec. When an API module is not supported, all of its header file information is conditionally compiled out, meaning the declarations will not exist.
Because of this, calling an AIC10 API function on a board that does not support
AIC10 results in a compiler and/or linker error.
Note: AIC10 codec is implemented on C5510evm.
BSL Overview
1-3
BSL API Modules
6711 DSK Module Support
Table 1–3 shows which board each API module is supported on. Currently , all
modules described in the following chapters are supported by the C6711 DSK.
In the future, more APIs supported by other platforms will be added to the BSL.
Table 1–2. BSL Support Library Name and Symbol Conventions
Handles are required for devices present more than once. For example, only
one AD535 codec is implemented on-board and associated with mcbsp0;
however, you can use a second AD535 implemented on a daughter board and
make data transfers through mcbsp1.
1-4
1.3BSL Project Settings
1.3.1User’s Program Setting
Due to the interdependancies between CSL and BSL, the CSL is initialized by
calling the CSL_init() function followed by the BSL initialization function,BSL_init().
Also, the two header files <csl.h> and <bsl.h> have to be included in your program in order for you to have access to the BSL APIs.
1.3.2Compiler Options
In the Compiler Option window, the Chip and Board symbols have to be defined using the –d switch. For example,
–dCHIP_6711 –dBOARD_6711DSK
Also, the paths of the “Include” folder containing the BSL and CSL header files
have to be set with the –i switch.
BSL Project Settings
1.3.3Linker Options
The paths of the CSL and BSL libraries have to be defined. The two libraries
are named, respectively, csl6711.lib and bsl6711dsk.lib.
Note: Device Identification Symbol
When using the BSL, it is up to the user to define a project-wide symbol from
a predetermined set to identify which device is being used. This board identification symbol is then used in the BSL header files to conditionally define
the support symbols. (See Section 3.2, API Reference, for more information.
BSL Overview
1-5
Chapter 2
AD535 API Module
This chapter provides a description of the AD535 API module, lists the individual APIs within the module, and includes a reference section showing the API
functions, structures, and constants that are applicable to this module.
The AD535 module (audio codec supported by the C6711 DSK) serves as a
level of abstraction such that it works the same for all AD535s supported on
TI EVM/DSKs.
To use an AD535 device, you must first open it and obtain a device handle using AD535_open(). Once opened, use the device handle to call the other API
functions. The codec may be configured by passing an AD535_Config structure to AD535_config().
Table 2–1. AD535 API Summary
SyntaxType DescriptionPage
AD535_closeFCloses the AD535 module2-5
AD535_ConfigSThe AD535 configuration structure used to set up an
AD535 codec
AD535_configFSets up the AD535 codec using the register value
passed in
AD535_freeMcbspFSets the FREE bit of an McBSP serial port to 1.2-6
AD535_getMcbspHandleFReturns the Handle of the McBSP associated with the
codec previously opened
AD535_IdSThe AD535 Identity Structure used to allocate the
Codec device and the associated McBSP
AD535_inGainFSets the AD535’s input gain2-10
AD535_micGainFSets the microphone preamplifier gain2-10
AD535_modifyRegFModifies the AD535 control registers2-11
AD535_openFOpens an AD535 codec for use2-12
AD535_outGainFSets the AD535’s output gain2-13
AD535_powerDownFPuts the AD535 in power-down mode2-13
AD535_readFReads received data (voice channel)2-14
AD535_readHwiFReads received data (voice channel)2-14
2-5
2-6
2-8
2-8
AD535_readRegFReads the contents of AD535 control registers2-14
AD535_resetFResets the AD5352-16
AD535_SUPPORT
2-2
CA compile time constant whose value is 1 if the board
supports the AD535 module
2-16
AD535 API Module Description
PageDescriptionTypeSyntax
AD535_writeFWrites data to be sent2-16
AD535_writeHwiFWrites data to be sent2-17
AD535_writeReg
Note:F = Function; C = Constant; S = Structure; T = Typedef
FWrites to the AD535 control registers2-17
AD535 API Module
2-3
2.2AD535 API Reference
AD535_Config
AD535_close
Closes codec channel
FunctionVoid AD535_close(
AD535_Handle hAD535
);
ArgumentshAD535Handle to codec channel, see AD535_open()
Return Valuenone
DescriptionThis function closes a codec channel previously opened via
AD535_open(). The registers for the codec are set to their power-on
defaults.
ExampleAD535_close(hAD535);
AD535_Config
Configuration structure used to set up codec channel
DescriptionSets 1 to the FREE field of the SPCR register of the given McBSP port.
When FREE is set to 1, the serial clocks continue to run during an
emulation halt.
Example/* Set the FREE bit of Mcbsp serial port 0 */
AD535_freeMcbsp (MCBSP_DEV0);
AD535 API Module
2-7
AD535_getMcbspHandle
AD535_getMcbsp
Handle
FunctionMcbsp_Handle AD535_getMcbspHandle(
ArgumentshAD535Handle to codec channel, see AD535_open()
Return ValueMcbsp_handleHandle to the opened McBSP associated to the
DescriptionReturns the McBSP Handle associated with the McBSP used for AD535
ExampleMcbsp_Handle hMcbsp;
AD535_Id
StructureAD535_Id
Returns McBSP Handle
AD535_Handle hAD535,
);
number of McBSP.
communication.
Note: The Mcbsp_Handle type is defined in the Chip Suppport Library
(CSL) and created by the internal call of the MCBSP_open() function.
hMcbsp = AD535_getHandleMcbsp(hAD535);
Allocates codec channel
MembersTypedef Struct {
Struct {
int mcbsp_no;
} Id;
Struct {
Boolean allocated;
MCBSP_Handle
hMcbsp;
} Obj;
} AD535_Id
2-8
The typedef structure AD535_Id includes 2
substructures such as Id and Obj
structures
The internal structure Id contains the field
mcbsp_no. The member mcbsp_no
contains the number of the serial port you
wish to use.
The internal structure Obj contains the
boolean field to allocate the codec and the
McBSP handle associated with the number
of the McBSP which will be open
“mcbsp_no”.
AD535_Id
DescriptionThis AD535_Id structure is used to allocate a codec channel. You create
and initialize this structure, then pass its address to the AD535_open()
function. Also, this structure allows you to access to the McBSP handle
through the AD535_getMcbspHandle() function after calling
AD535_open().
If you wish to use the AD535 codec implemented on C6711DSK you can
pass the predefined pointer AD535_ON_6711DSK
The predefined pointer AD535_locald associates the codec to the
mcbsp0 directly. It’s not necessary to define AD535_Id pointer.
mcbsp_no variable is set to 0 (mcbsp0)
See source file bsl_ad535.c
Example/* the codec of C6711DSK use the predfined pointer
/* set up a codec using McBSP 1 */
AD535_Handle hAD535;
AD535_Id myId;
myId.Id.mcbsp_no = 1;
hAD535 = AD535_open(*myId);
AD535_powerDown
AD535_outGain
Sets AD535’s output gain
Functionvoid AD535_outGain(
AD535_Handle hAD535,
float outGain
);
ArgumentshAD535Handle to codec channel, see AD535_open()
outGainDAC output gain.
Return Valuenone
DescriptionSets the AD535’s output gain.
6711 DSK
- AD535_GAIN_MUTE
- AD535_GAIN_0DB
- –36 dB <= outGain <= 12 dB (in 1.5 dB steps)
ExampleAD535_outGain(hAD535,AD535_GAIN_0DB);
AD535_powerDown
Enables AD535’s power-down mode
Functionvoid AD535_powerDown(
AD535_Handle hAD535
);
ArgumentshAD535Handle to codec channel, see AD535_open()
Return Valuenone
DescriptionEnables the AD535’s power down mode. This performs a software power
down, so the control registers retain their previous values.
ExampleAD535_powerDown(hAD535);
AD535 API Module
2-13
AD535_read
AD535_read
Functionint AD535_read(
ArgumentshAD535Handle to codec channel, see AD535_open()
Return ValueintValue returned from output of ADC.
DescriptionReturns the value of the ouput from the ADC.
Exampleint val;
AD535_readHwi
Functionint AD535_readHwi(
ArgumentshAD535Handle to codec channel, see AD535_open()
Return ValueintValue returned from output of ADC.
DescriptionAllows the user to read the output value of ADC. Unlike the AD535_read
Returns value of ouput from ADC
AD535_Handle hAD535
);
val = AD535_read(hAD535);
Display Code at Selected Address
AD535_Handle hAD535
);
API, it does not use polling to establish that the McBSP is ready for
another sample. Rather, it requires the McBSP to always be ready. In
other words, the AD535_readHwi routine is for use with an Interrupt
Service Routine. The fact that you arrived at an McBSP receive ISR
signifies that the McBSP is ready with another sample.
Example/* The function is included in the ISR associated to
McBSP receive event REVT */
void AD535_readIsr(){
Uint16 val;
val = AD535_readHwi(hAD535);
}
AD535_readReg
FunctionUint32 AD535_readReg(
ArgumentshAD535Handle to codec channel, see AD535_open()
2-14
Returns value of specified control register
AD535_Handle hAD535,
AD535_Reg ad535Register
);
ad535RegisterControl register enumeration:
- AD535_REG_CTRL0
- AD535_REG_CTRL1
- AD535_REG_CTRL2
- AD535_REG_CTRL3
- AD535_REG_CTRL4
- AD535_REG_CTRL5
Return ValueUint32Value of specified control register.
DescriptionReturns the value of the specified control register.
ExampleUint32 controlRegVal;
ArgumentshAD535Handle to codec channel, see AD535_open()
Return Valuenone
DescriptionAsserts a software reset and sets all the registers to their power-on default
ExampleAD535_reset(hAD535);
AD535_SUPPORT
ConstantAD535_SUPPORT
DescriptionCompile time constant that has a value of 1 if the board supports the
Asserts software reset
AD535_Handle hAD535
);
values.
Compile time constant
AD535 module and 0 otherwise. You are not required to use this constant.
Currently, all devices support this module.
Example#if (AD535_SUPPORT)
/* do AD535 operations */
#endif
AD535_write
Functionvoid AD535_write(
ArgumentshAD535Handle to codec channel, see AD535_open()
Return Valuenone
DescriptionWrites value to the input of the DAC.
ExampleTo read from the codec and write back the same value, use:
2-16
Writes value to input of DAC
AD535_Handle hAD535,
int val
);
valValue to be written to DAC.
AD535_write(hAD535,AD535_read(hAD535));
AD535_writeReg
AD535_writeHwi
Writes value to input of DAC
Functionvoid AD535_writeHwi(
AD535_Handle hAD535,
int val
);
ArgumentshAD535Handle to codec channel, see AD535_open()
valValue to be written to DAC.
Return Valuenone
DescriptionWrites value to the input of the DAC. Unlike the AD535_write API, it
does not use polling to establish that the McBSP is ready to write another
sample. Rather, it requires the McBSP to already be ready. In other words,
the AD535_writeHwi is for use within an Interrupt Service Routine. The
face that you arrived at an McBSP transmit ISR signifies that the McBSP
is ready with another sample.
Example/* The function is included in the ISR associated to
AD535_Handle hAD535,
AD535_Reg ad535Register,
Uint32 val
);
ArgumentshAD535Handle to codec channel, see AD535_open()
ad535RegisterControl register enumeration:
- AD535_REG_CTRL0
- AD535_REG_CTRL1
- AD535_REG_CTRL2
- AD535_REG_CTRL3
- AD535_REG_CTRL4
- AD535_REG_CTRL5
valValue to be written to specified register
Return Valuenone
AD535 API Module
2-17
AD535_writeReg
DescriptionWrites value to the specified control register.
6711 DSK
Note: Only the Voice channel is available on this board. This means the
changes to control registers 0, 1, and 2 will have no effect on the
operation of the codec.
Example/* Set up 10.5db ADC input gain and 0dB microphone
preamp gain in control register 4 */
AD535_writeReg(hAD535, AD535_REG_CTRL4, 0x0040);
2-18
Chapter 3
BOARD API Module
This chapter provides a description of the BOARD API module, lists the individual APIs within the module, and includes a reference section showing the API
functions and constants that are applicable to this module.
The BOARD module is where we put board-specific content. This module has
the potential to grow in the future as more boards are placed on the market.
Currently, the module has some API functions for register access such as
BOARD_readReg(), and BOARD_writeReg().
A predefined symbol is associated with each EVM/DSK, for example,
BOARD_6711DSK ( –d switch for compiler options setting)
Table 3–1. BOARD API Summary
SyntaxType DescriptionPage
BOARD_readRegFReads a specified.BOARD memory–mapped register3-3
BOARD_SUPPORTCA compile time constant whose value is 1 if the board
supports the BOARD module
BOARD_writeReg
Note:F = Function; C = Constant; S = Structure; T = Typedef
FWrites into a specified Board memory–mapped
register
3-3
3-4
3-2
3.2BOARD API Reference
BOARD_SUPPORT
BOARD_readReg
FunctionUint32 BOARD_readReg(
ArgumentsboardRegisterRegister enumeration
Return ValueUint32Returns specified register value
DescriptionReturns the value of the specified memory-mapped register.
ExampleUint32 boardRegVal;
BOARD_SUPPORT
ConstantBOARD_SUPPORT
DescriptionCompile time constant that has a value of 1 if the board supports the
Returns value of specified memory-mapped register
BOARD_Reg boardRegister
);
C6711 DSK
- BOARD_REG_IOPORT
boardRegVal = BOARD_readReg(BOARD_REG_IOPORT);
Compile time constant
different modules via MODULE_SUPPORT constants and 0 otherwise. You
are not required to use this constant.
Currently, all devices support this module.
Example#if (BOARD_SUPPORT)
/* do DIP operations */
#endif
BOARD API Module
3-3
BOARD_writeReg
BOARD_writeReg
Functionvoid BOARD_writeReg(
ArgumentsboardRegisterRegister enumeration
Return Valuenone
DescriptionWrites the value to the specified memory-mapped register.
ExampleBOARD_writeReg(BOARD_REG_IOPORT, 0x00000000);
Writes value to specified memory-mapped register
BOARD_Reg boardRegister,
Uint32 val
);
C6711 DSK
- BOARD_REG_IOPORT
valValue to be written to specified register.
3-4
Chapter 4
BSL API Module
This chapter provides a description of the BSL API module and includes a reference section showing the single API function within this module.
The BSL module serves to initialize the API modules supported by the
board.The following unique function has to be called before using the API functions:
BSL_init ()
Table 4–1. BSL API Function
SyntaxType DescriptionPage
BSL_initFInitializes the BSL library4-3
Note:F = Function; C = Constant; S = Structure; T = Typedef
4-2
4.2BSL API Reference
BSL_init
BSL_init
Initializes all programmable modules on board
Functionvoid BSL_init();
Argumentsnone
Return Valuenone
DescriptionThis function initializes all of the programmable modules on the board.
C6711 DSK
- AD535 Codec
- BOARD module
- DIP switch
- FLASH ROM
- User LEDs
ExampleBSL_init();
BSL API Module
4-3
Chapter 5
DIP API Module
This chapter provides a description of the DIP API module, lists the individual
APIs within the module, and includes a reference section showing the single
API function and constant within this module.
This module has the following single API for reading DIP switch positions:
DIP_get(dip#) returns a boolean value {0,1}.
Table 5–1. DIP API Summary
SyntaxType DescriptionPage
DIP_getFReads the status of the DIP switches5-3
DIP_SUPPORTCA compile time constant whose value is 1 if the board
supports the DIP module
Note:F = Function; C = Constant; S = Structure; T = Typedef
5-3
5-2
5.2DIP API Reference
DIP_SUPPORT
DIP_get
Returns current value of specified DIP switch
FunctionUint32 DIP_get(
Uint32 dipNum
);
ArgumentsdipNumSpecifies which DIP switch to be read, can be one of
the following:
- DIP_1
- DIP_2
- DIP_3
- …
Return ValueUint32Current value of the specified DIP switch.
- 0 = DIP switch position is off.
- 1 = DIP switch position is on.
DescriptionReturns the current value of the specified DIP switch.
C6711 DSK
- DIP_1 = USER_SW1
- DIP_2 = USER_SW2
- DIP_3 = USER_SW3
ExampleUint32 val;
val = DIP_get(DIP_1);
DIP_SUPPORT
Compile time constant
ConstantDIP_SUPPORT
DescriptionCompile time constant that has a value of 1 if the board supports the DIP
module and 0 otherwise. You are not required to use this constant.
Currently, all devices support this module.
Example#if (DIP_SUPPORT)
/* do DIP operations */
#endif
DIP API Module
5-3
Chapter 6
FLASH API Module
This chapter provides a description of the FLASH API module, lists the individual APIs within the module, and includes a reference section showing the API
functions and constants that are applicable to this module.
ArgumentslocatorAddressing and page information for location in Flash
memory.
C6711 DSK
- FLASH_START_ADDR
- FLASH_PAGE_ADDR(x) :(x)– page number
- 32-bit Flash address
lengthLength in bytes of data to be erased. This is limited by
the size of the Flash memory.
C6711 DSK
- length in bytes
- FLASH_ERASE_ALL – erase entire FLASH
Return Valuenone
DescriptionErases the specified segment of Flash memory.
Note: This function does not affect unspecified segments of Flash. For
example, altering the lower half of a page of Flash memory does not
change the value of the upper half page.
C6711 DSK
- locator contains 32-bit address of Flash location
-FLASH_START_ADDR is 0x9000000
- Flash address range: 0x90000000 to 0x90020000
- FLASH_PAGE_SIZE = 0x80: 128 bytes
- Page number range: 0 to 1023
-FLASH_PAGE_ADDR(x) = FLASH_START_ADDR +
x*FLASH_PAGE_SIZE )
Note: On 5x boards, 16-bit addressing is used and page information is
included in the upper half-word of the address argument.
Note: When erasing the entire Flash memory, the locator argument
becomes a dummy parameter.
6-4
FLASH_read
FLASH_read
Reads data from FLASH address
Functionvoid FLASH_read(
Uint32 locator,
Uint32 dst,
Uint32 length
);
ArgumentslocatorAddressing and page information for location in Flash
memory.
C6711 DSK
- FLASH_START_ADDR
- FLASH_PAGE_ADDR(x) :(x)– page number
- 32-bit FLASH address
dstDestination address
lengthLength in bytes of data to be read. This is limited by the
size of the Flash memory.
Return Valuenone
DescriptionReads data from the FLASH address (locator) and copies it to a
destination address (dst). This function is limited only by the length of the
FLASH memory.
Note: This function does not affect unspecified segments of Flash. For
example, altering the lower half of a page of Flash memory does not
change the value of the upper half page.
C6711 DSK
- locator contains 32-bit address of Flash location
This chapter provides a description of the LED API module, lists the individual
APIs within the module, and includes a reference section showing the API
functions and constants that are applicable to this module.
This module has a simple API for configuring on-board LED outputs. Three
states can be set by the following functions:
- LED_on(led#)
- LED_off(led#)
- LED_toggle(led#)
Table 7–1. LED API Summary
SyntaxType DescriptionPage
LED_offFTurns off the specified LED7-3
LED_onFTurns on the specified LED7-3
LED_SUPPORTCA compile time constant whose value is 1 if the board
supports the LED module
LED_toggleFToggles the specified LED7-4
Note:F = Function; C = Constant; S = Structure; T = Typedef
7-4
7-2
7.2LED API Reference
LED_on
LED_off
Turns off specified LED
Functionvoid LED_off(
Uint32 LedNum
);
ArgumentsLedNumSpecifies which LED to be turned off. Can be one of
the following:
- LED_1
- LED_2
- LED_3
- …
Return Valuenone
DescriptionTurns off the specified LED.
C6711 DSK
- LED_1 = USER_LED1
- LED_2 = USER_LED2
- LED_3 = USER_LED3
- LED_ALL = all user LEDs
ExampleIf you want to turn off LED # 1 use:
LED_off(LED_1);
LED_on
Turns on specified LED
Functionvoid LED_on(
Uint32 LedNum
);
ArgumentsLedNumSpecifies which LED to be turned on. Can be one of
the following:
- LED_1
- LED_2
- LED_3
- …
Return Valuenone
LED API Module
7-3
LED_SUPPORT
DescriptionTurns on the specified LED.
C6711 DSK
- LED_1 = USER_LED1
- LED_2 = USER_LED2
- LED_3 = USER_LED3
- LED_ALL = all user LEDs
ExampleIf you want to turn on LED # 1 use:
LED_on(LED_1);
LED_SUPPORT
Compile time constant
ConstantLED_SUPPORT
DescriptionCompile time constant that has a value of 1 if the board supports the LED
module and 0 otherwise. You are not required to use this constant.
Currently, all devices support this module.
Example#if (LED_SUPPORT)
/* do LED operations */
#endif
LED_toggle
Toggles specified LED
Functionvoid LED_toggle(
Uint32 LedNum
);
ArgumentsLedNumSpecifies which LED to be toggled, can be one of the
following:
- LED_1
- LED_2
- LED_3
- …
Return Valuenone
DescriptionToggles the specified LED.
C6711 DSK
- LED_1 = USER_LED1
- LED_2 = USER_LED2
- LED_3 = USER_LED3
- LED_ALL = all user LEDs
ExampleIf you want to toggle LED # 1 use:
LED_toggle(LED_1);
7-4
A
Appendix A
Appendix A
Glossary
AD535: The audio codec API module. Currently supported by the
6711 DSK.
address: The location of program code or data stored; an individually
accessible memory location.
A-law companding: See compress and expand (compand).
API: See application programming interface.
API module: A set of API functions designed for a specific purpose.
application programming interface (API): Used for proprietary applica-
tion programs to interact with communications software or to conform to
protocols from another vendor’s product.
B
assembler: A software program that creates a machine language program
from a source file that contains assembly language instructions, directives, and macros. The assembler substitutes absolute operation codes
for symbolic operation codes and absolute or relocatable addresses for
symbolic addresses.
assert: To make a digital logic device pin active. If the pin is active low, then
a low voltage on the pin asserts it. If the pin is active high, then a high
voltage asserts it.
bit: A binary digit, either a 0 or 1.
big endian: An addressing protocol in which bytes are numbered from left
to right within a word. More significant bytes in a word have lower numbered addresses. Endian ordering is specific to hardware and is determined at reset. See also little endian.
A-1
Glossary
C
block: The three least significant bits of the program address. These corre-
spond to the address within a fetch packet of the first instruction being
addressed.
BOARD: The BOARD-specific API Module.
board support library (BSL): The BSL is a set of application programming
interfaces (APIs) consisting of target side DSP code used to configure
and control board level peripherals.
boot: The process of loading a program into program memory.
boot mode: The method of loading a program into program memory. The
C6x DSP supports booting from external ROM or the host port interface
(HPI).
BSL: See board support library.
byte: A sequence of eight adjacent bits operated upon as a unit.
cache: A fast storage buffer in the central processing unit of a computer.
cache module: CACHE is an API module containing a set of functions for
managing data and program cache.
cache controller: System component that coordinates program accesses
between CPU program fetch mechanism, cache, and external memory.
CCS: Code Composer Studio.
central processing unit (CPU): The portion of the processor involved in
arithmetic, shifting, and Boolean logic operations, as well as the generation of data- and program-memory addresses. The CPU includes the
central arithmetic logic unit (CALU), the multiplier , and the auxiliary register arithmetic unit (ARAU).
CHIP: See CHIP module.
CHIP module: The CHIP module is an API module where chip-specific and
device-related code resides. CHIP has some API functions for obtaining
device endianess, memory map mode if applicable, CPU and REV IDs,
and clock speed.
chip support library (CSL): The CSL is a set of application programming
interfaces (APIs) consisting of target side DSP code used to configure
and control all on-chip peripherals.
A-2
Glossary
clock cycle: A periodic or sequence of events based on the input from the
external clock.
clock modes: Options used by the clock generator to change the internal
CPU clock frequency to a fraction or multiple of the frequency of the input
clock signal.
code: A set of instructions written to perform a task; a computer program or
part of a program.
codec: Coder-decoder, or compression/decompression. A device that
codes in one direction of transmission and decodes in another direction
of transmission.
coder-decoder or compression/decompression (codec): A device that
codes in one direction of transmission and decodes in another direction
of transmission.
compiler: A computer program that translates programs in a high-level lan-
guage into their assembly-language equivalents.
compress and expand (compand): A quantization scheme for audio sig-
nals in which the input signal is compressed and then, after processing,
is reconstructed at the output by expansion. There are two distinct companding schemes: A-law (used in Europe) and µ-law (used in the United
States).
D
constant: A fixed or invariable value or data item that can be used as an op-
erand.
control register: A register that contains bit fields that define the way a de-
vice operates.
control register file: A set of control registers.
CSL: See chip support library.
CSL module: The CSL module is the top-level CSL API module.It interfaces
to all other modules and its main purpose is to initialize the CSL library.
DAT: Data; see DAT module.
DAT module: The DAT is an API module that is used to move data around
by means of DMA/EDMA hardware. This module serves as a level of abstraction that works the same for devices that have the DMA or EDMA
peripheral.
Glossary
A-3
Glossary
device ID: Configuration register that identifies each peripheral component
interconnect (PCI).
digital signal processor (DSP): A semiconductor that turns analog sig-
nals—such as sound or light—into digital signals, which are discrete or
discontinuous electrical impulses, so that they can be manipulated.
DIP: The DIP Switches API Module.
direct memory access (DMA): A mechanism whereby a device other than
the host processor contends for and receives mastery of the memory bus
so that data transfers can take place independent of the host.
DMA : See direct memory access.
DMA module: DMA is an API module that currently has two architectures
used on C6x devices: DMA and EDMA (enhanced DMA). Devices such
as the 6201 have the DMA peripheral, whereas the 6211 has the EDMA
peripheral.
DMA source: The module where the DMA data originates. DMA data is read
from the DMA source.
E
DMA transfer: The process of transferring data from one part of memory to
another. Each DMA transfer consists of a read bus cycle (source to DMA
holding register) and a write bus cycle (DMA holding register to destination).
DSK: Digital signal processor (DSP) starter kit. Tools and documentation
provided to new DSP users to enable rapid use of the product.
EDMA: Enhanced direct memory access; see EDMA module.
EDMA module: EDMA is an API module that currently has two architectures
used on C6x devices: DMA and EDMA (enhanced DMA). Devices such
as the 6201 have the DMA peripheral, whereas the 6211 has the EDMA
peripheral.
EMIF: See external memory interface; see also EMIF module.
EMIF module: EMIF is an API module that is used for configuring the EMIF
registers.
evaluation module (EVM): Board and software tools that allow the user to
evaluate a specific device.
A-4
F
Glossary
external interrupt: A hardware interrupt triggered by a specific value on a
pin.
external memory interface (EMIF): Microprocessor hardware that is used
to read to and write from off-chip memory.
fetch packet: A contiguous 8-word series of instructions fetched by the CPU
and aligned on an 8-word boundary.
flag: A binary status indicator whose state indicates whether a particular
condition has occurred or is in effect.
FLASH: The FLASH ROM API Module.
frame: An 8-word space in the cache RAMs. Each fetch packet in the cache
resides in only one frame. A cache update loads a frame with the requested fetch packet. The cache contains 512 frames.
G
H
I
global interrupt enable bit (GIE): A bit in the control status register (CSR)
that is used to enable or disable maskable interrupts.
host: A device to which other devices (peripherals) are connected and that
generally controls those devices.
host port interface (HPI): A parallel interface t hat t he CP U u ses t o c ommu-
nicate with a host processor.
HPI: See host port interface; see also HPI module.
HPI module: HPI is an API module used for configuring the HPI registers.
Functions are provided for reading HPI status bits and setting interrupt
events.
index: A relative offset in the program address that specifies which of the
512 frames in the cache into which the current access is mapped.
Glossary
A-5
Glossary
indirect addressing: An addressing mode in which an address points to
another pointer rather than to the actual data; this mode is prohibited in
RISC architecture.
instruction fetch packet: A group of up to eight instructions held in memory
for execution by the CPU.
internal interrupt: A hardware interrupt caused by an on-chip peripheral.
internal peripherals: Devices connected to and controlled by a host device.
The C6x internal peripherals include the direct memory access (DMA)
controller, multichannel buffered serial ports (McBSPs), host port interface (HPI), external memory-interface (EMIF), and runtime support timers.
interrupt: A signal sent by hardware or software to a processor requesting
attention. An interrupt tells the processor to suspend its current operation, save the current task status, and perform a particular set of instructions. Interrupts communicate with the operating system and prioritize
tasks to be performed.
interrupt service fetch packet (ISFP): A fetch packet used to service inter-
rupts. If eight instructions are insufficient, the user must branch out of this
block for additional interrupt service. If the delay slots of the branch do
not reside within the ISFP, execution continues from execute packets in
the next fetch packet (the next ISFP).
A-6
interrupt service routine (ISR): A module of code that is executed in re-
sponse to a hardware or software interrupt.
interrupt service table (IST) A table containing a corresponding entry for
each of the 16 physical interrupts. Each entry is a single-fetch packet and
has a label associated with it.
IRQ: Interrupt request; see IRQ module.
IRQ module: IRQ is an API module that manages CPU interrupts.
IST: See interrupt service table.
L
least significant bit (LSB): The lowest-order bit in a word.
LED: The LED API Module.
linker: A software tool that combines object files to form an object module,
which can be loaded into memory and executed.
M
Glossary
little endian: An addressing protocol in which bytes are numbered from right
to left within a word. More significant bytes in a word have higher-numbered addresses. Endian ordering is specific to hardware and is determined at reset. See also big endian.
µ-law companding: See compress and expand (compand).
maskable interrupt: A hardware interrupt that can be enabled or disabled
through software.
MCBSP: See multichannel buffered serial port; see also MCBSP module.
MCBSP module: MCBSP is an API module that contains a set of functions
for configuring the McBSP registers.
memory map: A graphical representation of a computer system’s memory,
showing the locations of program space, data space, reserved space,
and other memory-resident elements.
memory-mapped register: An on-chip register mapped to an address in
memory. Some memory-mapped registers are mapped to data memory,
and some are mapped to input/output memory.
N
O
most significant bit (MSB): The highest order bit in a word.
multichannel buffered serial port (McBSP): An on-chip full-duplex circuit
that provides direct serial communication through several channels to
external serial devices.
multiplexer: A device for selecting one of several available signals.
nonmaskable interrupt (NMI): An interrupt that can be neither masked nor
disabled.
object file: A file that has been assembled or linked and contains machine
language object code.
off chip: A state of being external to a device.
on chip: A state of being internal to a device.
Glossary
A-7
Glossary
P
R
peripheral: A device connected to and usually controlled by a host device.
program cache: A fast memory cache for storing program instructions al-
lowing for quick execution.
program memory: Memory accessed through the C6x’s program fetch in-
terface.
PWR: Power; see PWR module.
PWR module: PWR is an API module that is used to configure the power-
down control registers, if applicable, and to invoke various power-down
modes.
random-access memory (RAM): A type of memory device in which the
individual locations can be accessed in any order.
register: A small area of high speed memory located within a processor or
electronic device that is used for temporarily storing data or instructions.
Each register is given a name, contains a few bytes of information, and
is referenced by programs.
A-8
reduced-instruction-set computer (RISC): A computer whose instruction
set and r elated d ecode m echanism a re m uch s impler t han t hose o f m icroprogrammed complex instruction set computers. The result is a higher
instruction throughput and a faster real-time interrupt service response
from a smaller, cost-effective chip.
reset: A means of bringing the CPU to a known state by setting the registers
and control bits to predetermined values and signaling execution to start
at a specified address.
RTOS Real-time operating system.
S
structure: A collection of one or more variables grouped together under a
whose contents does not have to be refreshed periodically. Transfer of
data is at a fixed rate relative to the clock speed of the device, but the
speed is increased.
API module support, 1-3
API module support for 6711 DSK, table, 1-4
API modules, 1-3
device identification symbol, note regarding, 1-5
how the BSL benefits you, 1-2
interdependencies, 1-3
introduction, 1-2
modules and include files, table, 1-3
overview, 1-1
project settings, 1-5
BSL API module, 4-1
API function, 4-3
BSL_init, 4-3
description, 4-2
function table, 4-2
D
device identification symbol, note regarding, 1-5
DIP API module, 5-1
API constant, 5-3
DIP_SUPPORT, 5-3
API function, DIP_get, 5-3
API summary table, 5-2
description, 5-2