mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-01-16 04:13:37 +00:00
53 lines
2.8 KiB
Markdown
53 lines
2.8 KiB
Markdown
|
# BTstack Port for STM32 F4 Discovery Board with USB Bluetooth Controller
|
||
|
|
||
|
This port uses the STM32 F4 Discovery Board with an USB Bluetooth Controller plugged into its USB UTG port.
|
||
|
See [blog post](https://bluekitchen-gmbh.com/btstack-stm32-usb-port/) for details.
|
||
|
|
||
|
STCubeMX was used to provide the HAL, initialize the device, and the Makefile. For easy development, Ozone project files are generated as well.
|
||
|
|
||
|
## Hardware
|
||
|
|
||
|
STM32 Development kit with USB OTG adapter and USB CSR8510 Bluetooth Controller
|
||
|
- [STM32 F4 Discovery Board](http://www.st.com/en/evaluation-tools/stm32f4discovery.html)
|
||
|
|
||
|
## Software
|
||
|
|
||
|
To build all examples, run make
|
||
|
|
||
|
$ make
|
||
|
|
||
|
All examples and the .jedbug Ozone project files are placed in the 'build' folder.
|
||
|
|
||
|
|
||
|
## Flash And Run The Examples
|
||
|
|
||
|
The Makefile builds different versions:
|
||
|
- example.elf: .elf file with all debug information
|
||
|
- example.bin: .bin file that can be used for flashing
|
||
|
|
||
|
There are different options to flash and debug the F4 Discovery board. The F4 Discovery boards comes with an on-board [ST-Link programmer and debugger](https://www.st.com/en/development-tools/st-link-v2.html). As an alternative, the ST-Link programmer can be replaced by an [SEGGER J-Link OB](https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/). Finally, the STM32 can be programmed with any ARM Cortex JTAG or SWD programmer via the SWD jumper.
|
||
|
|
||
|
## Run Example Project using Ozone
|
||
|
|
||
|
When using an external J-Link programmer or after installing J-Link OB on the F4 Discovery board, you can flash and debug using the cross-platform [SEGGER Ozone Debugger](https://www.segger.com/products/development-tools/ozone-j-link-debugger/). It is included in some J-Link programmers or can be used for free for evaluation usage.
|
||
|
|
||
|
Just start Ozone and open the .jdebug file in the build folder. When compiled with "ENABLE_SEGGER_RTT", the debug output shows up in the Terminal window of Ozone.
|
||
|
|
||
|
|
||
|
## Debug output
|
||
|
|
||
|
The debug output can send via SEGGER RTT.
|
||
|
|
||
|
In src/btstack_config.h resp. in example/btstack_config.h of the generated projects, additional debug information can be enabled by uncommenting ENABLE_LOG_INFO.
|
||
|
|
||
|
Also, the full packet log can be enabled in src/port.c resp. btstack/port/stm32-f4discovery-cc256x/src/port.c by uncommenting the hci_dump_init(..) line. The console output can then be converted into .pklg files for OS X PacketLogger or WireShark by running tool/create_packet_log.py
|
||
|
|
||
|
## GATT Database
|
||
|
In BTstack, the GATT Database is defined via the .gatt file in the example folder. The Makefile contains rules to update the .h file when the .gatt was modified.
|
||
|
|
||
|
|
||
|
## Maintainer Notes - Updating The Port
|
||
|
|
||
|
The Audio BSP is from the STM32F4Cube V1.16 firmware and not generated from STM32CubeMX. To update the HAL, run 'generate code' in CubeMX. After that, make sure to re-apply the patches to the UART and check if the hal config was changed.
|
||
|
|