C-Boot ROM Description
572
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
–
Contents: 32-bit coefficients for calculating exp (X) using a Taylor series
Example 6-1. Linker Command File to Access FPU Tables
MEMORY
{
PAGE 0 :
...
FPUTABLES
: origin = 0x3FD860, length = 0x0006A0
...
}
SECTIONS
{
...
FPUmathTables :
> FPUTABLES, PAGE = 0, TYPE = NOLOAD,
...
}
The fixed-point math tables included in the boot ROM are used by the Texas Instruments™
C28x™ IQMath
Library - A Virtual Floating Point Engine
(
). The 28x IQmath Library is a collection of highly optimized
and high precision mathematical functions for C/C++ programmers to seamlessly port a floating-point
algorithm into fixed-point code on TMS320C28x devices.
These routines are typically used in computational-intensive real-time applications where optimal execution
speed and high accuracy is critical. By using these routines, you can achieve execution speeds that are
considerably faster than equivalent code written in standard ANSI C language. In addition, by providing ready-
to-use high precision functions, the TI IQmath Library can shorten significantly your DSP application
development time.
The IQmath library accesses the tables through the IQmathTables and the IQmathTablesRam linker sections.
The IQmathTables section is completely included in the boot ROM. From the IQmathTablesRam section, only
the IQexp table is included and the remainder must be loaded into the device if used. If you do not wish to
load a copy of these tables already included in the ROM into the device, use the boot ROM memory
addresses and label the sections as “NOLOAD” as shown in
. This facilitates referencing the look-
up tables without actually loading the section to the target. Refer to the IQMath Library documentation for
more information.
Example 6-2. Linker Command File to Access IQ Tables
MEMORY
{
PAGE 0 :
...
IQTABLES
(R)
: origin = 0x3FDF00, length = 0x000B50
IQTABLES2 (R)
: origin = 0x3FEA50, length = 0x00008C
IQTABLES3 (R)
: origin = 0x3FEADC, length = 0x0000AA
...
}
SECTIONS
{
...
IQmathTables :
load = IQTABLES, type = NOLOAD, PAGE = 0
IQmathTables2 > IQTABLES2, type = NOLOAD, PAGE = 0
{
IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)
}
IQmathTables3 : load = IQTABLES3, PAGE = 0
{
IQNasinTable.obj (IQmathTablesRam)
}
IQmathTablesRam : load = DRAML1, PAGE = 1