The Boot module supports boot initialization for the 28x devices.
A special boot init function is created based on the configuration
settings for this module. This function is hooked into the
xdc.runtime.Reset.fxns[] array and called very early at boot time (prior
to cinit processing).
The code to support the boot module is placed in a separate section
named
".text:.bootCodeSection" to allow placement of this section in
the linker .cmd file if necessary. This section is a subsection of the
".text" section so this code will be placed into the .text section unless
explicitly placed, either through
Program.sectMap or through a linker
command file.
metaonly enum Boot.Type |
|
PLL type
values of type Boot.Type
const Boot.Type_280x;
// 280x (PLL configuration not supported for this type)
const Boot.Type_281x;
// 281x (PLL configuration not supported for this type)
const Boot.Type_282xx_283xx;
// 282xx or 283xx
const Boot.Type_2802x_2803x_2806x;
// 2802x or 2803x or 2806x
const Boot.Type_2834x;
// 2834x
metaonly struct Boot.ModuleView |
|
var obj = new Boot.ModuleView;
obj.disableWatchdog = Bool ...
obj.configurePll = Bool ...
obj.pllcrDIV = UInt ...
obj.pllstsDIVSEL = UInt ...
metaonly config Boot.bootFromFlash // module-wide |
|
Boot from FLASH flag, default is false
Boot.bootFromFlash = Bool false;
DETAILS
Set to true to enable booting from FLASH. When set to true,
a long branch (LB) to the c_int00 entry point will be placed at
the BEGIN section address defined in the linker command file.
metaonly config Boot.configurePll // module-wide |
|
PLL configuration flag, default is false
Boot.configurePll = Bool false;
DETAILS
Set to true to configure the PLL.
metaonly config Boot.disableWatchdog // module-wide |
|
Watchdog disable flag, default is false
Boot.disableWatchdog = Bool false;
DETAILS
Set to true to disable the watchdog timer.
metaonly config Boot.enableEzdspXintfConfig // module-wide |
|
Configure the external memory interface (XINTF) for eZdsp283xx
boards
Boot.enableEzdspXintfConfig = Bool false;
DETAILS
This external memory interface configuration is applicable only for
eZdsp283xx boards; it should not be enabled for any other boards.
metaonly config Boot.limpAbortFunction // module-wide |
|
Function to be called when Limp mode is detected
Boot.limpAbortFunction = Fxn undefined;
DETAILS
This function is called when the Boot module is about to configure
the PLL, but finds the device operating in Limp mode (i.e., the mode
when a missing OSCCLK input has been detected).
If this function is not specified by the application, a default
function will be used, which does an ESTOP0 and then enters an
infinite loop.
metaonly config Boot.pllOSCCLK // module-wide |
|
OSCCLK input frequency to PLL, in MHz. Default is 10 MHz
Boot.pllOSCCLK = UInt 10;
DETAILS
This is the frequency of the oscillator clock (OSCCLK) input to the
PLL. On some devices (e.g., TMS320C28346) this will correspond to the
frequency of an external crystal or clock input. On others
(e.g., TMS320F28069) this will correspond to the frequency of an
internal oscillator which is the default OSCCLK coming out of reset.
metaonly config Boot.pllType // module-wide |
|
PLL type
DETAILS
The default will be determined by platform specification, or by the
device ID for the generic (tms320c28) platform.
metaonly config Boot.pllcrDIV // module-wide |
|
PLLCR[DIV] clocking ratio value. Default is 10
DETAILS
This is the actual value written to the DIV bits in
the PLL Control Register (PLLCR)
metaonly config Boot.pllstsDIVSEL // module-wide |
|
PLLSTS[DIVSEL] divide select value. Default is 2
Boot.pllstsDIVSEL = UInt 2;
DETAILS
This is the actual value written to the DIVSEL bits in
the PLL Status Register (PLLSTS).
This configuration parameter applies for all of the
enumerated PLL types, except for "Type_280x".
metaonly config Boot.rovViewInfo // module-wide |
|
metaonly Boot.getFrequency() // module-wide |
|
Gets the resulting output frequency (in Hz) given the PLL configuration
parameters
Boot.getFrequency() returns UInt32
metaonly Boot.registerFreqListener() // module-wide |
|
Register a module to be notified whenever the frequency changes
Boot.registerFreqListener(Any listener) returns Any
DETAILS
The registered module must have a function named 'fireFrequencyUpdate'
which takes the new frequency as an argument.