FreeRTOS e2tudio example

Is there any such thing out there? That would give me the quickest start, I have manually tried to convert a HEW project to e2studio, the program launches, but fails when the scheduler should be started. Maybe a very simple (led blink or console output) working project?


I have the RX62N RDK overhere.


Thanks!

  • Currently the official FreeRTOS demos are provided with HEW projects.  These will be converted to E2Studio at some time, but if the HEW projects cannot be imported into E2Studio it is quite easy to create a project from scratch.  Ensure you have an E2studio project running on your hardware, then add in the FreeRTOS files and include paths.  The following links will help:

    www.freertos.org/Creating-a-new-FreeRTOS-project.html

    www.freertos.org/porting-a-freertos-demo-to-different-hardware.html

    I have also provided a basic E2Studio project here:

    interactive.freertos.org/.../22656327-basic-rx62n-project-for-e2studio-and-renesas-compiler

    note the comment that the page linked to here about the hardware setup.  You will need to add in some code to configure the clocks and IO ports for your particular hardware.  This can probably be copied from the HEW projects that target the RDK.

  • In reply to Richard Barry:

    Thanks for the response and sorry for taking such a long time to respond, it had been hectic. Today I was finally able to work on it a bit more. One problem found, the stock start-up you get in e2studio reverts to user mode instead of privileged mode. Easy fix.

    Now however, I can create tasks, but when starting the scheduler, creation of the idle task seems to fail. The function prvAllocateTCBAndStack tries to allocate memory. (I'm using heap1). Works fine for the regular task I create, but for the idle task it goes wrong. Seems to happen in the pvPortMalloc function. It is called with xWantedsize = 76 which gets turned into 80.

    However, after the call to vTaskSuspendAll it is suddenly set to 0. This is evaluated as an overflow. Then after xTaskResumeAll the pointer pvReturn is not NULL anymore, but some crazily large value. Also xWantedSize is all messed up.

    Any ideas? The heap_size is not the problem (set to 8k, nextfreebyte is at decimal 2008 according to the debugger). Also removing tasks before the scheduler start does not make a difference at all.

    Running E2studio 1.01 with GNURX toolchain 1.1.0 and FreeRTOS 7.3.0. Target is the RX62N RDK.

  • In reply to Dirk Hendrik:

    Bit of progress again. Problem above was a stack issue, quite different way of defining it in e2studio / GNURX. Now I have an example with two tasks of equal priority. Delay loop implemented as in the FreeRTOS example (software counter) and each toggles its own LED. However, only one runs, the other doesn't even once (LED not turning on at all). Added the timer hook to toggle another LED verifying correct timer behaviour.

    Also tried it with taskdelay but then none of the tasks run.

    Any pointers?

  • In reply to Dirk Hendrik:

    Had another go at it and the issues are resolved. Turned out that the software timer interrupt wasn't hooked in the right place, therefore no switching of tasks. Nice blinking LEDs now, wonderfull... On to something usefull....