- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can the WICED board can use 'Amazon FreeRTOS' in place of 'FreeRTOS'?
Solved! Go to Solution.
- Labels:
-
WICED Studio
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The actual Amazon FreeRTOS version is just the v10 kernel, which is pretty much drop in replaceable. You might want to compare the FreeRTOS build option header(s) to make sure they are the same.
Also there are some minor modifications done in v9 where the WICED developers added support for proper debugging. Check tasks.c and find the comment starting with WICED. These changes can be copied into v10.
I added a new RTOS folder, WICED/RTOS/FreeRTOS/ver10.0.1 and then modified the FreeRTOS.mk file to change the version variable to 10.0.1.
#VERSION := 9.0.0
VERSION := 10.0.1
For rest of the files in the Amazon FreeRTOS release you will need to port it. To ease this process, for the portable files i used the template functions as wrappers to access the underlying WICED SDK.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The actual Amazon FreeRTOS version is just the v10 kernel, which is pretty much drop in replaceable. You might want to compare the FreeRTOS build option header(s) to make sure they are the same.
Also there are some minor modifications done in v9 where the WICED developers added support for proper debugging. Check tasks.c and find the comment starting with WICED. These changes can be copied into v10.
I added a new RTOS folder, WICED/RTOS/FreeRTOS/ver10.0.1 and then modified the FreeRTOS.mk file to change the version variable to 10.0.1.
#VERSION := 9.0.0
VERSION := 10.0.1
For rest of the files in the Amazon FreeRTOS release you will need to port it. To ease this process, for the portable files i used the template functions as wrappers to access the underlying WICED SDK.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nice job...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is a race condition bug in vTaskSetTimeOutState() in the FreeRTOS-9.0.0 used by current wiced sdk.
Maybe cypress should upgrade the FreeRTOS version?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
nickmckendree_1688136 wrote:
I added a new RTOS folder, WICED/RTOS/FreeRTOS/ver10.0.1 and then modified the FreeRTOS.mk file to change the version variable to 10.0.1.
Do you hit any issue with v9.0.0?
What is the benefit of upgrading to 10.0.1?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No direct issues.
I too had a request to use Amazon FreeRTOS code base which requires v10 support.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have a follow up to this.
Feel free to tell me I'm real stupid. I'm okay with that.
The project requirement to have the IoTivity-Constrained library running on a WICED board.
https://github.com/iotivity/iotivity-constrained
So, now I need to make a port. I have to learn how to do that.
There's a current effort to port IoTivity-Constrained to Amazon FreeRTOS.
I'm thinking: If I can use Amazon FreeRTOS on the WICED board & the IoTivity-Constrained port runs on Amazon FreeRTOS, then I'm one step closer to my goal.
Does that sound reasonable?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How do you write a 'Make Target' for the Makefiles in /43xxx_Wi-Fi/WICED/RTOS/FreeRTOS?
There are three different Makefiles in the subdirectories of /43xxx_Wi-Fi/WICED/RTOS/FreeRTOS; "WICED.mk", "WWD.mk", and "FreeRTOS.mk".
All three of these Makefiles together only contain a grand total of four comments.
I do not understand how to use these and there are no tutorial videos (that I am aware of) detailing the process.
The only WICED WiFi experience I have is with the ww101 video series, whose Makefiles are entirely in the /43xxx_Wi-Fi/apps.
Would you be able to provide more explanation on how to build the C files in the /43xxx_Wi-Fi/WICED/RTOS/FreeRTOS?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quickprojects.testproject-QuicksilverEval-FreeRTOS-LwIP-debug download
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I created a 'Make Target' with that exact line and this was produced:
14:03:26 **** Build of configuration Default for project 43xxx_Wi-Fi ****
/home/jeremyhiggins/Documents/WICED-Studio-6.1/43xxx_Wi-Fi/make Quickprojects.testproject-QuicksilverEval-FreeRTOS-LwIP-debug download
MAKEFILE MAKECMDGOALS=Quickprojects.testproject-QuicksilverEval-FreeRTOS-LwIP-debug download OTA2_SUPPORT is disabled
Making config file for first time
./tools/makefiles/wiced_config.mk:256: platforms//.mk: No such file or directory
./tools/makefiles/wiced_config.mk:267: *** Unknown component: Quickprojects.testproject. Stop.
make: *** No rule to make target `build/Quickprojects.testproject-QuicksilverEval-FreeRTOS-LwIP-debug/config.mk', needed by `main_app'. Stop.
14:03:27 Build Finished (took 362ms)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Replace testproject with the name of your project. Also my make target is for a quicksilver eval board from Arrow which is why i have quickprojects. Something similar would be
Snip.scan-QuicksilverEval-FreeRTOS-LwIP-debug download
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please forgive my pestering, I am still quite confused.
I've started another thread asking my question in better detail.
For now, I need to learn simply how to build any FreeRTOS program in WICED Studio 6.2, even 9.0.0.
Once I have a grasp on that, I can figure out how to step it up to Amazon FreeRTOS 10.0.1.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've been trying to push ahead with this project since yesterday, but still no luck.
I did what you recommended and made a "ver10.0.1" folder, right next to the ver9.0.0 folder, then copied all of the Amazon FreeRTOS files (downloaded from here) to it.
I am using the simple "snip.scan" app, but compiling with the FreeRTOS library via the Make Target:
snip.scan-FreeROTS-LwIP-debug download run
This is in attempt to just get the Free RTOS 10.0.1 library to build.
When Line 35 in FreeRTOS.mk is set to "VERSION := 9.0.0", this Make Target compiles just fine.
When Line 35 in FreeRTOS.mk is set to "VERSION := 10.0.1", there are numerous missing components.
There appear to be many changes between FreeRTOS 9.0.0 (included with WICED Studio) and FreeRTOS 10.0.1 that need resolution.
I am listing here which errors I have been able to resolve:
- "croutine.c" and it's header no longer exist in Amazon FreeRTOS, so I copied over the older ones from 9.0.0.
- "StackMacros.h" has been renamed "stack_macros.h".
- Most of the header files, including "projdefs.h", "list.h", "portable.h", and many others were all moved into a new directory, "Private". I made copies out to their original location.
Even with all of these changes, the Build Console now barfs on WICED/RTOS/FreeRTOS/ver10.0.1/Source/portable/GCC/ARM_CRx_No_GIC/portASM.S, complaining that "Error: selected processor does not support `fmrxne R1,FPSCR' in ARM mode", among many, many other complaints.
I do not understand what these Errors are or how to resolve them. There seems to be quite a few extra steps to getting FreeRTOS 10.0.1 working in WICED Studio. Could you provide more detail in how you managed it?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You are correct. I forgot about the restructuring that Amazon did to FreeRTOS file locations in their release.
I went to freertos.org and downloaded the v10.0.1 kernel, which is the same as used in the Amazon release. The official kernel download has the files in default locations.
https://www.freertos.org/FreeRTOS-V10.html
https://sourceforge.net/projects/freertos/files/latest/download?source=files
Maybe this helps
Nick McKendree | Electrical Engineer II - Firmware
+1.704.752.6513 x1277
www.invue.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I discovered the exact same thing just before your post, ha.
So, I downloaded and installed the pure FreeRTOS 10.0.1 Kernel files, no Amazon stuff, to the WICED "ver10.0.1" folder and attempted the build again.
This time, it makes it to the same "Error: selected processor does not support..." issue without any additional file structure changes...so there's that.
Any ideas on how to address the "...selected processor..." issue? It appears to be a problem with the Assembly file located here:
/43xxx_Wi-Fi/WICED/RTOS/FreeRTOS/ver10.0.1/Source/portable/GCC/ARM_CRx_No_GIC/portASM.S
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is this related to your make target missing a platform entry?
snip.scan-FreeROTS-LwIP-debug download run
I thought there is suppose to be a platform entry as well such as
snip.scan-BCM943362WCD4-FreeRTOS-LwIP-debug download
or
Quickprojects.scan-QuicksilverEval-FreeRTOS-LwIP-debug download
The platform entry would match one of the folders within the platforms directory in the 43xxx_Wi-Fi SDK folder.
Nick McKendree | Electrical Engineer II - Firmware
+1.704.752.6513 x1277
www.invue.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oops, my bad. I am running the Make Target:
snip.scan-CYW943907AEVAL1F-FreeRTOS-LwIP-debug download run
This is on an Evaluation Board, the CYW943907AEVAL1F, found here.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
My target is a QuickSilver Eval board which uses the same processor.
I might have pulled the port code from v9 to v10. Honestly I cannot remember those details… It has been a crazy few weeks since I did the port.
Nick McKendree | Electrical Engineer II - Firmware
+1.704.752.6513 x1277
www.invue.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Any idea what the hardware differences are between the Quicksilver Eval board and the CYW943907AEVAL1F that I am using?
I can start digging up datasheets, but I wonder if you can shortcut that at all.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No clue.
Processor/wifi chipset is the same but I assume the GPIO is wired differently on the eval boards. I don’t think there is anything that would impact a FreeRTOS build as the CPU core is the same.
Nick McKendree | Electrical Engineer II - Firmware
+1.704.752.6513 x1277
www.invue.com