Xilinx / embeddedsw

Xilinx Embedded Software (embeddedsw) Development
Other
885 stars 1.05k forks source link

FreeRTOS Hello World no interrupts to trigger ticks #301

Open tlf30 opened 3 days ago

tlf30 commented 3 days ago

When testing with a microblaze core that has a AXI timer, freertos fails to get tick interrupts with the hello world example and the example simply hangs on the first vTaskDelay.

image

image image

Is there additional configuration required?

image image

kedareswararao commented 1 day ago

Hi @tlf30, How are you generating the freertos_hello_world application? if we use template flow(Generating new domain along with application) all the required configuration will be set by the flow, looks like you have created the hello_world application for the already existing platform in this case need to enable XILTIMER_en_interval_timer to true , Modify the configuration and regenerate the application and let us know the test results.

tlf30 commented 1 day ago

Hello @kedareswararao, I am using a platform that I generated. It is a simple platform with two axi timers, axi uart lite, and a microblaze core connected to some ram.

I have tested with XILTIMER_en_interval_timer set to both true and false on my original project, thought that perhaps it was because I had fast interrupts enabled on the interrupt controller. I recreated the hardware from scratch with fast interrupts disabled. This has made no difference, and I have re-tested with XILTIMER_en_interval_timer set to true/false.

I am attaching my xsa here for reference. This is my first time using a Xilinx FPGA along with the tooling, so I am sure I have something wrong somewhere. If there is some specific files that I can provide for troubleshooting, please let me know.

design_1_wrapper.zip

EDIT: Current design for reference: image

tlf30 commented 6 hours ago

@kedareswararao if it makes any difference, when I create the platform using the xsa file, I select FreeRTOS for the operating system. I would assume that it should setup all the needed parameters in the platform. The XILTIMER_en_interval_timer are set to false by default. But as mentioned I've tested with it set to true as well.

Any help is greatly appreciated. Thanks, Trevor