FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [June 2015 Threads] FreeRTOS demo running on dual core ARM Cortex-A9 (Zynq 7000)Posted by wonger on June 4, 2015 I got the FreeRTOS (v8.2.1) demo running on a Zynq 7000, which has dual core ARM Cortex-A9. I have different builds for running the demo on cpu0 or cpu1. What is the other CPU doing while the FreeRTOS demo is running? Can/should I put the other CPU in some sleep/inactive state? I didn't see any code in FreeRTOS dealing with this. How could I accomplish this? Thanks for your help.
FreeRTOS demo running on dual core ARM Cortex-A9 (Zynq 7000)Posted by richard_damon on June 5, 2015 When the Zynq boots up, at first only PS0 starts, and PS1 sits idle waiting to be told to start. If there is no code to start PS1, it will just stay idle (and consume very little power).
I don't think that FreeRTOS would support the Dual Processor as a SMPS, but you could load up a second program (with its own version of FreeRTOS) and run the system in a AMPS (asymetric) mode.
FreeRTOS demo running on dual core ARM Cortex-A9 (Zynq 7000)Posted by wonger on June 5, 2015 It turns out this is more a Zynq question than FreeRTOS question, so apologies for that. But for the record, if FreeRTOS is to run on CPU1, a dummy bare-metal program is still needed on CPU0 to setup CPU1 to run FreeRTOS. The dummy program can then put CPU0 to sleep after its work is done.
FreeRTOS demo running on dual core ARM Cortex-A9 (Zynq 7000)Posted by richard_damon on June 6, 2015 If you are only using 1 processor, why go to the effort to put a dummy program in processor 0 to start processor 1 only to then put processor 0 to sleep. My first guess is that this has a real chance of increasing your power consumption, at least by a bit.
FreeRTOS demo running on dual core ARM Cortex-A9 (Zynq 7000)Posted by wonger on June 7, 2015 I actually want to get Linux running on CPU0 and FreeRTOS on CPU1, but that config has been a real challenge to get working. Since the critical system functions are running in real-time on FreeRTOS, I thought I'd forgo Linux for now. And I was thinking getting FreeRTOS to work on CPU1 now would save effort later when Linux is introduced into the mix, but it turns out getting the dummy program on CPU0 to work with FreeRTOS on CPU1 is no walk in the park either, so much so that I think I might as well plow ahead with Linux on CPU0. Getting CPU0 to relinquish devices and set up interrupts correctly for CPU1 is a real bear, no matter what is running on CPU0.
I think what I would really want to do is run FreeRTOS on CPU0 with Linux performing the non-critical functions on CPU1, but there is absolutely no documentation on this config. There is at least some Xilinx documents for the other way (though woefully outdated) so I figure I have a better chance this way.
FreeRTOS demo running on dual core ARM Cortex-A9 (Zynq 7000)Posted by tlafleur on June 7, 2015 You might be better off using two
"chips", one for Linux and one for FreeRTOS with a communications path...
Would most likely be less work, more reliable, better supported....
FreeRTOS demo running on dual core ARM Cortex-A9 (Zynq 7000)Posted by wonger on June 7, 2015 I agree with you, but unfortunately, that ship has sailed.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|