module ti.sysbios.family.arm.v7r.tms570.Core |
|
|
Core Identification Module
The Core module is used to define which core within a dual core
"R5" subsystem an application is being built for.
[
more ... ]
#include <ti/sysbios/family/arm/v7r/tms570/Core.h>
Functions common to all ICore modules |
UInt | |
macro UInt | |
Void | |
Functions common to all target modules |
|
|
Typedefs |
typedef Void | |
Constants |
| |
extern const UInt | |
extern const UInt | |
DETAILS
The Core module is used to define which core within a dual core
"R5" subsystem an application is being built for.
At runtime, a comparison is made between the configured Core.id
and the value of MPIDR (bits 7:0). If they do not agree, an Error
is raised.
Core 0's vector table is placed at 0x100 and Core 1's vector table
is placed at 0x20000.
BOOTUP SEQUENCE
When each Cortex-R core comes out of reset, it initializes the
stack pointer and calls the reset callback function
(see
resetFunc) and then continues executing the
bootup sequence.
On a lockstep device, the bootup sequence involves calling
_c_int00() while on dual-core devices, the bootup sequence
involves setting up IPC between the 2 Cortex-R cores to
synchronize their startup.
The reset callback function is called very early in the
bootup sequence and can be used to detect the reset source and
take the appropriate action. Here's an example showing how to
register a reset callback function:
var Core = xdc.useModule('ti.sysbios.family.arm.v7r.tms570.Core');
Core.resetFunc = '&myfunc';
typedef Core_ResetFuncPtr |
|
Reset function type definition
typedef Void (*Core_ResetFuncPtr)(Void);
config Core_E_mismatchedIds // module-wide |
|
Error raised if Core.id does not match the contents
of MPIDR [7:0] register
extern const Error_Id Core_E_mismatchedIds;
config Core_id // module-wide |
|
R5 Core ID, default is Core 0
extern const UInt Core_id;
DETAILS
Used for making static decisions based on Core ID
config Core_numCores // module-wide |
|
number of Cores in SMP environment
extern const UInt Core_numCores;
Core_getId() // module-wide |
|
return the current core id
Core_hwiEnable() // module-wide |
|
Locally enable interrupts
macro UInt Core_hwiEnable();
RETURNS
opaque key for use by Hwi_restore() or Core_hwiRestore()
DETAILS
Core_hwiEnable locally enables hardware interrupts on the current Core
and returns an opaque key indicating whether interrupts were enabled or
disabled on entry to Core_hwiEnable().
The actual value of the key is target/device specific and is meant
to be passed to Hwi_restore() or Core_hwiRestore().
Core_interruptCore() // module-wide |
|
Cause an interrupt on a particular core
Void Core_interruptCore(UInt coreId);
Module-Wide Built-Ins |
|
// Get this module's unique id
Bool Core_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool Core_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 Core_Module_getMask();
// Returns the diagnostics mask for this module
Void Core_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
var Core = xdc.useModule('ti.sysbios.family.arm.v7r.tms570.Core');
module-wide config parameters
msg: "E_mismatchedIds: Core_Id: %d does not match hardware core Id: %d"
};
generated on Thu, 25 May 2017 22:09:56 GMT