HTM(a)A Arch Section Group Work

Embedded Programming

The group assignment was: to compare the performance and development workflows for other architectures.

Our group used 2 main architectures: ARM (Gil) and ARM (everyone else).
This was great because we could then compare the two different processes.

The AVR chip used was the ATtiny 1614, and the the ARM chip used was the SAMD11C.

After having a group discussion, we outlined the following differences:
-For the ARM chip, we have to use the Atmel-ICE to load a bootloader onto the chip to allow the user to program without the programmer. This is done once, and then we can program the ARM chip however manyt times in the future. This occupies 4kB of the 16kB of memory on the chip.
For the 1-series AVR chip, we have to have a serial adapter to connect RX and TX to the UPDI pin. Other than that, no bootloader is required.
-For ARM chips, the code is flashed on using EDBG and OpenOCD for debugging and is required for programming. On the AVR chips, pyupdi is used for programming devices with UPDI interface.
-In the Arduino IDE, the ARM chips are natively there and only need to be installed. The AVR chipset had to be downloaded externally and then installed.
-Uploading code from the Arduino IDE is as simple as clicking Upload for the ARM chip. With the AVR chips, the .hex file is flashed onto the chip using pyupdi in the command line.

All in all, we found that the ARM chip is more difficult to setup initially, but is probably easier to use in the long term.