source: rtems/cpukit/score/cpu/arm/armv7m-initialize.c @ d0630763

4.115
Last change on this file since d0630763 was c5ed148, checked in by Sebastian Huber <sebastian.huber@…>, on 09/24/11 at 12:56:51

2011-09-24 Sebastian Huber <sebastian.huber@…>

  • rtems/score/armv7m.h, armv7m-context-initialize.c, armv7m-context-restore.c, armv7m-context-switch.c, armv7m-exception-handler-get.c, armv7m-exception-handler-set.c, armv7m-exception-priority-get.c, armv7m-exception-priority-set.c, armv7m-initialize.c, armv7m-isr-dispatch.c, armv7m-isr-enter-leave.c, armv7m-isr-level-get.c, armv7m-isr-level-set.c, armv7m-isr-vector-install.c, armv7m-multitasking-start-stop.c: New files.
  • Makefile.am, preinstall.am: Reflect changes above.
  • rtems/score/arm.h: Define ARM_MULTILIB_ARCH_V4 and ARM_MULTILIB_ARCH_V7M.
  • rtems/score/cpu.h, cpu_asm.S, cpu.c, arm_exc_abort.S, arm_exc_handler_high.c, arm_exc_handler_low.S, arm_exc_interrupt.S: Define CPU_HAS_HARDWARE_INTERRUPT_STACK to FALSE. Use ARM_MULTILIB_ARCH_V4 and ARM_MULTILIB_ARCH_V7M.
  • Property mode set to 100644
File size: 1.2 KB
Line 
1/*
2 * Copyright (c) 2011 Sebastian Huber.  All rights reserved.
3 *
4 *  embedded brains GmbH
5 *  Obere Lagerstr. 30
6 *  82178 Puchheim
7 *  Germany
8 *  <rtems@embedded-brains.de>
9 *
10 * The license and distribution terms for this file may be
11 * found in the file LICENSE in this distribution or at
12 * http://www.rtems.com/license/LICENSE.
13 */
14
15#ifdef HAVE_CONFIG_H
16  #include "config.h"
17#endif
18
19#include <rtems/score/cpu.h>
20
21#ifdef ARM_MULTILIB_ARCH_V7M
22
23#include <rtems/score/armv7m.h>
24
25void _CPU_Initialize( void )
26{
27  /*
28   * The exception handler used to carry out the thead dispatching must have
29   * the lowest priority possible.  No other exception handlers must have this
30   * priority if they use services that may lead to a thread dispatch.  See
31   * also "ARMv7-M Architecture Reference Manual, Issue D" section B1.5.4
32   * "Exception priorities and preemption".
33   */
34  _ARMV7M_Set_exception_priority( ARMV7M_VECTOR_SVC, 0xff );
35  _ARMV7M_Set_exception_priority( ARMV7M_VECTOR_PENDSV, 0xff );
36  _ARMV7M_Set_exception_handler(
37    ARMV7M_VECTOR_SVC,
38    _ARMV7M_Supervisor_call
39  );
40  _ARMV7M_Set_exception_handler(
41    ARMV7M_VECTOR_PENDSV,
42    _ARMV7M_Pendable_service_call
43  );
44}
45
46#endif /* ARM_MULTILIB_ARCH_V7M */
Note: See TracBrowser for help on using the repository browser.