Cortex-M7 (low-power core)
The Cortex-M7 core is the auxiliary core on the PicoCoreMX8MP used for low-power operations, i.e. whenever the satellite is not above a desired observation site. It is responsible for communicating with a GNSS module to acquire accurate time and position measurements, and it hosts a csp_proc
server, which facilitates small libparam-native programmable procedures that can be sent to the M7 for execution. Furthermore, the CSP node that represents this core contains the wake_a53
param, which triggers a callback to wake the Cortex-A53 cores from low-power mode.
Parameters (libparam
)
The following libparam
parameters are exposed on the CSP node representing the M7 core:
Parameter Name |
Type |
Description |
---|---|---|
Application parameters |
||
wake_a53 |
uint8 |
Send wake signal to A53 peer core |
a53_status |
uint8 |
A53 peer core status |
tmu_reading |
uint16 |
TMU temperature reading |
gnss_lat |
float |
GNSS latitude |
gnss_lon |
float |
GNSS longitude |
gnss_age |
uint32 |
GNSS fix age |
gnss_date |
uint32 |
GNSS date |
gnss_time |
uint32 |
GNSS time |
gnss_speed |
float |
GNSS speed |
gnss_alt |
float |
GNSS altitude |
gnss_course |
float |
GNSS course |
General purpose parameters |
||
p_uint8 |
uint8 |
uint8 array (32) |
p_uint16 |
uint16 |
uint16 array (32) |
p_uint32 |
uint32 |
uint32 array (32) |
p_uint64 |
uint64 |
uint64 array (32) |
p_int8 |
int8 |
int8 array (32) |
p_int16 |
int16 |
int16 array (32) |
p_int32 |
int32 |
int32 array (32) |
p_int64 |
int64 |
int64 array (32) |
p_float |
float |
float array (32) |
p_double |
double |
double array (16) |
System registers |
||
GPC__SLPCR |
uint32 |
System low power control register |
GPC__LPCR_A53_BSC |
uint32 |
Basic Low power control register of A53 platform |
GPC__LPCR_A53_AD |
uint32 |
Advanced Low power control register of A53 platform |
GPC__LPCR_M7 |
uint32 |
Low power control register of M7 CPU |
GPC__MLPCR |
uint32 |
Memory low power control register |
GPC_PGC__A53SCU_PUPSCR |
uint32 |
GPC PGC Up Sequence Control Register |
GPIO1__DR |
uint32 |
GPIO1 data register |
GPIO1__GDIR |
uint32 |
GPIO1 direction register (input/output) |
GPIO2__DR |
uint32 |
GPIO2 data register |
GPIO2__GDIR |
uint32 |
GPIO2 direction register (input/output) |
GPIO3__GDIR |
uint32 |
GPIO3 direction register (input/output) |
GPIO4__GDIR |
uint32 |
GPIO4 direction register (input/output) |
GPIO5__GDIR |
uint32 |
GPIO5 direction register (input/output) |
MUB__SR |
uint32 |
MU Status register |
RDC__STAT |
uint32 |
RDC Status register |
TMU__TSCR |
uint32 |
Sensor Calibration register |
TMU__TRITSR |
uint32 |
Immediate Temperature Site register n |
TMU__TRATSR |
uint32 |
Average Temperature Site register n |
Application components
A visual representation of the components in the application running on the M7 core is shown in the 2 treemaps below. The ITCM is the memory that is used by the M7 core to store instructions, and the DTCM is the memory that is used to store data. Both are limited to 128 KB.