I’m trying to implement FreeRTOS in BF561core B, I’m close but I have a runtime error that I cannot figuer out. When the scheduler start and try to trigger the first task, the memory pointer get lost and it doesn’t start the first stack, instead in start a function inside the first task and get lost when going out of the function.
this is the corresponding debug log:
COREB: handler declared COREB: Initialise New TCB:NewTCB address: 3d01000 COREB: TopofStask: 0, pxTopOfStack = 3d0263c COREB: pxTaskCode =3c030dc, pvParameters = 0 COREB: returned pxNewTCB->pxTopOfStack = 3d02588 COREB: Add the idle task at the lowest priority COREB: Initialise New TCB:NewTCB address: 3d03000 COREB: TopofStask: 0, pxTopOfStack = 3d0431c COREB: pxTaskCode =3c02698, pvParameters = 0 COREB: returned pxNewTCB->pxTopOfStack = 3d04268 COREB: end Add the idle task at the lowest priority COREB: if xReturn == 1, and xReturn = 1 COREB: before disable interupt COREB: after disable interupt COREB: before xPortStartScheduler COREB: start xPortStartScheduler fn before set core timer COREB: after ContextSwitch interupt flag COREB: before prvSetupTimerInterrupt COREB: after prvSetupTimerInterupt COREB: Task Switch context called COREB: The scheduler is running COREB: Trace task switchout called COREB: before Task first check for stack overflow COREB: Task first check for stack overflow called COREB: Task second check for stack overflow called COREB: before call get owner of next entry COREB: get owner of next entry: COREB: current TCB 3d01000 COREB: pxReadyTasksLists[ uxTopReadyPriority ] = 1 COREB: TCB content: COREB: top of stack: 3d02588 COREB: GenericListItem: 0 COREB: Event ListItem: 9 COREB: Priority: 1 COREB: start of stack: 3d02000 COREB: Task Name: BootTas COREB: TCB number: 0 COREB: Task Tag: 0 COREB: trace switch in COREB: write trace to buffer COREB: end of app init COREB: execption 2b addr ff700be4 COREB: coreb dump stack COREB: found fp: ff700b64
I’ve a full discussion on the blackfin forum for more details: