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 wearables 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 Atmega 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 ModulaR bootloader. 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.
CortexProg can read data from a microcontroller, write data into it, program flash, provide live tracing for printf-style debugging (ZeroWireTrace), and even allow complete GDB debugging. The PC-side tool uses the HID transport to not need any drivers on any of the supported OSs: Linux, Windows, MacOS. The tool source is also available, so you can build yourself a copy for whatever other esoteric environments you might desire to run it on. CortexProg is the complete solution for all your ARM Cortex-M debuggng and programming needs.
Dmitry is currently running a crowdfunding campaign for the device on Kickstarter. Backing the crowdfunding campaign at the $25 level will get you a CortexProg board. It is estimated the boards will be ready for shipment starting at November.