|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
CPU1 (Cortex-M33) ping-pong responder. More...
Go to the source code of this file.
Functions | |
| void | cpu1_reset_handler (void) |
| CPU1 reset handler. | |
| static void | internal_cpu1_main (void) |
| CPU1 application loop. | |
| static void | internal_fault_handler (void) |
| Default fault handler. | |
Variables | |
| uint32_t | g_ra8_ls_cpu1_stack_top |
| uint32_t | g_ra8_ls_cpu1_data_start |
| uint32_t | g_ra8_ls_cpu1_data_end |
| uint32_t | g_ra8_ls_cpu1_data_load |
| uint32_t | g_ra8_ls_cpu1_bss_start |
| uint32_t | g_ra8_ls_cpu1_bss_end |
| const uintptr_t | g_cpu1_vector_table [] |
CPU1 (Cortex-M33) ping-pong responder.
Built as a separate ELF (-mcpu=cortex-m33). Polls the shared SRAM struct at 0x22100000 for a ping_seq advance; on each new ping writes the pong payload and acks via pong_seq. No IPC peripheral is used – see shared_pingpong.h for the rationale.
Definition in file cpu1_main.c.
| void cpu1_reset_handler | ( | void | ) |
CPU1 reset handler.
Runs the minimal C-runtime init the M33 image needs before branching into internal_cpu1_main:
Without these passes the CPU1 image's globals (e.g. the s_ipc_channels array in ra8_ipc.c – .bss – and any initialised file-scope statics – .data) hold whatever pattern SRAM_CPU1 contained at boot. That was the reason CPU1 silently stayed wedged after Agent D embedded the CPU1 binary: the M33 jumped straight into internal_cpu1_main with uninitialised globals, so ra8_ipc_init / ra8_ipc_recv_message operated on garbage state structures and the channel pair never came alive.
Definition at line 99 of file cpu1_main.c.
References g_ra8_ls_cpu1_bss_end, g_ra8_ls_cpu1_bss_start, g_ra8_ls_cpu1_data_end, g_ra8_ls_cpu1_data_load, g_ra8_ls_cpu1_data_start, and internal_cpu1_main().
|
static |
CPU1 application loop.
See file header.
Definition at line 43 of file cpu1_main.c.
References internal_shared(), k_cpu1_pingpong_magic_ping, k_cpu1_pingpong_magic_pong, cpu1_pingpong_shared_t::ping_payload, cpu1_pingpong_shared_t::ping_seq, cpu1_pingpong_shared_t::pong_payload, cpu1_pingpong_shared_t::pong_seq, and RA8_INTERNAL.
|
static |
Default fault handler.
All M33 exception slots route here.
Definition at line 130 of file cpu1_main.c.
References RA8_INTERNAL.
| const uintptr_t g_cpu1_vector_table[] |
Definition at line 149 of file cpu1_main.c.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |