36#ifndef LIBBSP_ARM_SHARED_START_H
37#define LIBBSP_ARM_SHARED_START_H
57#define BSP_START_TEXT_SECTION __attribute__((section(".bsp_start_text")))
59#define BSP_START_DATA_SECTION __attribute__((section(".bsp_start_data")))
105BSP_START_TEXT_SECTION
static inline void bsp_start_copy_sections(
void)
109 (
int *) bsp_section_text_begin,
110 (
const int *) bsp_section_text_load_begin,
111 (
size_t) bsp_section_text_size
116 (
int *) bsp_section_rodata_begin,
117 (
const int *) bsp_section_rodata_load_begin,
118 (
size_t) bsp_section_rodata_size
123 (
int *) bsp_section_data_begin,
124 (
const int *) bsp_section_data_load_begin,
125 (
size_t) bsp_section_data_size
130 (
int *) bsp_section_fast_text_begin,
131 (
const int *) bsp_section_fast_text_load_begin,
132 (
size_t) bsp_section_fast_text_size
137 (
int *) bsp_section_fast_data_begin,
138 (
const int *) bsp_section_fast_data_load_begin,
139 (
size_t) bsp_section_fast_data_size
143BSP_START_TEXT_SECTION
static inline void
144bsp_start_memcpy_libc(
void *dest,
const void *src,
size_t n)
147 memcpy(dest, src, n);
158BSP_START_TEXT_SECTION
static inline void bsp_start_copy_sections_compact(
void)
161 bsp_start_memcpy_libc(
162 bsp_section_data_begin,
163 bsp_section_data_load_begin,
164 (
size_t) bsp_section_data_size
168 bsp_start_memcpy_libc(
169 bsp_section_fast_text_begin,
170 bsp_section_fast_text_load_begin,
171 (
size_t) bsp_section_fast_text_size
175 bsp_start_memcpy_libc(
176 bsp_section_fast_data_begin,
177 bsp_section_fast_data_load_begin,
178 (
size_t) bsp_section_fast_data_size
182BSP_START_TEXT_SECTION
static inline void bsp_start_clear_bss(
void)
184 memset(bsp_section_bss_begin, 0, (
size_t) bsp_section_bss_size);
void bsp_start_hook_1(void)
Start entry hook 1.
Definition: bspstarthooks.c:47
void _start(void)
System start entry.
void bsp_start_hook_0(void)
Start entry hook 0.
Definition: bspstarthooks.c:49
void bsp_start_memcpy_arm(int *dest, const int *src, size_t n)
ARM entry point to bsp_start_memcpy().
void bsp_start_memcpy(int *dest, const int *src, size_t n)
Similar to standard memcpy().
void bsp_start_hook_0_done(void)
Can be used by bsp_start_hook_0() to jump back to the start code instead of using the link register.
This header file provides interfaces to BSP-specific linker symbols and sections.