- _ -

_host_in

_host_out

_kernel

_server_terminate_now

- < -

<3L>

- 3 -

3L command

adding your own commands

command file

command file example

command syntax

defaults

function name

functions

macros

operations

processor types

targets

- A -

abort

abs

abstract model

acos

alt functions

alt_nowait

alt_nowait_vec

alt_wait

alt_wait_vec

APP2COFF

application

Tasks
Configuring an Application
Structure of an Application
Building a Multi-Task Application
Multiprocessor Applications
Configuring Multi-Processor Applications

_server_terminate_now

automatic decomposition

building

Getting Started
Building Diamond applications
Building the Application

exit

run when selected

running

selecting in the server

shutting down

slow to start

stand-alone

stopping

Building a Multi-Task Application
Stopping the Application

archiver

arguments to main

asin

assembly language

assert

atan

atan2

atexit

atof

atoi

atol

attach

attaching to an FPGA

automatic wire definition

order of processors

automatic decomposition

available processor types

Available Processor Types
Processor Types

AVOID attribute

configuration file

- B -

big-endian

binary file

bind statement

port specifiers

blocking

on physical links

board

selection

board services

access to carrier-board SRAM

access to PCI registers

addess to PCI address space

CloseBoardServices

file transfers

high-speed channel

mailboxes

OpenBoardServices

packaged services

select_fast_host_io

Smt_ClaimGB

Smt_GbRead

Smt_GbWrite

Smt_HscControl

Smt_HscInit

Smt_HscPciRead

Smt_HscPciWrite

Smt_HscReadArgs

Smt_HscWriteArgs

Smt_MbClaim

Smt_MbRead

Smt_MbRelease

Smt_MbWrite

Smt_PciRegRead

Smt_PciRegWrite

Smt_ReleaseGB

Smt_SramRead

Smt_SramWrite

status codes

BOOT attribute

bsearch

building applications

byte

byte order

- C -

cache

enabling

external memory

fundamental problem with

performance issues

calloc

ceil

chan_in_message

chan_in_word

chan_init

chan_out_message

chan_out_word

chan_reset

channel

Abstract Model
Tasks
The Microkernel

blocking

blocking on physical links

compared to wire

connecting to a link

external channels

finding active input

initialising when internal

internal channels

link

physical

Ports & Channels
Virtual & Physical Channels
Physical Channels

physical channel restrictions

placing connection on a wire

standard I/O

transfer functions

transfer size ageement

virtual

Ports & Channels
Virtual & Physical Channels
Virtual Channels

clearerr

clock

CLOCK attribute

clock domain

default domains

clock domains

adding tasks to a domain

creating from a task

declaring a new domain

defining

derived from a task

derived from another domain

derived from pins

deriving from another domain

deriving from default clock

NoSync

synchronsiation between

syntax

cluster

limitations on transaction size

code

Code Composer

and Diamond applications

debugging with

environment variables

projects

reset issues

single-processor debugging

switching to assembly mode

traditional use

version

COFF

command-line arguments

compiler

calling directly

FAR data

FPGA options

linking after

option switches

options

using

compiling

comport

comport links

comport reset direction

confidence test

configuration file

The Configuration File
The Configurer
The Configuration File

anonymous identifiers

closer look

IDE

task statement

configuration language

anonymous identifiers

bind statement

case of letters

comments

connect statement

continuing statements over multiple lines

default statement

identifiers

input files

K

low-level syntax

M

metalanguage used to describe

numeric constants

option statement

place statement

processor statement

proctype statement

scaling letters

statements

string constants

task statement

upr statement

white space

wire statement

configurer

Configuring
The Configurer

-A

calling

command switches

configuration file

configuration language

identity

invoking

Invoking the Configurer
Calling the Configurer

-l

Options
Options

list section addresses

list symbol & section addresses

memory allocation

multi-processor applications

specifying command switches

stand-alone application

task image file

use of files

verbose

connect statement

Ports & Channels
CONNECT statement

and links

connection type attribute

difference from wire statement

port specifiers

short attribute

constraints

for FPGA tasks

context switching

thread_deschedule

cos

cosh

CP

Link Types
Comport Links

CPU

Processors
Processors

CSP

- D -

DCM locking

deadlock

debugging

notes

required compiler option

with Code Composer

default

processor for 3L command

target for 3L command

default connect

default statement

derived clock domain

DCM locking

Diamond utilities

disconnect_server

div

DMA

dongle

dragon (icon)

- E -

EDMA

Reserved Hardware Resources
EDMA

channel availability

EDMA_EVENT_PARAM

EDMA_INDEX

EDMA_LINK_OFFSET

EDMA_memcpy

EDMA_NULL_PARAM

events used by Diamond

number of available channels

outline example

reserved

SC6xEDMA_Claim

SC6xEDMA_ClaimAny

SC6xEDMA_ClaimAnyWait

SC6xEDMA_ClaimParam

SC6xEDMA_ClaimWait

SC6xEDMA_FlushCache

SC6xEDMA_ReleaseParam

SC6xEDMAChannel Functions

SC6xEDMAChannel_AwaitInterrupt

SC6xEDMAChannel_Disable

SC6xEDMAChannel_Enable

SC6xEDMAChannel_KickWait

SC6xEDMAChannel_Release

SC6xEDMAChannel_ResetEvent

SC6xEDMAChannel_Start

SC6xEDMAChannel_StartWait

EDMA functions

EDMA3

EDMA_REG

email 3L

environment variables

C6X_A_DIR

C6X_C_DIR

PATH

EOF

errcode_get

errcode_see

errcode_set

errno

EVENT

event_init

EVENT_NO

event_pulse

event_reset

event_set

event_wait

EVENT_YES

events

examples

exit

exp

external memory

- F -

fabs

FAR data

fclose

feof

ferror

fflush

fgetc

fgetpos

fgets

FILE attribute

first processor

floor

fmod

fopen

forum

FPGA

Processors
Processors

%CLOCKIN%

%CLOCKOUTPERIOD%

%PATH%

compilation options

fpga editor

intermediate files

loading via

option file

special logic blocks

timing analyser

top component

FPGA tasks

channels

clk

clock domains

constraints

design example

designing

external pins

FCD file

languages

package file

FCD File
Package File

pinout information

pinouts

reset

specifying

standard VHDL ports

system generator

task clock

task interface

timing constraints

timing example

timing specification

VHDL conventions

fprintf

fputc

fputs

Framework component

Top component

fread

free

freopen

frexp

fscanf

fseek

fsetpos

ftell

full task

3L T

argc

argv

IDE

function

minimum stack requirement

fwrite

- G -

getc

getchar

getenv

gets

GFS

glossary

gmake

- H -

hardware devices

heap

combined with stack

not specifying stack size

separate from stack

high-level interrupt handlers

c6xint_off

c6xint_restore

Enabling and Disabling Global Interrupts

i_event_set

i_sema_signal

i_sema_signal_n

host

link layer

presentation layer

host semaphores

host_sema_wait

- I -

icon

EOF

import

run

IDE

clean

device selection

displaying multiple windows

forced rebuild

heap requirement

important warning on importing

library

linker options

project options

running

stack requirement

IDLE

implicit processor

requiring new bitstream

import icon

Impulse-C

indirect files

input

end of file

prompt

terminate application

INPUT_PORT

Ports & Channels
I

INS attribute

installation

installation folder

INT14

INT4..6

INT7

internal memory

Reserved Hardware Resources
Physical memory Areas

interrupt handling

c6xint_attach_fn

external interrupts

high-level Interrupt Handlers

SC6xExt_Int_Claim

SC6xExt_Int_Claim_Any

SC6xExt_Int_Release

interrupts

enabling and disabling

inter-task communication

INTMUXn

isalnum

isalpha

iscntrl

isdigit

isgraph

islower

isprint

ispunct

isspace

isupper

isxdigit

- J -

JTAG

and wires

- K -

kernel

_kernel

context switching

modules

passive component

SC6xKernel_LocateInterface

scheduling

- L -

L1D

L1P

labs

languages

for FPGA tasks

ldexp

ldiv

leaf processor

loading via an FPGA

library

alt functions

archiver

channels

character handling

character I/O

common definitions

communication with the environment

comparison

concatenation

copy

creating

creating with the IDE

date & time

diagnostics

direct I/O

errors

events

exponential functions

file access

file operations

file positioning

format of synopses

formatted I/O

full library

headers

heap

heap flag

hyperbolic functions

I/O error handling

index

integers arithmetic

limits

links

localisation

macros

mathematical errors

mathematics

memory management

miscellaneous

multibyte character

multibyte string

nearest, absolute, & remainder

non-local jumps

power functions

random numbers

search

searching & sorting

semaphores

server flag

signal

stand-alone flag

stand-alone library

standard streams

stream I/O

string conversion

synchronising server access

text & binary

thread return codes

threads

timer

trigonometric functions

using

variable arguments

licence

DSP & FPGA

TCP/IP

limitations

server transaction sizes

limits

number of processors

link

16-bit SDB

reset direction

single-lane RSL

xxx has already been used.

link_in

link_in_word

link_out

link_out_word

linker

3L T

avoiding MEMORY and SECTIONS

calling directly

command files

IDE

indirect files

linker command file

locating files

memory directive

multiple files

option switches

relocatable

sections directive

see also: full task

see also: stand-alone task

task image file name

TI library

links

Links, Ports, and Wires
The Microkernel

availability for loading

blocking on physical links

compared to channel

comport

connecting to a channel

CP

link types

loading drivers

performance

restrictions on connecting

RSL

SDB

SRIO

little-endian

loading

applications

checks performed during

delay in starting

from ROM

from the host

localeconv

log

log10

longjmp

low-level interrupt handlers

accessing the microkernel

an example

assembly language

handler structure

k_event_set

k_signal_sema_n

register context

taking interrupts

- M -

mailing list

main

argc

arguments to

Ports & Channels
Arguments to main

argv

in_ports

ins

out_ports

outs

protocol error

termination and standard I/O

thread_stop

make

makefile

malloc

mblen

mbstowcs

mbtowc

memalign

memchr

memcmp

memcpy

memmove

memory

allocating largest free block

allocation

Memory Use
Memory Allocation

code

explicit placement of areas

heap

-l configurer switch

logical areas

opt

opt attribute

optimising

order of task placement

physical areas

preventing areas being used

stack

static

user-define sections

memset

microkernel

_kernel

passive component

modf

multi-DSP module

first processor

multiple inputs

multiplexor example

multiprocessor modules

first processor

order of attachment to FPGAs

root processor

- N -

network configuration

restrictions on

nmake

not_standalone

NUL

NULL

Macros
N

- O -

octet

offsetof

OPT attribute

option statement

loadcheck

noloadcheck

option switches

compiler

configurer

linker

order of attachments to FPGAs

output

page mode

pausing

OUTPUT_PORT

Ports & Channels
O

OUTS attribute

- P -

par_fprintf

par_free

par_malloc

par_printf

par_sema

synchronising server access

parallel programs

path

finding task image files

perror

phone

physical channel

Virtual & Physical Channels
Physical Channels

restrictions

selecting

physical channels

restrictions on

pinouts

for FPGA tasks

place statement

port

Abstract Model
Abstract Model

binding to a constant

input ports

misuse of bound value

output ports

vectors

PORT_BINDING

pow

printf

printf not working

priority

default

noturg

profligate use of

setting initial priority

thread_deschedule

urgent

Scheduling
Scheduling

PRIORITY attribute

problems

compiler not found

proc_id

processor

attached

automatic attachment

avoid attribute

BOOT attribute

buffers attribute

cache attribute

clock attribute

disabling cache on external memory

explicit attachment

ATTACH attribute
ATTACH attribute

heap attribute

host

identifying board

The Configuration File
The Configuration File

identifying physical device

The Configuration File
The Configuration File

implicit attachment

ATTACH attribute
ATTACH attribute

kernel attribute

listing node numbers

one of a group

Processors, Wires, and Links
Processors, Wires, and Links

order of attachment

ATTACH attribute
Order of Attachment

root

root attribute

type attribute

uncached attribute

processor families

processor types

proctype

clearmem attribute

map attribute

mem attribute

prompt

protocol error

Threads and Standard I/O
Synchronizing Server References

ptrdiff_t

putc

putchar

puts

- Q -

QDMA

accessing registers

an example

channel

functions

interface

Principles of Operation

QDMA_Claim

QDMA_Complete

QDMA_Interface

QDMA_Perform

QDMA_Release

QDMA_Restart

releasing resources

transfers

using

qsort

- R -

raise

rand

realloc

remove

rename

reset

server

reset direction

rewind

Rocket Serial Link

RocketIO Serial Link

ROM

root

attribute

multiprocessor modules

processor

RSL

Link Types
RSL Links

run icon

running

Running
Running the Application

3L X

command-line arguments

IDE

server

- S -

sample code

SC6xKernel_LocateInterface

scanf

scheduling

cause of

pre-emption

priority

thread_deschedule

timeslice

time-slice

waiting

SDB

Link Types
SDB Links

sema_init

sema_signal

sema_signal_n

sema_test_wait

sema_wait

sema_wait_n

semaphores

sequential programs

Serial RapidIO

server

The Server
Building Diamond applications
The Server

_get_bits

_ps1_get_bits

_ps1_get_double

_ps1_get_integer

_ps1_get_record

_ps1_put_bits

_ps1_put_double

_ps1_put_integer

_ps1_put_record

_put_bits

accessing your own cluster

advanced options

application already running

asynchronout input

board interface

board properties

building your own cluster

C object

clear screen on run

clearing the screen

CloseLogFiles

cluster drivers

cluster operation

communication object

core interface (C)

debug application

disconnecting

Dump

error messages

extending

FreeArgs

G object

general options

get_bits

get_double

get_int

get_rec

GetBootFile

GetCommandLine

GetCommandLineMax

GetRest

GetResultCode

GetVerb

help information

host semaphore

host semaphore toolbar

input

IsRunning

link layer

link-interface drivers

loading applications

locating clusters

Monitor

monitoring options

multiple instances

no link to the hardware

NoReply

OpenLogFiles

Opt object

options

Output

page mode

pausing output

presentation layer

presentation-layer drivers

push

put_bits

put_double

put_int

put_rec

Quit

ReadLine

reconnecting

replacing

replacing the GUI

report termination

reset

View/Options/Advanced Tab
Explicitly Resetting the Network

run when double-clicked

run when selected

running an applicaton

running application when selected

selecting an application

selecting your board

server dll

service loop

SetCommandLine

SetRest

SetResultCode

SetVerb

shortcut keys

shutting down

signal_host_mask

signal_host_semaphore

stand-alone application

standard I/O options

starting

stopping an application

StopRunning

structure

synchronising references

terminating after loading non-DSP root

user interface

Version

version information

writing a board interface

setbuf

SetClear

setjmp

setlocale

setvbuf

shared data

volatile

shortcut keys

signal

SignalMaster

device identification

simulating FPGA tasks

attached processors

stand-alone FPGA

stimulus block

sin

sinh

size_t

sizeof

slow loading

SM_DSP

Available Processor Types
Processor Types

SM_FPGA

Available Processor Types
Processor Types

SMT_FpgaBase

SMT_RomBase

SMT338-VP

restrictions

SMT362

firmware requirements

snprintf

software exception

Error Detection on Virtual Channels
Error Messages

special logic

sprintf

sqrt

SRAM

carrier board

srand

SRIO

SRIO links

sscanf

stack

combined with heap

estimating size of

minimum requirement of library function

not specifying heap size

separate from heap

too small

workspace

stand-alone

3L TA

application

IDE

not_standalone

task

Full & Stand-Alone Tasks
Building a Multi-Task Application

standard syntactic metalanguage

start menu

static

static_sema_init

stderr

page mode

pausing

server

stdin

providing input

server

stdout

page mode

pausing

server

strcat

strchr

strcmp

strcoll

strcpy

strcspn

strerror

strlen

strncat

strncmp

strncpy

strpbrk

strrchr

strspn

strstr

strtod

strtok

strtol

strtoul

strxfrm

Sundance Digital Bus

Link Types
SDB Links

Sundance TIMs

SMT_FpgaBase

support

symptoms of problems

application hangs or runs wild

application will not load or start

channel transfer fails

communication with host disrupted

compiler cannot be found

compiler cannot find header files

configurer refuses to build application

data corrupt in file

EDOM set in errno

end of file corrupt or absent

ERANGE set in errno

file position wrong

I/O behaves unexpectedly

link functions do not work

my application does not run

NULL returned when allocating memory

output does not appear or is corrupt

processor is not responding

processor is the wrong type

processor locks-up

relocation errors

server hangs or runs wild

thread cannot see changes to shared data

thread hangs

thread_new does not return

thread_new returns NULL

time function return wrong time

timer functions do not work

variable corrupt

variable corrupt
symptoms of problems

wrong version of software executed

system

system generator

adding the synchronous element

channels

configuration

driving pins

generating the task

required signals

synthesiz\ing the task

- T -

tan

tanh

task

Tasks
Ports & Channels

communication

connections between

data attribute

estimating stack size

FPGA

full

heap requirement

The Configuration File
The Configuration File

initial thread

linking

memory allocation

opt attribute

optimising memory allocation

optimising memory use

placement

The Configuration File
Assigning Tasks to Processors
The Configuration File

placing on processors

port

port specifiers

register conventions

relocatable

setting initial priority

stack requirement

The Configuration File
The Configuration File

stand-alone

Full & Stand-Alone Tasks
Building a Multi-Task Application

stopping

thread

thread_new

upc example

versus thread

task statement

file attribute

ins attribute

locating task image files

logical area attributes

opt attribute

optimising memory use

outs attribute

priority attribute

stack & heap sizes

urgent

urgent attribute

task_id

TCP/IP

examples

temp_bldx

matching to task

text file

thread

and channels

and semaphores

creation

default priority

independent of parent

par_sema

priority

standard I/O

synchronisation using semaphores

synchronising

synchronising using channels

termination

THREAD_HANDLE

thread_new

thread_stop

urgent

use of urgent

versus task

waiting to finish

thread_deschedule

Scheduling
thread...

THREAD_HANDLE

thread_launch

THREAD_MIN_STACK

thread_new

Creating Threads
thread...

THREAD_NOTURG

thread_priority

thread_set_priority

thread_set_urgent

thread_stop

Creating Threads
thread...

THREAD_URGENT

thread_wait

throughput

TI

Chip Support Library

time

time to load

TIMER 0

Reserved Hardware Resources
The Microkernel

timer_after

timer_delay

timer_now

timer_rate

timer_wait

timeslice

timing constraints

timing specification

for FPGA tasks

tmpfile

tmpnam

tolower

toupper

troubleshooting

- U -

UDP

examples

ungetc

UPR

UPR connectivity failure

Restrictions on Network Configuration
Restrictions on Physical Channels

upr statement

buffers attribute

max attribute

urgent

URGENT attribute

user-defined sections

- V -

va_arg

va_end

va_start

VCR

version information

configurer

server

vfprintf

VHDL

virtual channel

error detection

selecting

throughput

wire usage

volatile

vprintf

vsnprintf

vsprintf

- W -

wchar_t

wcstombs

wctomb

website

wire statement

connecting a link to itself

difference from connect statement

wires

automatic creation

multiple use by virtual channels

use for physical or virtual channels

word

workspace

stack

- X -

Xilinx ISE