Go to file
Richard Meadows 0b28232f72 [efm32] Assume Device Identification (DI) version 1 if we don't know the OUI (#402)
* [efm32] Assume Device Identification (DI) version 1 if we don't know the OUI

Silabs are using some additional OUIs we don't know about. Reported in issue #389
These should use a DI version 1 layout, so assume version 1 layout for OUIs we don't
know. However do print a notice about this on DEBUG() as suggested by @UweBonnes

The IDCODE value is sufficient to make a positive identification of an EFM32 device.
See AN0062 Section 2.2. Therefore accepting any OUI is reasonable behaviour.
Additionally the part familiy is checked, and the target rejected if not in the
`efm32_devices` table. This commit makes that rejection explicit, although it does
not change the logical behaviour here.

Note that the important registers (part number, part family, flash size) are at the
same addresses in both layouts anyhow. Currently only `efm32_cmd_serial` and
`efm32_cmd_efm_info` functions use registers that differ between DI versions.

* [efm32] tidy format warning about portability UB

* [efm32] Simplify OUI checking

* Only read the OUI once
* Accept the device even if the OU is unknown, as silabs have been using
  a variety of OUIs
* Perform fewer register reads before checking the device family is valid
2019-01-16 09:58:59 +13:00
driver Add udev rules 2019-01-07 13:32:58 +13:00
libopencm3@db7a8d71ca Update libopencm3 pointer 2017-09-25 10:04:05 +13:00
scripts scripts/stm32_mem: Fix issue with scanning USB DFU devices 2018-09-17 14:36:28 +12:00
src [efm32] Assume Device Identification (DI) version 1 if we don't know the OUI (#402) 2019-01-16 09:58:59 +13:00
upgrade upgrade: Build with -mno-ms-bitfields to fix struct packing on Windows. 2015-03-10 21:58:37 -07:00
.gitignore Use git describe for version in generated header file. 2015-04-03 20:21:33 -07:00
.gitmodules Changed libopencm3 url to https. 2012-10-24 07:34:30 +13:00
.travis.yml libftdi: Allow to compile with mingw and cygwin and use recent libftdi1. 2019-01-07 15:31:57 +01:00
COPYING Added README and COPYING 2011-02-07 11:01:10 +13:00
HACKING Replace README and HACKING with references to the Github wiki. 2014-08-01 21:00:25 +12:00
Makefile Quieten build system. 2015-03-07 11:03:50 -08:00
README.md Update README 2016-12-04 10:47:01 +13:00
UsingSWO swlink: Enable UART2 for SWO. 2018-10-03 15:19:33 -07:00

README.md

Black Magic Probe

Build Status Gitter Donate Kickstarter

Firmware for the Black Magic Debug Probe.

The Black Magic Probe is a modern, in-application debugging tool for embedded microprocessors. It allows you see what is going on 'inside' an application running on an embedded microprocessor while it executes. It is able to control and examine the state of the target microprocessor using a JTAG or Serial Wire Debugging (SWD) port and on-chip debug logic provided by the microprocessor. The probe connects to a host computer using a standard USB interface. The user is able to control exactly what happens using the GNU source level debugging software, GDB.

See online documentation at https://github.com/blacksphere/blackmagic/wiki

Binaries from the latest automated build are at http://builds.blacksphere.co.nz/blackmagic