Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT




Loading

Interrupt handler is not Notifying after 98 times in Zynq702

Posted by krishnam1 on March 3, 2017

Hi,

Iam using Zynq702, in this we have an hardware that can communicate with the Processing System (PS) using AXI bus.PS is AXI Master.

Data Flow and Hardware Details as mentioned below:

Data From Wire--> Programmable Logic (FPGA) -- > BRAM --> AXI Interconnect --> PS After the above sequence the data is made available to the PS(ARM Core). Interrupt is sent to PS to start fetching using SCUGuic using GPIO from PL to PS.

In FreeRTOS (8.2.3) created 1 interrupt and 1 task. Priority of this interrupt task is greater than RTOS timer interrupt. In this Interrupt routing FromISR function only used to notify the Task.

Below are the obervation.

1.Works fine for 98 times, interrupt able to notify the task 2.On 98th time interrupt occurs and NotifyFromIsr also called but the break point is not hitting the task.

As a RTOS it should not fail to start any task from the interrupt.

I don't know why it failing in the FreeRTOS. Tried to debugging using StateViewer but not able to see for FreeRTOS. Is there any way to fix this issue.

Regards, KrishnaM


Interrupt handler is not Notifying after 98 times in Zynq702

Posted by rtel on March 5, 2017

Is it always on the 98th interrupt?

Can you show the task code, where the notification is received, and the interrupt code, where the notification is sent.

Do you have configASSERT() defined and stack overflow checking switched on?


Interrupt handler is not Notifying after 98 times in Zynq702

Posted by krishnam1 on March 6, 2017

Hi,

Thanks for the quick response.

Yes, it is 98th time.

Observed that frequency of this interrupt is <400uS. Also interrupt to task swtiching time for the working case is 2.6uS

Yes, configASSERT() and stack overflow checking switched on.

configTotalHEAPSIZE set to 4MB in FreeRtosConfig.h.

This particular task stak size is configured to 12KB.

It would be great help if you can give any hints for debugging this behavior.

Regards, KrishnaM


Interrupt handler is not Notifying after 98 times in Zynq702

Posted by rtel on March 8, 2017

Apologies for the delay in your post appearing. For some reason it went into a moderation queue, even though its not supposed to.

As its so consistent can you add a counter into your code to enable you to put a break point no the 98th occurrence, and then step into the code from there to try and determine the route cause?

Something like:

++counter; if( counter == 98 ) { __asm volatile( "NOP" ); // Place breakpoint here. }


Interrupt handler is not Notifying after 98 times in Zynq702

Posted by krishnam1 on March 9, 2017

Hi,

sure, i will try & let you know. Observed that it is entering to abort handle when we are trying to access the same memory at 98th time.. If i comment axi bram buffer accessing inside task then i wont see the data abort,

To ensure it is not an freertos isuue is there any way I can check tcb or task information when reaches 98th count.

Does freertos capable to handle frequent context switching at every 400us?

Regards, KrishnaM


[ Back to the top ]    [ About FreeRTOS ]    [ Sitemap ]    [ ]




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

FreeRTOS kernel V10 is available for immediate download. Now MIT licensed.


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS