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.
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?
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.
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