|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
CPU0 (Cortex-M85) launcher for the HAL-based M33 blink. More...
#include <stdint.h>#include "ra8_boot_entry.h"#include "ra8_cgc.h"#include "ra8_dual_core.h"#include "ra8_err.h"#include "ra8_log.h"Go to the source code of this file.
Functions | |
| static void | park_forever (void) |
| Park the M85 forever after an unrecoverable startup failure. | |
| static void | idle_forever (void) |
| Idle the M85 forever once the M33 owns the work (low-power posture). | |
| void | main (void) |
| CPU0 (Cortex-M85) application entry. | |
Variables | |
| uint32_t | g_ra8_ls_cpu1_mram_start |
| Base of the embedded M33 image / its vector table (MRAM_CPU1). | |
| uint32_t | g_ra8_ls_cpu1_stack_top |
| Initial stack pointer handed to the M33 at release. | |
CPU0 (Cortex-M85) launcher for the HAL-based M33 blink.
The primary-core launcher for blink_m33_hal, the HAL-based twin of the raw blink_m33 template. The M85 does the minimum – bring up logging and the clock tree, release the secondary Cortex-M33 with ra8_cpu1_release (HUM Ch 2.9.1 "CPU control registers"), then idle in WFI – and the M33 owns the work. Here that work is blinking LED1 through the CPU1-safe HAL primitive ra8_pcntr_set_output() (issue #580) rather than a raw PCNTR poke.
This is hw_pending: the raw blink_m33 is the HIL-validated reference; this HAL variant is behaviourally identical (same LED1 blink, same PCNTR1 effect) but this exact ELF has not had its own bench run, so it is not promoted.
Definition in file main.c.
|
static |
Idle the M85 forever once the M33 owns the work (low-power posture).
After releasing the M33 the M85 has nothing to do, so it sleeps in a WFI loop – the heavy core asleep while the lean M33 runs is the low-power co-processor posture this template demonstrates.
Definition at line 86 of file main.c.
Referenced by main().
| void main | ( | void | ) |
CPU0 (Cortex-M85) application entry.
The application entry point Reset_Handler hands control to.
Brings up logging and the clock tree, releases the Cortex-M33 (which then blinks LED1 via ra8_pcntr_set_output()), and idles. See the file header.
Definition at line 107 of file main.c.
References g_ra8_ls_cpu1_mram_start, g_ra8_ls_cpu1_stack_top, idle_forever(), k_ra8_ok, park_forever(), ra8_cgc_init(), ra8_cpu1_release(), ra8_log_info, ra8_log_info_val, and ra8_log_init().
|
static |
Park the M85 forever after an unrecoverable startup failure.
Reached only if ra8_cpu1_release fails, so the M33 never started. The core spins with the failure already logged.
Definition at line 60 of file main.c.
Referenced by main().
|
extern |
Base of the embedded M33 image / its vector table (MRAM_CPU1).
|
extern |
Initial stack pointer handed to the M33 at release.