I’m currently trying to set up a template project for FreeRTOS with the Pico-SDK.
I found several guides online but I’m trying to make the code as portable between machines as possible since I expect several people to work on it. We’re currently already having a lot of trouble with this in other frameworks (such as PlatformIO), so I’m trying to eliminate as many sources of error as I can.
For this, I’m trying to pull the FreeRTOS kernel and the Pico-SDK from their respective Github repositories. I’ve set up a repository so you can browse through all the files. It’s called Lithimlin/freeRTOS-pico. (As a new user I can’t link it directly unfortunately.)
In the second commit (0df6afd), I’m getting an error from the Pico-SDK because some files are not being generated properly. In the next commit (7784687), I added a workaround to fix this, but I’m not sure if things are being built correctly as now I’m getting a lot of errors about unknown types and implicit function declarations that seem to be stemming from the RP2040 port of FreeRTOS. Perhaps my workaround didn’t fix as much as I’d have liked.
I didn’t yet, seeing as they use an outdated version of the FreeRTOS Kernel before the SMP was merged into the main branch. I don’t have a great overview of the feature difference before and after the merge, but I’ll try it out.
While this project does build correctly, it only does so when I go to the FreeRTOS repo (still can’t link in posts, sorry) and clone it. This makes sense since the demos use code in the Demo/Common directory there.
But this still doesn’t teach me a whole lot about how to make a new small project.
Not to be mean or anything, but I am using all three of those files in my repository that I mentioned in the original post.
I’ve since gotten it to work by finding another repository that I could use as a base. I suspect the issue is that the sample config provided for the RP2040 doesn’t actually work with it or requires some further configuration that is done somewhere in the demos that I don’t do but also can’t find.