From c3d609a518812074a0666b051e446ef212f3db6d Mon Sep 17 00:00:00 2001 From: rtel Date: Fri, 4 May 2018 15:06:50 +0000 Subject: [PATCH] Previously the MPSoC Cortex-A53 demo was updated to the latest Xilinx SDK tools to the point where it was building, but not tested. This check in modifies the project files slightly following testing. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2539 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- .../RTOSDemo_A53/.cproject | 154 ++++------- .../RTOSDemo_A53/.project | 249 +++++++----------- .../RTOSDemo_A53/src/FreeRTOS_asm_vectors.S | 75 +++++- .../RTOSDemo_A53/src/lscript.ld | 84 +++--- .../RTOSDemo_A53/src/main.c | 25 ++ .../RTOSDemo_A53/src/platform.c | 6 + .../RTOSDemo_A53_bsp/.cproject | 4 +- .../RTOSDemo_A53_bsp/Makefile | 4 +- .../RTOSDemo_A53_bsp/system.mss | 1 + .../ZynqMP_ZCU102_hw_platform/.project | 8 +- 10 files changed, 285 insertions(+), 325 deletions(-) diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/.cproject b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/.cproject index 1842ba9b8..d6e270d13 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/.cproject +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/.cproject @@ -1,8 +1,8 @@ - - + + @@ -14,134 +14,74 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -149,20 +89,20 @@ - + - + - + - + - + diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/.project b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/.project index d2866c629..0aaabce4a 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/.project +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/.project @@ -1,7 +1,7 @@ RTOSDemo_A53 - Created by SDK v2016.1. RTOSDemo_A53_bsp - psu_cortexa53_0 + Created by SDK v2018.1. RTOSDemo_A53_bsp - psu_cortexa53_0 RTOSDemo_A53_bsp @@ -27,31 +27,102 @@ src/FreeRTOS_Source 2 - FREERTOS_ROOT/FreeRTOS/Source + FREERTOS_ROOT/Source src/Full_Demo/Standard_Demo_Tasks 2 - FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal + virtual:/virtual + + + src/FreeRTOS_Source/portable/MemMang + 2 + FREERTOS_ROOT/Source/portable/MemMang + + + src/Full_Demo/Standard_Demo_Tasks/AbortDelay.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/AbortDelay.c + + + src/Full_Demo/Standard_Demo_Tasks/EventGroupsDemo.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/EventGroupsDemo.c + + + src/Full_Demo/Standard_Demo_Tasks/GenQTest.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/GenQTest.c + + + src/Full_Demo/Standard_Demo_Tasks/IntQueue.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/IntQueue.c + + + src/Full_Demo/Standard_Demo_Tasks/IntSemTest.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/IntSemTest.c + + + src/Full_Demo/Standard_Demo_Tasks/QueueOverwrite.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/QueueOverwrite.c + + + src/Full_Demo/Standard_Demo_Tasks/StaticAllocation.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/StaticAllocation.c + + + src/Full_Demo/Standard_Demo_Tasks/TaskNotify.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/TaskNotify.c + + + src/Full_Demo/Standard_Demo_Tasks/TimerDemo.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/TimerDemo.c + + + src/Full_Demo/Standard_Demo_Tasks/blocktim.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/blocktim.c + + + src/Full_Demo/Standard_Demo_Tasks/countsem.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/countsem.c + + + src/Full_Demo/Standard_Demo_Tasks/dynamic.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/dynamic.c + + + src/Full_Demo/Standard_Demo_Tasks/flop.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/flop.c src/Full_Demo/Standard_Demo_Tasks/include 2 - FREERTOS_ROOT/FreeRTOS/Demo/Common/include + FREERTOS_ROOT/Demo/Common/include + + + src/Full_Demo/Standard_Demo_Tasks/recmutex.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/recmutex.c + + + src/Full_Demo/Standard_Demo_Tasks/semtest.c + 1 + PARENT-2-PROJECT_LOC/Common/Minimal/semtest.c - 1461847194341 - src/FreeRTOS_Source - 6 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-croutine.c - - - - 1461847221751 + 1525371948640 src/FreeRTOS_Source/portable 9 @@ -60,151 +131,7 @@ - 1461847221761 - src/FreeRTOS_Source/portable - 9 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-MemMang - - - - 1462537732456 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-IntQueue.c - - - - 1462537732456 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-dynamic.c - - - - 1462537732466 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-blocktim.c - - - - 1462537732466 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-countsem.c - - - - 1462537732476 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-GenQTest.c - - - - 1462537732486 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-recmutex.c - - - - 1462537732486 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-semtest.c - - - - 1462537732496 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-flop.c - - - - 1462537732506 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-EventGroupsDemo.c - - - - 1462537732506 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-TaskNotify.c - - - - 1462537732516 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-IntSemTest.c - - - - 1462537732516 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-StaticAllocation.c - - - - 1462537732526 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-AbortDelay.c - - - - 1462537732536 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-QueueOverwrite.c - - - - 1462537732546 - src/Full_Demo/Standard_Demo_Tasks - 5 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-TimerDemo.c - - - - 1461847264041 + 1525371973682 src/FreeRTOS_Source/portable/GCC 9 @@ -213,7 +140,7 @@ - 1461847244679 + 1525374723054 src/FreeRTOS_Source/portable/MemMang 5 @@ -225,7 +152,7 @@ FREERTOS_ROOT - $%7BPARENT-4-PROJECT_LOC%7D + $%7BPARENT-3-PROJECT_LOC%7D diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOS_asm_vectors.S b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOS_asm_vectors.S index 0e5b7a637..597614937 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOS_asm_vectors.S +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/FreeRTOS_asm_vectors.S @@ -53,21 +53,85 @@ +.org 0 +.text + +.globl _boot +.globl _vector_table .globl _freertos_vector_table + .globl FIQInterrupt .globl IRQInterrupt .globl SErrorInterrupt .globl SynchronousInterrupt +.org 0 + +.section .vectors, "a" + +_vector_table: + +.set VBAR, _vector_table + +.org VBAR + b _boot + +.org (VBAR + 0x80) + b . + +.org (VBAR + 0x100) + b . + +.org (VBAR + 0x180) + b . + + +.org (VBAR + 0x200) + b . + +.org (VBAR + 0x280) + b . + +.org (VBAR + 0x300) + b . + +.org (VBAR + 0x380) + b . + + + +.org (VBAR + 0x400) + b . + +.org (VBAR + 0x480) + b . + +.org (VBAR + 0x500) + b . + +.org (VBAR + 0x580) + b . + +.org (VBAR + 0x600) + b . + +.org (VBAR + 0x680) + b . + +.org (VBAR + 0x700) + b . + +.org (VBAR + 0x780) + b . + + /****************************************************************************** * Vector table to use when FreeRTOS is running. *****************************************************************************/ -.text -.section .freertos_vectors -.align 8 -.set FREERTOS_VBAR, . +.set FREERTOS_VBAR, (VBAR+0x1000) + .org(FREERTOS_VBAR) _freertos_vector_table: b FreeRTOS_SWI_Handler @@ -121,7 +185,7 @@ _freertos_vector_table: - +#if 0 SynchronousInterruptHandler: stp X0,X1, [sp,#-0x10]! stp X2,X3, [sp,#-0x10]! @@ -239,5 +303,6 @@ SErrorInterruptHandler: ldp X0,X1, [sp], #0x10 eret +#endif .end diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/lscript.ld b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/lscript.ld index 0ff6bab67..891165a0d 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/lscript.ld +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/lscript.ld @@ -4,7 +4,7 @@ /* */ /* Version: */ /* */ -/* Copyright (c) 2010 Xilinx, Inc. All rights reserved. */ +/* Copyright (c) 2010-2016 Xilinx, Inc. All rights reserved. */ /* */ /* Description : Cortex-A53 Linker Script */ /* */ @@ -21,13 +21,10 @@ _EL2_STACK_SIZE = DEFINED(_EL2_STACK_SIZE) ? _EL2_STACK_SIZE : 1024; MEMORY { - psu_bbram_0_S_AXI_BASEADDR : ORIGIN = 0xFFCD0000, LENGTH = 0x10000 - psu_ddr_0_S_AXI_BASEADDR : ORIGIN = 0x0, LENGTH = 0x80000000 - psu_ocm_ram_0_S_AXI_BASEADDR : ORIGIN = 0xFFFC0000, LENGTH = 0x30000 - psu_ocm_ram_1_S_AXI_BASEADDR : ORIGIN = 0xFFFF0000, LENGTH = 0x10000 - psu_ocm_xmpu_cfg_S_AXI_BASEADDR : ORIGIN = 0xFFA70000, LENGTH = 0x10000 - psu_pmu_ram_S_AXI_BASEADDR : ORIGIN = 0xFFDC0000, LENGTH = 0x20000 - psu_qspi_linear_0_S_AXI_BASEADDR : ORIGIN = 0xC0000000, LENGTH = 0x20000000 + psu_ddr_0_MEM_0 : ORIGIN = 0x0, LENGTH = 0x7FF00000 + psu_ddr_1_MEM_0 : ORIGIN = 0x800000000, LENGTH = 0x80000000 + psu_ocm_ram_0_MEM_0 : ORIGIN = 0xFFFC0000, LENGTH = 0x40000 + psu_qspi_linear_0_MEM_0 : ORIGIN = 0xC0000000, LENGTH = 0x20000000 } /* Specify the default entry point to the program */ @@ -40,7 +37,6 @@ SECTIONS { .text : { KEEP (*(.vectors)) - KEEP (*(.freertos_vectors)) *(.boot) *(.text) *(.text.*) @@ -52,23 +48,23 @@ SECTIONS *(.glue_7t) *(.ARM.extab) *(.gnu.linkonce.armextab.*) -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .init (ALIGN(64)) : { KEEP (*(.init)) -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .fini (ALIGN(64)) : { KEEP (*(.fini)) -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .interp : { KEEP (*(.interp)) -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .note-ABI-tag : { KEEP (*(.note-ABI-tag)) -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .rodata : { . = ALIGN(64); @@ -77,7 +73,7 @@ SECTIONS *(.rodata.*) *(.gnu.linkonce.r.*) __rodata_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .rodata1 : { . = ALIGN(64); @@ -85,7 +81,7 @@ SECTIONS *(.rodata1) *(.rodata1.*) __rodata1_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .sdata2 : { . = ALIGN(64); @@ -94,7 +90,7 @@ SECTIONS *(.sdata2.*) *(.gnu.linkonce.s2.*) __sdata2_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .sbss2 : { . = ALIGN(64); @@ -103,7 +99,7 @@ SECTIONS *(.sbss2.*) *(.gnu.linkonce.sb2.*) __sbss2_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .data : { . = ALIGN(64); @@ -115,7 +111,7 @@ SECTIONS *(.got) *(.got.plt) __data_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .data1 : { . = ALIGN(64); @@ -123,19 +119,19 @@ SECTIONS *(.data1) *(.data1.*) __data1_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .got : { *(.got) -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .got1 : { *(.got1) -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .got2 : { *(.got2) -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .ctors : { . = ALIGN(64); @@ -147,7 +143,7 @@ SECTIONS KEEP (*(.ctors)) __CTOR_END__ = .; ___CTORS_END___ = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .dtors : { . = ALIGN(64); @@ -159,52 +155,52 @@ SECTIONS KEEP (*(.dtors)) __DTOR_END__ = .; ___DTORS_END___ = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .fixup : { __fixup_start = .; *(.fixup) __fixup_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .eh_frame : { *(.eh_frame) -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .eh_framehdr : { __eh_framehdr_start = .; *(.eh_framehdr) __eh_framehdr_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .gcc_except_table : { *(.gcc_except_table) -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .mmu_tbl0 (ALIGN(4096)) : { __mmu_tbl0_start = .; *(.mmu_tbl0) __mmu_tbl0_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .mmu_tbl1 (ALIGN(4096)) : { __mmu_tbl1_start = .; *(.mmu_tbl1) __mmu_tbl1_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .mmu_tbl2 (ALIGN(4096)) : { __mmu_tbl2_start = .; *(.mmu_tbl2) __mmu_tbl2_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .ARM.exidx : { __exidx_start = .; *(.ARM.exidx*) *(.gnu.linkonce.armexidix.*.*) __exidx_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .preinit_array : { . = ALIGN(64); @@ -212,7 +208,7 @@ SECTIONS KEEP (*(SORT(.preinit_array.*))) KEEP (*(.preinit_array)) __preinit_array_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .init_array : { . = ALIGN(64); @@ -220,7 +216,7 @@ SECTIONS KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) __init_array_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .fini_array : { . = ALIGN(64); @@ -228,13 +224,13 @@ SECTIONS KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) __fini_array_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .ARM.attributes : { __ARM.attributes_start = .; *(.ARM.attributes) __ARM.attributes_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .sdata : { . = ALIGN(64); @@ -243,7 +239,7 @@ SECTIONS *(.sdata.*) *(.gnu.linkonce.s.*) __sdata_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .sbss (NOLOAD) : { . = ALIGN(64); @@ -253,7 +249,7 @@ SECTIONS *(.gnu.linkonce.sb.*) . = ALIGN(64); __sbss_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .tdata : { . = ALIGN(64); @@ -262,7 +258,7 @@ SECTIONS *(.tdata.*) *(.gnu.linkonce.td.*) __tdata_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .tbss : { . = ALIGN(64); @@ -271,7 +267,7 @@ SECTIONS *(.tbss.*) *(.gnu.linkonce.tb.*) __tbss_end = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .bss (NOLOAD) : { . = ALIGN(64); @@ -282,7 +278,7 @@ SECTIONS *(COMMON) . = ALIGN(64); __bss_end__ = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 _SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 ); @@ -298,7 +294,7 @@ _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 ); . += _HEAP_SIZE; _heap_end = .; HeapLimit = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 .stack (NOLOAD) : { . = ALIGN(64); @@ -317,7 +313,7 @@ _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 ); . += _EL0_STACK_SIZE; . = ALIGN(64); __el0_stack = .; -} > psu_ddr_0_S_AXI_BASEADDR +} > psu_ddr_0_MEM_0 _end = .; } diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/main.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/main.c index 7fb7f4d1d..add2deb49 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/main.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/main.c @@ -26,6 +26,10 @@ */ /****************************************************************************** + * + * See http://www.FreeRTOS.org/RTOS-Xilinx-UltraScale_MPSoC_64-bit.html for + * additional information on this demo. + * * NOTE 1: This project provides two demo applications. A simple blinky * style project, and a more comprehensive test and demo application. The * mainSELECTED_APPLICATION setting in main.c is used to select between the two. @@ -34,6 +38,12 @@ * NOTE 2: This file only contains the source code that is not specific to * either the simply blinky or full demos - this includes initialisation code * and callback functions. + * + * NOTE 3: This project builds the FreeRTOS source code, so is expecting the + * BSP project to be configured as a 'standalone' bsp project rather than a + * 'FreeRTOS' bsp project. However the BSP project MUST still be build with + * the FREERTOS_BSP symbol defined (-DFREERTOS_BSP must be added to the + * command line in the BSP configuration). */ /* Standard includes. */ @@ -95,6 +105,9 @@ XScuGic xInterruptController; int main( void ) { + /* See http://www.FreeRTOS.org/RTOS-Xilinx-UltraScale_MPSoC_64-bit.html for + additional information on this demo. */ + /* Configure the hardware ready to run the demo. */ prvSetupHardware(); @@ -253,3 +266,15 @@ void vMainAssertCalled( const char *pcFileName, uint32_t ulLineNumber ) for( ;; ); } +void *____memset(void *str, int c, size_t n) +{ +size_t x; +uint8_t *puc = ( uint8_t * ) str; + + for( x = 0; x < c; x++ ) + { + puc[ x ] = ( uint8_t ) c; + } + + return str; +} diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/platform.c b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/platform.c index 315dcb0ce..0ee2dcbaf 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/platform.c +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/platform.c @@ -68,8 +68,14 @@ enable_caches() void disable_caches() { +#ifdef __MICROBLAZE__ +#ifdef XPAR_MICROBLAZE_USE_DCACHE Xil_DCacheDisable(); +#endif +#ifdef XPAR_MICROBLAZE_USE_ICACHE Xil_ICacheDisable(); +#endif +#endif } void diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.cproject b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.cproject index 6f2169939..5e63ed68c 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.cproject +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/.cproject @@ -1,8 +1,8 @@ - - + + diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/Makefile b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/Makefile index e6a3e6c6b..96a550547 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/Makefile +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/Makefile @@ -23,11 +23,11 @@ $(PROCESSOR)/lib/libxil.a: $(PROCESSOR)/lib/libxil_init.a %/make.include: $(if $(wildcard $(PROCESSOR)/lib/libxil_init.a),$(PROCESSOR)/lib/libxil.a,) @echo "Running Make include in $(subst /make.include,,$@)" - $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=aarch64-none-elf-gcc" "ARCHIVER=aarch64-none-elf-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-g -Wall -Wextra" + $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=aarch64-none-elf-gcc" "ARCHIVER=aarch64-none-elf-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-g -Wall -Wextra -DFREERTOS_BSP" %/make.libs: include @echo "Running Make libs in $(subst /make.libs,,$@)" - $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=aarch64-none-elf-gcc" "ARCHIVER=aarch64-none-elf-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-g -Wall -Wextra" + $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=aarch64-none-elf-gcc" "ARCHIVER=aarch64-none-elf-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-g -Wall -Wextra -DFREERTOS_BSP" %/make.clean: $(MAKE) -C $(subst /make.clean,,$@) -s clean diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/system.mss b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/system.mss index 7b11cbdd3..e147f8ed7 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/system.mss +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/system.mss @@ -15,6 +15,7 @@ BEGIN PROCESSOR PARAMETER DRIVER_NAME = cpu_cortexa53 PARAMETER DRIVER_VER = 1.5 PARAMETER HW_INSTANCE = psu_cortexa53_0 + PARAMETER extra_compiler_flags = -g -Wall -Wextra -DFREERTOS_BSP END diff --git a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/.project b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/.project index 97855f6fd..3e4be512b 100644 --- a/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/.project +++ b/FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_ZCU102_hw_platform/.project @@ -1,7 +1,7 @@ ZynqMP_ZCU102_hw_platform - Created by SDK v2016.4 + Created by SDK v2018.1 @@ -11,7 +11,7 @@ - 1484841836970 + 1525357889050 6 @@ -20,7 +20,7 @@ - 1484841836972 + 1525357889050 6 @@ -29,7 +29,7 @@ - 1484841836978 + 1525357889065 6 -- 2.39.2