boards/arm/mps2/doc/mps2_armv6m.rst
.. _mps2_armv6m_board:
ARM V2M MPS2 Armv6-m (AN383) ############################
Overview
Currently mps2/an383 is the only mps2 Armv6-m based board target supported in Zephyr.
It provides support for the ARM Cortex-M0+ (AN383) CPU and the following devices:
.. image:: img/mps2.jpg :align: center :alt: ARM V2M MPS2
In addition to enabling actual hardware usage, this board target can
also use FVP_. to emulate the AN383 platform running on the MPS2+.
More information about the board can be found at the V2M MPS2 Website_.
The Application Note AN383 can be found at Application Note AN383_.
.. note:: This board target makes no claims about its suitability for use with actual MPS2 hardware systems using AN383, or any other hardware system. It has been tested on FVP.
Hardware
ARM V2M MPS2 AN383 provides the following hardware components:
ARM Cortex-M0+
ARM IoT Subsystem for Cortex-M
Form factor: 140x120cm
ZBTSRAM: 8MB single cycle SRAM, 16MB PSRAM
Video: QSVGA touch screen panel, 4bit RGB VGA connector
Audio: Audio Codec
Debug:
Expansion
.. note:: 4 MB of flash memory (in ZBTSRAM 1, starting at address 0x00400000) and 4 MB of RAM (in ZBTSRAM 2 & 3, starting at address 0x20000000) are available.
mps2 for details.MPS2 is a Cortex-M0+ based SoC and has 6 fixed exceptions and 32 IRQs.
A Cortex-M0+ board uses vectored exceptions. This means each exception calls a handler directly from the vector table.
Handlers are provided for exceptions 1-3, 11, and 14-15. The table here MPS2 is a Cortex-M0+ based SoC and has 15 fixed exceptions and 45 IRQs.
+------+------------+----------------+--------------------------+ | Exc# | Name | Remarks | Used by Zephyr Kernel | +======+============+================+==========================+ | 1 | Reset | | system initialization | +------+------------+----------------+--------------------------+ | 2 | NMI | | system fatal error | +------+------------+----------------+--------------------------+ | 3 | Hard fault | | system fatal error | +------+------------+----------------+--------------------------+ | 11 | SVC | | system calls, kernel | | | | | run-time exceptions, | | | | | and IRQ offloading | +------+------------+----------------+--------------------------+ | 14 | PendSV | | context switch | +------+------------+----------------+--------------------------+ | 15 | SYSTICK | optional | system clock | +------+------------+----------------+--------------------------+
The ARM V2M MPS2 Board has 4 GPIO controllers. These controllers are responsible for pin muxing, input/output, pull-up, etc.
All GPIO controller pins are exposed via the following sequence of pin numbers:
Mapping from the ARM MPS2 Board pins to GPIO controllers:
.. rst-class:: rst-columns
Peripheral Mapping:
.. rst-class:: rst-columns
For more details please refer to MPS2 Technical Reference Manual (TRM)_.
The V2M MPS2 main clock is 24 MHz.
The V2M MPS2 processor has five UARTs. Both the UARTs have only two wires for RX/TX and no flow control (CTS/RTS) or FIFO. The Zephyr console output, by default, is utilizing UART0.
Programming and Debugging
V2M MPS2 provides:
Here is an example for the :zephyr:code-sample:hello_world application.
.. zephyr-app-commands:: :zephyr-app: samples/hello_world :board: mps2/an383 :goals: build
Connect the V2M MPS2 to your host computer using the USB port and you should see a USB connection which exposes a Mass Storage and a USB Serial Port. Copy the generated zephyr.bin in the exposed drive. Reset the board and you should be able to see on the corresponding Serial Port the following message:
.. code-block:: console
Hello World! arm
Here is the same example for running with FVP.
Set the ARMFVP_BIN_PATH environment variable to the location of your FVP you have downloaded from here <FVP_>_
.. code-block:: console
export ARMFVP_BIN_PATH=/home/../FVP_MPS2/
Then build with the same command you would use normally, and run with west build -t run_armfvp.
.. _V2M MPS2 Website: https://developer.mbed.org/platforms/ARM-MPS2/
.. _MPS2 Technical Reference Manual (TRM): https://developer.arm.com/documentation/100112/0200/
.. _Application Note AN383: https://documentation-service.arm.com/static/5ed1051dca06a95ce53f88a1