NAND flash - MQX no idle task

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

NAND flash - MQX no idle task

927 Views
JaclynM
Contributor I

Dear community,

the system I am using is a Phytec PCM052, Kernel 3.13, MQX BSP TWRVF65GS10 M4, U-Boot 2013/2017

The first problem was a kernel CRC error code when booting with U-Boot 2013.
I found out that U-Boot shares some old NAND flash kernel drivers that use different ECC modes.


Upgrading to U-Boot 2017 "fixed" the issue, but caused a problem with MQX as my M4 code no longer runs at all, nor does the idle task.

Some error searches showed that in the function _mqx() after a call of _bsp_enable_card() the dispatch function is triggered about one second later.
(Timer Dispatch.S _pend_svc, /* 0x0E 0x00000038 - ivINT_PendableSrvReq */)
This function only finds empty task queues and continues to run endlessly.

During the normal execution of _mqx(), the idle task is created and queued, and then the dispatcher is called.

It seems that U-Boot 2017 changes some settings that affect the M4.
Unlike U-Boot 2013, there is now a function called
"m4go - Starting the secondary Cortex-M4 from the scatter file image".

Does anyone of you have any idea where exactly I could look further besides debugging U-Boot ?

 

 

 

Labels (4)
Tags (2)
0 Kudos
Reply
1 Reply

903 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

This could be due to low power routine, Looking at mqx/examples/lowpower:

 

Low power driver (io/lpm/lpm.c) defines a routine

_mqx_uint _lpm_idle_sleep_setup

    (

        /* [IN] Whether to turn on/off the idle sleep feature */

        boolean idle_sleep

    )

that restarts Idle task (if needed) with updated parameter.

 

I only need to call _lpm_idle_sleep_setup(TRUE) at beginnning of my task to allow entering wait mode.

 

However MQX is not supported anymore with uboot2017, do not know exactly whats the problem is.

 

Regards

0 Kudos
Reply