Skip to content
README.md 2.43 KiB
Newer Older
Marcelo Salazar's avatar
Marcelo Salazar committed
# Reference MCU-Driver-HAL driver implementation for Arm platforms
Hugues Kamba-Mpiana's avatar
Hugues Kamba-Mpiana committed

Marcelo Salazar's avatar
Marcelo Salazar committed
This repository contains the driver implementation for Arm hardware platforms based on [MCU-Driver-HAL](./<HostingLocation>/mcu-driver-hal/).
Wilfried Chauveau's avatar
Wilfried Chauveau committed

## Building

```sh
# Configure
cmake -S . -B build --toolchain=mcu-driver-hal/tools/cmake/toolchain/toolchain-{armclang|arm-none-eabi-gcc}.cmake -DCMAKE_SYSTEM_PROCESSOR=cortex-m55
Wilfried Chauveau's avatar
Wilfried Chauveau committed
# Build
cmake --build build -j
```

You may want to add optional arguments to those lines to customize your build.
For example, the configure stage accepts:
Wilfried Chauveau's avatar
Wilfried Chauveau committed

Hugues Kamba Mpiana's avatar
Hugues Kamba Mpiana committed
- `-DCMAKE_BUILD_TYPE=Release` will build your applications optimised for size. See
  [here](./mcu-driver-hal/tools/cmake/profiles) for more details.
Wilfried Chauveau's avatar
Wilfried Chauveau committed
- `-DCMAKE_VERBOSE_MAKEFILE=ON` will make your build tool more verbose, typically printing the
  command lines invoking the compiler.
Hugues Kamba Mpiana's avatar
Hugues Kamba Mpiana committed
- `-DCMAKE_EXPORT_COMPILE_COMMANDS=1` generates a build database that can be used by IDEs to provide
Wilfried Chauveau's avatar
Wilfried Chauveau committed
  better completion.
- `-DVARIANT=FVP` will choose an FVP build variant instead the default MPS3 FPGA.
- `-DHTRUN_ARGUMENTS="--micro=FVP_CS300_U55;--fm=MPS3"` configures `ctest` and `htrun` to work with the FVP via the `mbed-fastmodel-agent` (if installed).
Wilfried Chauveau's avatar
Wilfried Chauveau committed

The build stage can be passed a specific target name after a `--` to build only that target or `clean` to remove the build products (objects and executables). E.g.
Wilfried Chauveau's avatar
Wilfried Chauveau committed

```sh
cmake --build build -j -- clean
Hugues Kamba Mpiana's avatar
Hugues Kamba Mpiana committed
cmake --build build -j -- mdh-arm-hal-example-serial
Wilfried Chauveau's avatar
Wilfried Chauveau committed
```

# Directory Structure

The mcu-driver-reference-platforms-for-arm repository is structured as follows:

| Folders                | Contents                                                                           |
| ---------------------- | ---------------------------------------------------------------------------------- |
| `components/`          | Contains all external components that this repository depends on, including CMSIS, MCU-Driver-HAL and Native drivers |
| `docs/`                | Contains Documentation (building, running, debugging, etc.)                        |
| `drivers/`             | Contains glue layer that binds Native drivers (under `components/`) with MCU-Driver-HAL vtable interface |
| `examples`             | Contains examples                                                                  |
| `platforms/`           | Contains support for individual platforms                     |
| `tests/`               | Contains tests (Greentea)                                                         |