diff --git a/components/freertos/CMakeLists.txt b/components/freertos/CMakeLists.txt index 9f2a738b..b61cdfb0 100644 --- a/components/freertos/CMakeLists.txt +++ b/components/freertos/CMakeLists.txt @@ -2,7 +2,7 @@ list(APPEND ADD_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/include" -"${CMAKE_CURRENT_SOURCE_DIR}/portable/gcc/risc-v/${mcu}" +"${CMAKE_CURRENT_SOURCE_DIR}/portable/gcc/risc-v/${CHIP}" ) ####################################################### diff --git a/components/freertos/include/FreeRTOSConfig.h b/components/freertos/include/FreeRTOSConfig.h deleted file mode 100644 index 702e896b..00000000 --- a/components/freertos/include/FreeRTOSConfig.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * FreeRTOS Kernel V10.2.1 - * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * http://www.FreeRTOS.org - * http://aws.amazon.com/freertos - * - * 1 tab == 4 spaces! - */ - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ -#define configSUPPORT_STATIC_ALLOCATION 1 -#define CLINT_CTRL_ADDR ( 0x02000000UL ) -#define configCLINT_BASE_ADDRESS CLINT_CTRL_ADDR -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 1 -#define configCPU_CLOCK_HZ ( 9000000UL ) -#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) -#define configMAX_PRIORITIES ( 7 ) -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 160 ) /* Only needs to be this high as some demo tasks also use this constant. In production only the idle task would use this. */ -#define configTOTAL_HEAP_SIZE ( ( size_t ) 48 * 1024 ) -#define configMAX_TASK_NAME_LEN ( 16 ) -#define configUSE_TRACE_FACILITY 1 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 0 -#define configUSE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 8 -#define configCHECK_FOR_STACK_OVERFLOW 2 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configUSE_MALLOC_FAILED_HOOK 1 -#define configUSE_APPLICATION_TASK_TAG 0 -#define configUSE_COUNTING_SEMAPHORES 1 -#define configGENERATE_RUN_TIME_STATS 0 -#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1 -#define configUSE_STATS_FORMATTING_FUNCTIONS 2 - -/* Co-routine definitions. */ -#define configUSE_CO_ROUTINES 0 -#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) - -/* Software timer definitions. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 ) -#define configTIMER_QUEUE_LENGTH 8 -#define configTIMER_TASK_STACK_DEPTH ( 160 ) - -/* Task priorities. Allow these to be overridden. */ -#ifndef uartPRIMARY_PRIORITY - #define uartPRIMARY_PRIORITY ( configMAX_PRIORITIES - 3 ) -#endif - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 1 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_eTaskGetState 1 -#define INCLUDE_xTimerPendFunctionCall 1 -#define INCLUDE_xTaskAbortDelay 1 -#define INCLUDE_xTaskGetHandle 1 -#define INCLUDE_xSemaphoreGetMutexHolder 1 - -/* Normal assert() semantics without relying on the provision of an assert.h -header file. */ -void vAssertCalled( void ); -#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled() - -#endif /* FREERTOS_CONFIG_H */ diff --git a/components/freertos/portable/gcc/risc-v/bl702/port.c b/components/freertos/portable/gcc/risc-v/bl702/port.c index c65cb1d4..d8bc99db 100644 --- a/components/freertos/portable/gcc/risc-v/bl702/port.c +++ b/components/freertos/portable/gcc/risc-v/bl702/port.c @@ -77,6 +77,8 @@ const uint64_t *pullNextTime = &ullNextTime; const size_t uxTimerIncrementsForOneTick = ( size_t ) ( configCPU_CLOCK_HZ / configTICK_RATE_HZ ); /* Assumes increment won't go over 32-bits. */ volatile uint64_t * const pullMachineTimerCompareRegisterBase = ( volatile uint64_t * const ) ( configCLINT_BASE_ADDRESS + 0x4000 ); volatile uint64_t * pullMachineTimerCompareRegister = 0; +BaseType_t TrapNetCounter = 0; +const BaseType_t *pTrapNetCounter = &TrapNetCounter; /* Set configCHECK_FOR_STACK_OVERFLOW to 3 to add ISR stack checking to task stack checking. A problem in the ISR stack will trigger an assert, not call the diff --git a/components/freertos/portable/gcc/risc-v/bl702/portASM.S b/components/freertos/portable/gcc/risc-v/bl702/portASM.S index 432f7db2..74f50f2b 100644 --- a/components/freertos/portable/gcc/risc-v/bl702/portASM.S +++ b/components/freertos/portable/gcc/risc-v/bl702/portASM.S @@ -96,6 +96,7 @@ at the top of this file. */ .extern Timer_IRQHandler .extern pullMachineTimerCompareRegister .extern pullNextTime + .extern pTrapNetCounter .extern uxTimerIncrementsForOneTick /* size_t type so 32-bit on 32-bit core and 64-bits on 64-bit core. */ .extern xISRStackTop .extern portasmHANDLE_INTERRUPT @@ -141,6 +142,11 @@ freertos_risc_v_trap_handler: portasmSAVE_ADDITIONAL_REGISTERS /* Defined in freertos_risc_v_chip_specific_extensions.h to save any registers unique to the RISC-V implementation. */ + load_x t0, pTrapNetCounter + lw t1, 0( t0 ) + addi t1, t1, 1 + store_x t1, 0( t0 ) + load_x t0, pxCurrentTCB /* Load pxCurrentTCB. */ store_x sp, 0( t0 ) /* Write sp to first TCB member. */ @@ -238,6 +244,12 @@ as_yet_unhandled: j as_yet_unhandled processed_source: + + load_x t0, pTrapNetCounter + lw t1, 0 ( t0 ) + addi t1, t1, -1 + store_x t1, 0( t0 ) + load_x t1, pxCurrentTCB /* Load pxCurrentTCB. */ load_x sp, 0( t1 ) /* Read sp from first TCB member. */ diff --git a/components/freertos/portable/gcc/risc-v/bl702/portmacro.h b/components/freertos/portable/gcc/risc-v/bl702/portmacro.h index d3ba1217..7166fa89 100644 --- a/components/freertos/portable/gcc/risc-v/bl702/portmacro.h +++ b/components/freertos/portable/gcc/risc-v/bl702/portmacro.h @@ -91,6 +91,7 @@ not need to be guarded with a critical section. */ /* Scheduler utilities. */ +extern BaseType_t TrapNetCounter; extern void vTaskSwitchContext( void ); #define portYIELD() __asm volatile( "ecall" ); #define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) vTaskSwitchContext() @@ -155,6 +156,11 @@ not necessary for to use this port. They are defined so the common demo files #define portMEMORY_BARRIER() __asm volatile( "" ::: "memory" ) +portFORCE_INLINE static BaseType_t xPortIsInsideInterrupt( void ) +{ + return TrapNetCounter ? 1 : 0; +} + #ifdef __cplusplus } #endif diff --git a/components/lvgl/lv_conf_internal.h b/components/lvgl/lv_conf_internal.h index 1bd53592..e4937151 100644 --- a/components/lvgl/lv_conf_internal.h +++ b/components/lvgl/lv_conf_internal.h @@ -214,7 +214,7 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h" */ #define LV_USE_GPU_NXP_VG_LITE 0 /* 1: Enable file system (might be required for images */ -#define LV_USE_FILESYSTEM 0 +#define LV_USE_FILESYSTEM 1 #if LV_USE_FILESYSTEM /*Declare the type of the user data of file system drivers (can be e.g. `void *`, `int`, `struct`)*/ typedef void * lv_fs_drv_user_data_t; diff --git a/components/shell/shell_cfg.h b/components/shell/shell_cfg.h index 498d2949..55b516db 100644 --- a/components/shell/shell_cfg.h +++ b/components/shell/shell_cfg.h @@ -140,6 +140,6 @@ /** * @brief shell是否在命令提示符输出路径,需要引用文件系统 */ -#define SHELL_FS 1 +#define SHELL_FS 0 #endif