Core kernel code:

Allow the stats formatting functions to be built in without stdio.h being included inside tasks.c.

Kernel port code:
- Slight change to the Cortex-A GIC-less port to move all non portable code to the application level.

SAMA5D4 demo project:
- Update the Atmel provided library to V1.1.
- Create a DDR build configuration.
- Ensure interrupts are all edge sensitive.
- Update the regtest code to use all 32 flop registers.
This commit is contained in:
Richard Barry 2014-10-15 21:01:31 +00:00
parent e3263bb9b3
commit ca22607d14
75 changed files with 12981 additions and 495 deletions

View file

@ -63,9 +63,6 @@
1 tab == 4 spaces!
*/
/* Standard includes. */
#include <stdlib.h>
/* IAR includes. */
#include <intrinsics.h>
@ -80,6 +77,14 @@
#endif
#endif /* configUSE_PORT_OPTIMISED_TASK_SELECTION */
#ifndef configSETUP_TICK_INTERRUPT
#error configSETUP_TICK_INTERRUPT() must be defined in FreeRTOSConfig.h to call the function that sets up the tick interrupt. A default that uses the PIT is provided in the official demo application.
#endif
#ifndef configCLEAR_TICK_INTERRUPT
#error configCLEAR_TICK_INTERRUPT must be defined in FreeRTOSConfig.h to clear which ever interrupt was used to generate the tick interrupt. A default that uses the PIT is provided in the official demo application.
#endif
/* A critical section is exited when the critical section nesting count reaches
this value. */
#define portNO_CRITICAL_NESTING ( ( uint32_t ) 0 )
@ -242,7 +247,6 @@ uint32_t ulAPSR;
{
/* Start the timer that generates the tick ISR. */
configSETUP_TICK_INTERRUPT();
__enable_irq();
vPortRestoreTaskContext();
}

View file

@ -132,26 +132,24 @@ FreeRTOS_IRQ_Handler
AND r2, r2, #4
SUB sp, sp, r2
; Obtain the address of the interrupt handler, then pass it into the ISR
; callback.
PUSH {r0-r3, lr}
LDR r1, =configINTERRUPT_VECTOR_ADDRESS
LDR r0, [r1]
LDR r1, =vApplicationIRQHandler
BLX r1
; Call the port part specific handler.
LDR r0, =vApplicationIRQHandler
BLX r0
POP {r0-r3, lr}
ADD sp, sp, r2
CPSID i
; Write to the EOI register
; Write to the EOI register.
LDR r4, =configEOI_ADDRESS
STR r0, [r4]
; Restore the old nesting count
STR r1, [r3]
; A context switch is never performed if the nesting count is not 0
; A context switch is never performed if the nesting count is not 0.
CMP r1, #0
BNE exit_without_switch
@ -198,7 +196,6 @@ switch_before_exit
; Restore the context of, and branch to, the task selected to execute next.
portRESTORE_CONTEXT
END

View file

@ -178,7 +178,7 @@ TIMECAPS xTimeCaps;
/* Just to prevent compiler warnings. */
( void ) lpParameter;
for(;;)
for( ;; )
{
/* Wait until the timer expires and we can access the simulated interrupt
variables. *NOTE* this is not a 'real time' way of generating tick