Hi!
I am trying to use FreeRTOS on a Xilinx FPGA with a Microblaze soft core.
I instantiated a very basic hardware (Microblaze, 128K memory for Data and 128K Memory for Instructions, Timer, Interrupt Controller) and I created a FreeRTOS project with the wizard inside Vitis IDE.
The project it creates is a simple hello world one (two tasks, one receiver and one transmitter and the receiver prints on the UART) the problem is that no tasks starts but only the main is executed multiple times! Even if I create a simple project with a single task, after the scheduler is started it starts to loop on the main over and over.
By debugging strange things inside the OS I noticed that at a certain point after the scheduler starts, it try to run the task I think and loads in the R14 a value that is used to branch on it. The problem is that the value is outside the range covered by the program (i.e. there are no useful address there, the ram is initialized to 0x0 in fact it executes instructions like add R0, R0, R0) and I think that the program counter continue to be incremented till it reaches the end of the ram and starts over again from 0x0 that is the boot address thus the main starts again.
I don’t know where the problem can be actually. Can you help me? Thanks!