forked from Imagelibrary/rtems
Merge branch 'master' of ssh://dispatch.rtems.org/data/git/rtems
This commit is contained in:
@@ -36,7 +36,7 @@ ramdisk *ramdisk_allocate(
|
|||||||
bool trace
|
bool trace
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
struct ramdisk *rd = malloc(sizeof(struct ramdisk));
|
struct ramdisk *rd = calloc(1, sizeof(*rd));
|
||||||
|
|
||||||
if (rd == NULL) {
|
if (rd == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2011 Sebastian Huber. All rights reserved.
|
* Copyright (c) 2011, 2016 Sebastian Huber. All rights reserved.
|
||||||
*
|
*
|
||||||
* embedded brains GmbH
|
* embedded brains GmbH
|
||||||
* Obere Lagerstr. 30
|
* Dornierstr. 4
|
||||||
* 82178 Puchheim
|
* 82178 Puchheim
|
||||||
* Germany
|
* Germany
|
||||||
* <rtems@embedded-brains.de>
|
* <rtems@embedded-brains.de>
|
||||||
@@ -23,6 +23,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <rtems/score/armv7m.h>
|
#include <rtems/score/armv7m.h>
|
||||||
|
#include <rtems/rtems/cache.h>
|
||||||
|
|
||||||
#ifdef ARM_MULTILIB_ARCH_V7M
|
#ifdef ARM_MULTILIB_ARCH_V7M
|
||||||
|
|
||||||
@@ -33,6 +34,14 @@ void _ARMV7M_Set_exception_handler(
|
|||||||
{
|
{
|
||||||
if ( _ARMV7M_SCB->vtor [index] != handler ) {
|
if ( _ARMV7M_SCB->vtor [index] != handler ) {
|
||||||
_ARMV7M_SCB->vtor [index] = handler;
|
_ARMV7M_SCB->vtor [index] = handler;
|
||||||
|
rtems_cache_flush_multiple_data_lines(
|
||||||
|
&_ARMV7M_SCB->vtor [index],
|
||||||
|
sizeof(_ARMV7M_SCB->vtor [index])
|
||||||
|
);
|
||||||
|
rtems_cache_invalidate_multiple_instruction_lines(
|
||||||
|
&_ARMV7M_SCB->vtor [index],
|
||||||
|
sizeof(_ARMV7M_SCB->vtor [index])
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
/**@{**/
|
/**@{**/
|
||||||
|
|
||||||
#if defined(__ARM_ARCH_7M__)
|
#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
|
||||||
#define CPU_MODEL_NAME "ARMv7M"
|
#define CPU_MODEL_NAME "ARMv7M"
|
||||||
#define ARM_MULTILIB_ARCH_V7M
|
#define ARM_MULTILIB_ARCH_V7M
|
||||||
#elif defined(__ARM_ARCH_6M__)
|
#elif defined(__ARM_ARCH_6M__)
|
||||||
|
|||||||
@@ -73,6 +73,9 @@ with hard-float ABI VFP-D16 support
|
|||||||
integer division (SDIV/UDIV)
|
integer division (SDIV/UDIV)
|
||||||
@item @code{thumb/armv7-m/fpv4-sp-d16}: ARMv7-M, Thumb-2 instruction set with
|
@item @code{thumb/armv7-m/fpv4-sp-d16}: ARMv7-M, Thumb-2 instruction set with
|
||||||
hardware integer division (SDIV/UDIV) and hard-float ABI FPv4-SP support
|
hardware integer division (SDIV/UDIV) and hard-float ABI FPv4-SP support
|
||||||
|
@item @code{thumb/cortex-m7/fpv5-d16}: ARMv7M, Thumb-2 instruction set
|
||||||
|
optimized for Cortex-M7 with hard-float ABI VFP-D16 support and support for the
|
||||||
|
64-bit floating point unit
|
||||||
@item @code{eb/thumb/armv7-r}: ARMv7-R, Big-endian Thumb-2 instruction set
|
@item @code{eb/thumb/armv7-r}: ARMv7-R, Big-endian Thumb-2 instruction set
|
||||||
@item @code{eb/thumb/armv7-r/vfpv3-d16/hard}: ARMv7-R, Big-endian Thumb-2
|
@item @code{eb/thumb/armv7-r/vfpv3-d16/hard}: ARMv7-R, Big-endian Thumb-2
|
||||||
instruction set with hard-float ABI VFP-D16 support
|
instruction set with hard-float ABI VFP-D16 support
|
||||||
@@ -82,15 +85,17 @@ Multilib 1. and 2. support the standard ARM7TDMI and ARM926EJ-S targets.
|
|||||||
|
|
||||||
Multilib 3. supports the Cortex-M0 and Cortex-M1 cores.
|
Multilib 3. supports the Cortex-M0 and Cortex-M1 cores.
|
||||||
|
|
||||||
Multilib 8. supports the Cortex-M3 and Cortex-M4 cores, which have a special
|
Multilib 8. supports the Cortex-M3, Cortex-M4 and Cortex-M7 cores, which have a
|
||||||
hardware integer division instruction (this is not present in the A and R
|
special hardware integer division instruction (this is not present in the A and
|
||||||
profiles).
|
R profiles).
|
||||||
|
|
||||||
Multilib 9. supports the Cortex-M4 cores with a floating point unit.
|
Multilib 9. supports the Cortex-M4 cores with a floating point unit.
|
||||||
|
|
||||||
|
Multilib 10. supports the Cortex-M7 core with a floating point unit.
|
||||||
|
|
||||||
Multilib 4. and 5. support the Cortex-A processors.
|
Multilib 4. and 5. support the Cortex-A processors.
|
||||||
|
|
||||||
Multilib 6., 7., 10. and 11. support the Cortex-R processors. Here also
|
Multilib 6., 7., 11. and 12. support the Cortex-R processors. Here also
|
||||||
big-endian variants are available.
|
big-endian variants are available.
|
||||||
|
|
||||||
Use for example the following GCC options
|
Use for example the following GCC options
|
||||||
|
|||||||
@@ -467,6 +467,10 @@ static void test_interrupt_body(void)
|
|||||||
*/
|
*/
|
||||||
puts( "interrupt is in progress (use body)" );
|
puts( "interrupt is in progress (use body)" );
|
||||||
in_isr = rtems_interrupt_is_in_progress();
|
in_isr = rtems_interrupt_is_in_progress();
|
||||||
|
|
||||||
|
puts( "interrupt enable (use body)" );
|
||||||
|
rtems_interrupt_enable( level );
|
||||||
|
|
||||||
if ( in_isr ) {
|
if ( in_isr ) {
|
||||||
puts( "interrupt reported to be is in progress (body)" );
|
puts( "interrupt reported to be is in progress (body)" );
|
||||||
rtems_test_exit( 0 );
|
rtems_test_exit( 0 );
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*** TEST 37 ***
|
*** BEGIN OF TEST SP 37 ***
|
||||||
clock_tick from task level
|
clock_tick from task level
|
||||||
Blocking task... suspending self
|
Blocking task... suspending self
|
||||||
clock_tick from task level with preempt -- OK
|
clock_tick from task level with preempt -- OK
|
||||||
@@ -6,15 +6,16 @@ interrupt is in progress (use body)
|
|||||||
interrupt disable (use inline)
|
interrupt disable (use inline)
|
||||||
interrupt flash (use inline)
|
interrupt flash (use inline)
|
||||||
interrupt enable (use inline)
|
interrupt enable (use inline)
|
||||||
interrupt level attribute (use inline)
|
interrupt level mode (use inline)
|
||||||
test case working..
|
test case working..
|
||||||
interrupt is in progress (use body)
|
|
||||||
interrupt disable (use body)
|
interrupt disable (use body)
|
||||||
interrupt disable (use body)
|
interrupt disable (use body)
|
||||||
interrupt flash (use body)
|
interrupt flash (use body)
|
||||||
interrupt enable (use body)
|
interrupt enable (use body)
|
||||||
interrupt level attribute (use body)
|
interrupt level mode (use body)
|
||||||
test seems to work
|
test seems to work
|
||||||
|
interrupt is in progress (use body)
|
||||||
|
interrupt enable (use body)
|
||||||
isr_in_progress(inline) from ISR -- OK
|
isr_in_progress(inline) from ISR -- OK
|
||||||
isr_in_progress(body) from ISR -- OK
|
isr_in_progress(body) from ISR -- OK
|
||||||
*** END OF TEST 37 ***
|
*** END OF TEST SP 37 ***
|
||||||
|
|||||||
Reference in New Issue
Block a user