The ARM Cortex family of 32-bit RISC-based processors has emerged as the leading processor core in embedded designs due to its efficient architecture, robust and scalable instruction set, and extensive base of development tools and software. Cortex-M MCUs has been one of the most used microcontrollers for embedded systems and they have seen applications in various hardware products from wearable’s to IoT applications. The ARM Cortex-M series offers a range of scalable and compatible core options, from the ultra-low-power Cortex-M0+ to the top-of-the-range, high-performance Cortex-M7.
One significant advantage of the Cortex-M series over the other 32-bit microcontrollers or the 8-bit microcontroller like the At mega 328P is it’s low cost and low power requirement. Despite their awesomeness, they still face some challenges especially in the aspect of development tools. Developers and engineers tend to use different tools for microcontroller flashing and also debugging which not only increase the cost of development but also waste valuable time.
Using different ARM chips from some different manufacturers, users will tend to have different programmers because of the different programming by manufactures. Dmitry Grinberg wants to solve this with the CortexProg, a universal programmer of the Arm Cortex-M series. CortexProg is meant to be a debugger for all Cortex-M microcontrollers. When users are looking into the possibility of reverse-engineering a device, creating new designs, debugging embedded and cortex-m microcontrollers, programming individual boards or on a production line, and other makers exploits, CortexProg might just come in very handy unlike using several tools for those purposes.The quest of building the CortexProg is not something that just started from this year according to Dmitry. Dmitry wanted to create a generic Cortex-M debugger out of everyday components a maker can find around. The first prototype was based around an AVR ATTiny85 using the Modula R boot loader. It provided support for an HID-based communications protocol to a PC and firmware updates. It could only debug 3.3V targets, and rather slowly at that.
The first prototype based around a V-USB setup is actually open-source for anyone interested in building one. Of course, don’t expect the same performance as the current version and it comes with an upload speed of about 800 bytes per second.