libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
vf6xx/vector_chipset.c
Go to the documentation of this file.
1
/*
2
* This file is part of the libopencm3 project.
3
*
4
* Copyright (C) 2014 Stefan Agner <stefan@agner.ch>
5
*
6
* This library is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU Lesser General Public License as published by
8
* the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public License
17
* along with this library. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#include <
libopencm3/cm3/scb.h
>
21
22
static
inline
void
pre_main
(
void
)
23
{
24
/*
25
* For Vybrid we need to set the stack pointer manually
26
* since the boot ROM has its own stack
27
*/
28
__asm__ ( \
29
"ldr sp,=_stack;"
\
30
);
31
32
/* Set Vector Table Offset to our memory based vector table */
33
SCB_VTOR
= (uint32_t)&
vector_table
;
34
35
/* Enable access to Floating-Point coprocessor. */
36
SCB_CPACR
|=
SCB_CPACR_FULL
* (
SCB_CPACR_CP10
|
SCB_CPACR_CP11
);
37
}
SCB_VTOR
#define SCB_VTOR
VTOR: Vector Table Offset Register.
Definition:
scb.h:49
SCB_CPACR
#define SCB_CPACR
CPACR: Coprocessor Access Control Register.
Definition:
scb.h:134
SCB_CPACR_CP10
#define SCB_CPACR_CP10
Definition:
scb.h:530
SCB_CPACR_FULL
#define SCB_CPACR_FULL
Definition:
scb.h:527
SCB_CPACR_CP11
#define SCB_CPACR_CP11
Definition:
scb.h:532
scb.h
vector_table
vector_table_t vector_table
Definition:
vector.c:40
pre_main
static void pre_main(void)
Definition:
vf6xx/vector_chipset.c:22
lib
vf6xx
vector_chipset.c
Generated on Tue Mar 7 2023 16:13:10 for libopencm3 by
1.9.4