So I've heard that there are two processors in the Edison, the Quark and the Atom. But when looking at the system diagrams they are shown as one.
Can martinkronberg, huzefa_nk or mcb1 clarify how the two work together?
So I've heard that there are two processors in the Edison, the Quark and the Atom. But when looking at the system diagrams they are shown as one.
Can martinkronberg, huzefa_nk or mcb1 clarify how the two work together?
Hello, the same question was asked here and explained by an Intel employee.
David, thanks for the answer but it raises more questions. The article says that the MCU is un-used but would be needed for things that were timing critical. But on the other hand, it is capable of PWM and I2C etc. So what drives those? When applications are uploaded via the Arduino IDE do those go to the MCU or to the Atom?
Good questions.
The linked answer contradicts itself a bit, first stating "learn about the difference between a CPU and an MCU" and than saying "In Edison the CPU is the Atom, it takes care of running the OS and managing the board's peripherals and all the processes running under the hood" However the MCU seems to be unused and can be programmed by using the MCU SDK.
I think Your question deserves an answer from someone working in Intel. (I found that forum question a while back, but don't even own Intel Edison.)
From what I understand the Atom CPU drives the pins when you upload it via Arduino IDE. The GPIO pins can also be programmed via MCU using the MCU SDK. This would help offload some of the stuff from main processor and also help in power saving (your CPU can sleep while your MCU is working on the GPIO pins). Both the dual core Atom CPU and the MCU are shown as single SoC in the figure that is shared above.
That reminds me a bit of the PRU in the BeagleBone.
Would a practical example of the use of the MRU be to leave it monitoring some quadrature encoders whilst the main CPU simply reads out the speed and position?
Yes it should be possible, the only thing is the same pin won't be accessible from both Atom and MCU at the same time. There is also ways to communicate between Atom and MCU, look at one of the example here
That's a great example and also explains everything I wanted to know, thanks huzefa_nk
Also a good tip in the article about how to start things as a service
The Yocto Project* Linux* uses systemd, so we need to create “service” file to add the script to auto start.
Create the file/lib/systemd/system/startup-script.service:
[Unit] Description=Startup User Script After=syslog.target [Service] ExecStart=/home/root/startup.sh [Install] WantedBy=multi-user.target
Add the service to auto start:
systemctl enable startup-script
Also a good tip in the article about how to start things as a service
The Yocto Project* Linux* uses systemd, so we need to create “service” file to add the script to auto start.
Create the file/lib/systemd/system/startup-script.service:
[Unit] Description=Startup User Script After=syslog.target [Service] ExecStart=/home/root/startup.sh [Install] WantedBy=multi-user.target
Add the service to auto start:
systemctl enable startup-script