A short time ago I started a poll:
The idea was taking the opinion from the experts of this community . I have never used before real-time OS on uC, but I have heard about them, and I just wated to know how usefull and popular they are.
At the time I am wriing this post, the poll looks like this:
Searching for information, I realized that, in fact, RTOS has become a "entire world" by itself, there are some RTOS, free and comercial, compatible with many uC-families and integrable to many IDE.
For this reason I decided to have a look on it. I decided to pick FreeRTOS, because it seems to be one of the most popular (self-styled Market leading), because it's free, and because it is port to a PSoC5 and I have one prototype board with one of these SoC...
For the first touch I used:
- Last version available of FreeRTOS (v9.0.0)
- PSoC Creator 3.3
- LCD 4x16
And here the steps I followed:
1.- Install PSoC Creator. (I had it installed before, but I mark it as a step)
2.- Downloaded the rtos and copy it in the PC (I had already installed PSoC Creator), notice at this point that PSoC creator gets in trouble with special characters as accent marks, then, it should be copied in a path without special charaters.
3.- Open the PSoC project: path_were_freertos_is_copied\FreeRTOSv9.0.0\FreeRTOS\Demo\CORTEX_CY8C5588_PSoC_Creator_GCC\FreeRTOS_Demo Workspace
4.- The first message shown is :
I clicked OK, but it does not mind because we need to change to the PSoC of the kit.
5.- Then this message:
6.- At this point it is needed to Project->Update Components.
7.- After that, select the proper PSoC, Project->Device Selector, and chose the CY8C5888LTI-LP097.
8- Now it is time to configure build setting:
9.- Once build setting are done, I would check everything is working well, and check if the program builds with no errors.
10.- Time to check hardware connections,
A.- I have done LCD the connections like this:
- P12 -> R/!W
- P12 -> RS
- P12 -> E
- P12 -> DB7
- P12 -> DB6
- P12 -> DB5
- P12 -> DB4
B.- For the rest of the connections:
C.- For the UART it is needed to put a wire as a loop, because one task of the Demo COM tasks (vAltStartComTestTasks) make the uC expects to receive characters sent, (explained in more detail in comtest.c)
11.- For my LCD I had to modify the auto-generated LCD_Character_Display.h:
(12.- And a little wink on main.c: )
By now, here are a picture and a video of the results:
Finally, attached the project for PSoC Creator.
Next steps will be checking the demo tasks and create new ones.
I hope you can find the post helpful.
freeRTOS.rar 11.6 MB