Oslf_Internal.h linking to wrong freeRtos API

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Oslf_Internal.h linking to wrong freeRtos API

1,286件の閲覧回数
lluo
Contributor IV

Hi, I am currently trying to use freeRtos on s32k344. I am using S32 Design Studio 3.5 and rtd 4.0.0 D2311.  I found out that the program got stuck in vPortEnterCritical() in port.c and the configASSERT in this function is triggered.  I found out that it was because that SchM_Enter_Can_43_FLEXCAN_CAN_EXCLUSIVE_AREA_18(void) was called from interrupt and inside this function, OsIf_SuspendAllInterrupts() was called. 

Then I made the following modification in Oslf_Internal.h by changing the following two lines:

#if defined(USING_OS_FREERTOS)
#define ResumeAllInterrupts() taskEXIT_CRITICAL()
#define SuspendAllInterrupts() taskENTER_CRITICAL()

to :

#if defined(USING_OS_FREERTOS)
#define ResumeAllInterrupts() taskEXIT_CRITICAL_FROM_ISR(0)
#define SuspendAllInterrupts() taskENTER_CRITICAL_FROM_ISR()

Then the issue was solved. Is the above configuation intended? or is it a issue? Will it be fixed in the future? Thank you.

PS: The freeRtos version is shown in the attached screenshot.

0 件の賞賛
返信
1 返信

1,213件の閲覧回数
CongDang
NXP Employee
NXP Employee

It seems a issue of minimal stack configuration. Pls try to configure minimal stack size with 512 in FreeRTOS configuration.

0 件の賞賛
返信