summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 0d4a679)
raw | patch | inline | side by side (parent: 0d4a679)
author | Badri S <badri@ti.com> | |
Sun, 28 Feb 2021 03:37:51 +0000 (09:07 +0530) | ||
committer | Ankur <ankurbaranwal@ti.com> | |
Fri, 5 Mar 2021 10:02:31 +0000 (04:02 -0600) |
ensure csl_vect is not wrongly linked in resulting in
interrupts not being serviced by freertos vecs
Signed-off-by: Badri S <badri@ti.com>
interrupts not being serviced by freertos vecs
Signed-off-by: Badri S <badri@ti.com>
diff --git a/packages/ti/board/utils/uniflash/target/soc/tpr12/linker.cmd b/packages/ti/board/utils/uniflash/target/soc/tpr12/linker.cmd
-stack 0x2000 /* SOFTWARE STACK SIZE */
-heap 0x2000 /* HEAP AREA SIZE */
+-u _resetvectors
+
/* Stack Sizes for various modes */
__IRQ_STACK_SIZE = 0x1000;
__FIQ_STACK_SIZE = 0x1000;
export GCC_ARM_NONE_TOOLCHAIN ?= $(SDK_INSTALL_PATH)/gcc-$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
export TI_CGT6x_INSTALL_DIR ?= $(SDK_INSTALL_PATH)/c6000_7.4.16
export M4_TOOLCHAIN_INSTALL_DIR ?= $(TOOLCHAIN_PATH_M4)
- export FREERTOS_KERNEL_INSTALL_PATH ?= $(SDK_INSTALL_PATH)/freertos/FreeRTOS-LTS/FreeRTOS
- export FREERTOS_LABS_INSTALL_PATH ?= $(SDK_INSTALL_PATH)/freertos/FreeRTOS-Labs/FreeRTOS-Labs/Source
+ export FREERTOS_KERNEL_INSTALL_PATH ?= $(SDK_INSTALL_PATH)/FreeRTOS-LTS/FreeRTOS
+ export FREERTOS_LABS_INSTALL_PATH ?= $(SDK_INSTALL_PATH)/FreeRTOS-Labs/FreeRTOS-Labs/Source
ifeq ($(SOC),$(filter $(SOC), am335x))
export HARDLIB_PATH ?= $(TOOLCHAIN_PATH_A8)/lib/gcc/arm-none-eabi/$(GCC_VERSION_HARDLIB)
diff --git a/packages/ti/build/tpr12/linker_c66_freertos.cmd b/packages/ti/build/tpr12/linker_c66_freertos.cmd
index 834470bc1cc555b0172a9cfaf52d4d6ad26da7b9..a7ec6183c3212896fee72133b107ec204f08bab4 100644 (file)
{
/* hard addresses forces vecs to be allocated there */
.hwi_vect: {. = align(32); } > 0x00800000
- .csl_vect: {} > L2SRAM
-
+ .text:csl_entry:{} > L2SRAM
.fardata: {} > L2SRAM
.const: {} > L2SRAM
.switch: {} > L2SRAM
index 51429905b7f182172c846513a03cf231515ee932..2001238a2df6f2d04fe0f8cc944d86cdfb7b4519 100644 (file)
# Common source files and CFLAGS across all platforms and cores
SRCS_COMMON += \
- tasks.c \
timers.c \
queue.c \
list.c \
- heap_4.c \
FreeRTOS_POSIX_clock.c \
- FreeRTOS_POSIX_mqueue.c \
FreeRTOS_POSIX_pthread_barrier.c \
FreeRTOS_POSIX_pthread_cond.c \
FreeRTOS_POSIX_pthread_mutex.c \
FreeRTOS_POSIX_pthread.c \
FreeRTOS_POSIX_sched.c \
FreeRTOS_POSIX_semaphore.c \
- FreeRTOS_POSIX_timer.c \
FreeRTOS_POSIX_unistd.c \
FreeRTOS_POSIX_utils.c \
port.c
+# FreeRTOS tasks does not compile in CPP build. Skip it for CPP build
+ifneq ($(CPLUSPLUS_BUILD), yes)
+SRCS_COMMON += \
+ FreeRTOS_POSIX_timer.c \
+ FreeRTOS_POSIX_mqueue.c \
+ tasks.c \
+ heap_4.c
+endif
+
#ISA specific C files
ifeq ($(ISA),$(filter $(ISA), c66))
SRCS_COMMON += \
diff --git a/packages/ti/kernel/freertos/config/tpr12/c66/FreeRTOSConfig.h b/packages/ti/kernel/freertos/config/tpr12/c66/FreeRTOSConfig.h
index df716187a7d6f29b614c73812f57f06638ab0488..71a375d6114bacc3dbc34d944a49c88324313893 100644 (file)
#define INCLUDE_vTaskSuspend (1)
#define INCLUDE_xTimerDelete (1)
#define INCLUDE_vSemaphoreDelete (1)
+#define INCLUDE_xTaskAbortDelay (1)
/* Size of ISR Stack in c66x */
#define configHWI_TASK_STACK_DEPTH (4096)
diff --git a/packages/ti/kernel/freertos/portable/TI_CGT/c66/port.c b/packages/ti/kernel/freertos/portable/TI_CGT/c66/port.c
index b27bccd7829cb6b7ae3010d20b27f0fa268d2a89..c7eeacebe2b8a6a51b4aeb6d9090ae024157e0e5 100644 (file)
@@ -176,7 +176,7 @@ StackType_t *pxPortInitialiseStack(StackType_t * pxTopOfStack, TaskFunction_t px
}
#endif
- pxTopOfStack = TaskSupport_buildTaskStack(pxTopOfStack, ti_sysbios_knl_Task_Func, Task_exit, Task_enter, (uint32_t)pvParameters, (uint32_t)pxCode);
+ pxTopOfStack = (StackType_t *)TaskSupport_buildTaskStack(pxTopOfStack, ti_sysbios_knl_Task_Func, Task_exit, Task_enter, (uint32_t)pvParameters, (uint32_t)pxCode);
return pxTopOfStack;
}
diff --git a/packages/ti/kernel/freertos/portable/TI_CGT/c66/port_Hwi.c b/packages/ti/kernel/freertos/portable/TI_CGT/c66/port_Hwi.c
index 5568c64f256d981a7c576531c7a7dd8aede26f72..8dfcfca60d3b10b384061980905010397d569935 100644 (file)
/* --> __TI_STATIC_BASE */
extern void* __TI_STATIC_BASE;
-extern void* _CSL_intcVectorTable;
+extern void* _Hwi_intcVectorTable;
ti_sysbios_family_c64p_Hwi_Module_State__ ti_sysbios_family_c64p_Hwi_Module__state__V = {
(uint16_t)0x4003, /* ierMask */
(int32_t)0x0, /* intNum */
((char*)NULL), /* taskSP */
((char*)NULL), /* isrStack */
- ((void *)((void*)&_CSL_intcVectorTable)), /* vectorTableBase */
+ ((void *)((void*)&_Hwi_intcVectorTable)), /* vectorTableBase */
((void *)((void*)&__TI_STATIC_BASE)), /* bss */
(int32_t)0x0, /* scw */
};
diff --git a/packages/ti/kernel/freertos/portable/TI_CGT/c66/port_Hwi_intcIsrDispatch.asm b/packages/ti/kernel/freertos/portable/TI_CGT/c66/port_Hwi_intcIsrDispatch.asm
index 95bd75f8fa8a34834215227d16a8e4a17cb423e1..6ae72d3d8f51fb078a5441b77d9e1cad43b3faa9 100644 (file)
.ref ti_sysbios_family_c64p_Hwi_dispatchAlways
.ref _CSL_Entry
+
RESV .macro num
.loop num
mvkh _CSL_intcCpuIntrTable,a4
.sect ".hwi_vect"
.align 0x400
.nocmp
-__Hwi_intcVectorTable:
+__Hwi_intcVectorTable:
__Hwi_intcRsv0:
NOP
NOP
__Hwi_intcIsr15:
CALLDISP 15
+ .sect ".text:hwi_text"
+ .global CSL_intcIvpSet
+CSL_intcIvpSet:
+ bnop b3,2
+ mvkl __Hwi_intcVectorTable, b0
+ mvkh __Hwi_intcVectorTable, b0
+ mvc b0, istp