# Debugger / Compiler

## OpenOCD

* Installation

```
$ sudo apt update
$ sudo apt install openocd
```

*   You can refer to directory to get some configuration file for debugger

    ```
    $ cd /usr/local/share/openocd/scripts/board
    $ cat stm32h7x3i_eval.cfg
    ```
* You should see something like this:

```
source [find interface/stlink.cfg]

transport select hla_swd

source [find target/stm32h7x_dual_bank.cfg]

reset_config srst_only
```

## Compiler's option

* When we are linking libary for stm32 target, we may need to set the flag by ourselves, we can refer Makefile generated by CubeMX
* For example

```
-mthumb -mabi=aapcs
## For cortex M4
-mcpu=cortex-m4
-mfpu=fpv4-sp-d16
-mfloat-abi=hard

## For cortex M7
-mcpu=cortex-m7
-mfpu=fpv5-sp-d16
-mfloat-abi=hard
```

## References

1. [https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html)
