I’ve changed the script for memory boundaries of Phytec PCM-023 board, using the workbench edit script tool, and the vTaskStartScheduler() doesn’t return, the board led stops flashing… it seems that it’s branching to a wrong address… When I change configTOTAL_HEAP_SIZE to 14196 or to 14204 it stops working, and when I change its value to 14200 works fine!!! I’ve noticed that application stops in "Data abort" trap…
Can you step through the code to see where it aborts. If not, check the abort link register to find the address of the instruction that caused the abort, then set a break point there (I think its the link register value – 8).
No, step through the code is hard to do because of the interrupts, so I found out something with your second tip: (Link register – 8) is located in internal flash, but I’m using external flash!!! I’ve checked the link script and could’t find any entry to internal flash… Is there any fixed address in FreeRTOS demo source code? I’ve used demo aplication to configure my project.
Is it possible that a RAM corruption is causing a return address or something similar to send you to a bum location. Could be a stack overflow?
I don’t know if stack amount in link script is enough, but what do you think ? I’m using values from demo aplication, and I’m starting only flash led task. It seems to be a very simple dummy task. There is a configMINIMAL_STACK_SIZE with value 100, what value should be there? And in link script table we have this values: CSTACK: 0x200 SVC_STACK: 0x200 IRQ_STACK: 0x200 FIQ_STACK: 0x0 UND_STACK: 0x0 ABT_STACK: 0x0 HEAP: 0x0 I don’t know how to configure parameters in FreeRTOSConfig.h, is there any howto or documentation about this?
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.