====STM32Cube/duino===
ST micro supply tools to target STM32 devices, they include
code generation, an IDE and Arduino platform support.
* STMCubeMX is a visualisation tool and start-up code generator.
* STMCubeIDE is the development environment.
* STM32duino is the Arduino development platform support.
===STM32CubeMX===
This is great to visualise the layout of a STM32 development board and
see the pin usage and the clock tree.
This standalone version of this tool supports various IDEs and
GNU make.
When using a GNU make target, it produces a working directory
that builds first time with `arm-none-eabi-gcc' and it can be
used as a basis for a project.
The license of the files created is not present and therefore
defaults to what ST call "AS-IS".
Making a target is the only way to access platform specific files
as they appear to be archived otherwise.
ST have a habit of using ex: for example (eg.) in comments, which
annoys the VIM editor somewhat.
https://www.st.com/en/development-tools/stm32cubemx.html
On windows this will install in
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeMX
===STM32CubeIDE===
The development environment also embeds the MX tool above and can support various other tools.
This STM32 IDE produces a proprietary project and there is no access to platform
specific files until a project is created. A lot of files are generated for
each project so this is perhaps more suitable for larger flash devices.
Not sure if this can be recommended unless you like IDEs.
https://www.st.com/en/development-tools/stm32cubeide.html
On windows this will install in
C:\ST\STM32CubeIDE_1.11.0
===STM32duino===
STM32duino provides `wiring' support for the STM32 and STM8 microcontrollers within the
Arduino Processing IDE.
This is the only place we can find platform specific files in their raw form
for reference or usage.
This may be used to build a standalone application with or without Arduino support
on any platform we choose to develop on which has access the the ARM compiler.
This is preferred way to develop for STM32 on a Raspberry Pi, for example.
https://github.com/stm32duino
==Install==
cd /opt
git clone https://github.com/stm32duino/Arduino_Core_STM32
===Board support packages===
The board support packages exist for various ST development boards and ST components.
mkdir -p /opt/BSP
==LAN8742 Ethernet PHY==
cd /opt/BSP
git clone https://github.com/STMicroelectronics/stm32-lan8742
==STM32H745I DISCOVERY==
#! /bin/sh
mkdir -p /opt/BSP && cd /opt/BSP
git clone https://github.com/STMicroelectronics/stm32h745i-disco-bsp
git clone https://github.com/STMicroelectronics/stm32-bsp-common
git clone https://github.com/STMicroelectronics/stm32-ft5336
git clone https://github.com/STMicroelectronics/stm32-mt25tl01g
git clone https://github.com/STMicroelectronics/stm32-mt48lc4m32b2
git clone https://github.com/STMicroelectronics/stm32-rk043fn48h
git clone https://github.com/STMicroelectronics/stm32-wm8994
===TinyUSB===
cd /opt
git clone https://github.com/hathach/tinyusb
===Resources===
[[https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/8742a.pdf|LAN8742 data-sheet]]