Development for ARM processors with Arduino IDE

January 19, 2016

Lang: cs en de es

There are many development boards on the market. There are also boards with microcontrollers that have an ARM core. Even for these boards it is difficult to develop in Wiring using ArduinoIDE. In this article, you will learn how to use Arduino development resources to develop a project for boards with ARM microcontrollers.

Atmel's AVR series microprocessors or other 8-bit processors such as PIC are well known, especially among DIYers. However, they are gradually moving to more modern and powerful microprocessors, often with a ARM core.

ARM processors are manufactured by various companies. These are SoCs (system on chip) where the microprocessor core is manufactured under license from ARM Holdings. Each company then produces several lines of processors with different versions of the ARM core. There are other peripherals on one chip in addition to the CPU. For the most advanced chips, this can be the graphics processor, and the entire operating system usually runs on such chips - GNU/Linux.

As a more powerful replacement for the ATmega328, the weakest processors with ARM cores will suffice abundantly.

A good choice are, for example, microprocessors from STMicroelectronics.

Development board with STM32F103C8T6 microprocessor:
ARM STM32F103C8T6

Thanks to the large selection of ARM core processors, you can choose the appropriate types according to your needs, whether the criteria are price, performance or low power consumption.

Development board with a more powerful microprocessor and multiple ARM STM32F103ZET6 outputs:
ARM STM32F103ZET6

Microprocessor programs are often written in C. The program must then be compiled by a compiler. Among compilers, the high-end free compiler GNU GCC can be considered the standard. A device called a programmer is used to load the program into the microprocessor. Programmer:
ST LINK V2.jpg

Arduino

The easiest way to get started with ARM microprocessors would be to choose a suitable development board and program it Arduino style. That is, in C using the Wiring library and load the program into the processor over the serial link - this function is provided by the bootloader, which must already be loaded into the microprocessor.

An important requirement is that the board already has a bootloader in it, because it allows you to load a program into it in a simple way.

Development environment

For those who don't want to compile anything, everything is already prepared. You can use the standard Arduino IDE (1.6.5) and install support for ARM.
In Arduino IDE in boards manager you need to install Arduino SAM Board, which contains support for 32-bit ARM processors with CORTEX-M3 core. (Primarily this is for Arduino due - it contains the necessary compiler)

arm-arduino-boards-manager-screen.png

You also need to download files for STM32 and upload the extracted archive to the hardware directory in the Arduino IDE directory.

Then just select the board/processor you are using in the Arduino IDE.

screen arm arduino

Hello Word

For the first test I used a development board,u on which the processor is an ARM STM32F103C8T6 in which the bootloader has already been loaded.

The wires from the USB-UART converter are connected to pins RX1 and TX1. After a reset, the bootloader starts and waits indefinitely for the program to load. Once programmed, the program starts directly. If the program is to be run after reset and not the bootloader, you need to disconnect the jumpers between BT0-3V3 and BT1-GND. The connection to JP4-GND remains.

Flashing the diode is then easy for an experienced developer:
ARM STM32F103C8T6 connected

More detailed documentation Arduino STM32.

Articles on a similar topic

Analysis of assignment and pricing of software project development
Python program to control Docker using the API
How to use MailCatcher to test emails
Python OpenAI API
Creating a WebSocket web application and setting up a proxy
Project management: agile software development
How to run old PHP applications
What a good programmer should know
Rust programming language
NodeJS: development, server configuration
Nette security bug CVE-2020-15227
REST API: platform API
Custom web and mail hosting with ISP Config software
Programming in SQL: PostgreSQL, MySQL/MariaDB
HTTPS: secure web
NoSQL database Mongo DB
Connecting to Microsoft SQL Server from Linux
What is the job description of a programmer
Python application localization
Which mail and web hosting to choose
Digispark - Program Atmel ATtiny microcontroller with Arduino IDE
How to program the ESP8266 WiFi processor
Open smartphone with Linux - Openmoko Neo FreeRunner

Newsletter

If you are interested in receiving occasional news by email.
You can register by filling in your email news subscription.


+