const Power_L2RAM |
|
Physical address of L2 RAM
#define Power_L2RAM (Ptr)0x55020000
typedef Power_SuspendFuncHookPtr |
|
Suspend function hook
typedef Void (*Power_SuspendFuncHookPtr)();
struct Power_SuspendArgs |
|
Suspend arguments structure
typedef struct Power_SuspendArgs {
Bool pmMasterCore;
// Master core for suspend/resume?
Bool rendezvousResume;
// Rendezvous before resume?
Int dmaChannel;
// SDMA channel for L2 RAM save; -1=CPU copy
UInt intMask31_0;
// Mask of interrupts (31-0) able to wake WFI
UInt intMask63_32;
// Mask of interrupts (63-32) able to wake WFI
UInt intMask79_64;
// Mask of interrupts (79-64) able to wake WFI
} Power_SuspendArgs;
config Power_idle // module-wide |
|
Idle the CPUs when threads blocked waiting for interrupts?
extern const Bool Power_idle;
config Power_postSuspendHooks // module-wide |
|
Post-suspend function hooks. Called on Core 0 (only), after context
restore, immediately before returning from suspend
DETAILS
To configure a function to run as Post suspend hook, add a statement
like the following to the application configuration script:
Power.postSuspendHooks.$add("&myHook");
Multiple hook functions can be added following this same pattern.
config Power_preSuspendHooks // module-wide |
|
Pre-suspend function hooks. Called on Core 0 (only), before beginning
context save
DETAILS
To configure a function to run as Pre suspend hook, add a statement
like the following to the application configuration script:
Power.preSuspendHooks.$add("&myHook");
Multiple hook functions can be added following this same pattern.
config Power_sdmaRegs // module-wide |
|
Base address of SDMA registers
extern const Ptr Power_sdmaRegs;
Power_idleCPU() // module-wide |
|
Function used to automatically idle the CPU in the Idle loop
DETAILS
When the 'idle' configuration parameter is set, this function will
be added to the list of Idle loop functions. When called from the
Idle loop, it will invoke the wait for interrupt (WFI) instruction,
to idle the CPU until the next interrupt occurs.
Power_suspend() // module-wide |
|
Function used for suspend/resume of the M3 cores
DETAILS
Precondition and usage constraints:
1) Before this function is called the application must disable all
interrupts that are not desired to wake the CPU from WFI while
waiting for the core domain to go off.
2) For those interrupts that are desired to wake the CPU from WFI (for
example, the mailbox interrupt), these interrupts cannot be generated
until the Power_suspend API has reached the point of executing WFI.
If the interrupts happen early, while this API is saving context,
the resulting context may be stale, and the application may not
resume correctly. Two global flags (one for each M3 core) are
assert immediately before invoking WFI; the wakeup interrupts
should not be asserted until these flags are asserted (non-zero):
ti_sysbios_family_arm_ducati_smp_readyIdleCore0
ti_sysbios_family_arm_ducati_smp_readyIdleCore1
Module-Wide Built-Ins |
|
// Get this module's unique id
Bool Power_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool Power_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Power_Module_getMask();
// Returns the diagnostics mask for this module
Void Power_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
const Power.L2RAM |
|
Physical address of L2 RAM
const Power.L2RAM = 0x55020000;
C SYNOPSIS
struct Power.SuspendArgs |
|
Suspend arguments structure
var obj = new Power.SuspendArgs;
obj.pmMasterCore = Bool ...
// Master core for suspend/resume?
obj.rendezvousResume = Bool ...
// Rendezvous before resume?
obj.dmaChannel = Int ...
// SDMA channel for L2 RAM save; -1=CPU copy
obj.intMask31_0 = UInt ...
// Mask of interrupts (31-0) able to wake WFI
obj.intMask63_32 = UInt ...
// Mask of interrupts (63-32) able to wake WFI
obj.intMask79_64 = UInt ...
// Mask of interrupts (79-64) able to wake WFI
C SYNOPSIS
config Power.idle // module-wide |
|
Idle the CPUs when threads blocked waiting for interrupts?
C SYNOPSIS
config Power.postSuspendHooks // module-wide |
|
Post-suspend function hooks. Called on Core 0 (only), after context
restore, immediately before returning from suspend
DETAILS
To configure a function to run as Post suspend hook, add a statement
like the following to the application configuration script:
Power.postSuspendHooks.$add("&myHook");
Multiple hook functions can be added following this same pattern.
C SYNOPSIS
config Power.preSuspendHooks // module-wide |
|
Pre-suspend function hooks. Called on Core 0 (only), before beginning
context save
DETAILS
To configure a function to run as Pre suspend hook, add a statement
like the following to the application configuration script:
Power.preSuspendHooks.$add("&myHook");
Multiple hook functions can be added following this same pattern.
C SYNOPSIS
config Power.sdmaRegs // module-wide |
|
Base address of SDMA registers
Power.sdmaRegs = Ptr 0x4A056000;
C SYNOPSIS
metaonly config Power.common$ // module-wide |
|
Common module configuration parameters
DETAILS
All modules have this configuration parameter. Its name
contains the '$' character to ensure it does not conflict with
configuration parameters declared by the module. This allows
new configuration parameters to be added in the future without
any chance of breaking existing modules.
metaonly config Power.loadSegment // module-wide |
|
Segment to load Power's shared reset code and data
Power.loadSegment = String "EXT_RAM";