DAPLink
stm32-bootloader
DAPLink | stm32-bootloader | |
---|---|---|
5 | 2 | |
2,161 | 839 | |
1.5% | - | |
6.1 | 0.0 | |
5 days ago | over 1 year ago | |
C | C | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
DAPLink
-
At what abstraction level does the USB MSC class operate?
If you just want to transfer data without necessarily using a filesystem on your storage device, check out daplink. It implements a virtual FAT filesystem over USB so you can copy over firmware updates easily.
-
DAP-Link Confusion
From what I've found that DAP-Link is actually an ARM Mbed open source project to basically be similar to STM32 ST-Link: https://github.com/ARMmbed/DAPLink
-
What are some interesting uses of WebUSB you have come across?
It's used for flashing the BBC micro:bit in both Microsoft MakeCode (makecode.microbit.org) and the micro:bit Python Editor (python.microbit.org). MakeCode uses it for lots of other devices like MakeCode Arcade too https://arcade.makecode.com )
It's amazing for students to be able to quickly get a program they've written in their browser onto a device in their hands that can respond to and interact with the real world.
Also great because with MicroPython and the Python Editor you get a standalone Python environment including REPL that's completely isolated from the PC - schools love it because no matter what the students do they're not going to break the host PCs.
(The firmware that implements web USB on the micro:bit's USB interface chip is open source, DAPLink https://github.com/ARMmbed/DAPLink - poke
-
The design approach to the Zig programming language
https://github.com/ARMmbed/DAPLink/blob/main/source/daplink/...
Note the nested do { do { } while (); if (err) break;} while(); if (err) break;
Should that code be rewritten? Most certainly it should, and it should be given a proper Error type. However, when you are first porting it, you need to match semantics or you get a bunch of off-by-one, missed error, or missed end of stream bugs. And, as you point out, the Rust loop{} equivalents suck.
We've all written suboptimal code, and we all live in a suboptimal world. :)
-
How to flash an arm microcontroller on Linux?
I checked for DAPLink, but this seems to require keil, based on what I read in the readme.
stm32-bootloader
-
Writing bootloaders for microcontrollers
Here's a bootloader "library" that might be useful. You need to add your own code to get the actual firmware image from somewhere (UART, an SD card, or whatever), and then you just pass it off to the "library" for flashing.
-
Difference between a programmer and a USB-UART adapter
Yes, unless you have something like an STM32 with a built-in bootloader. This can be used to update the regular bootloader. For example, this bootloader is capable of jumping to the built-in bootloader from software (as opposed to the "regular" method of pulling certain pins high or low at reset to cause the processor to run the built-in bootloader from ROM rather than the regular bootloader from flash).
What are some alternatives?
pico-debug - virtual debug pod for RP2040 "Raspberry Pi Pico" with no added hardware
nanopb-example - This is a simple project created to test the capabilities of Google's protobuf C implementation, nanopb.
pyOCD - Open source Python library for programming and debugging Arm Cortex-M microcontrollers
Arduino_Core_STM32 - STM32 core support for Arduino
PlatformIO - Your Gateway to Embedded Software Development Excellence :alien:
flipperzero-firmware - Flipper Zero firmware source code
NXP-MCUBootUtility - 恩智浦全系列MCU安全启动一站式工具(研发模式),基于Python2.7.15+wxPython4.0.3
embox - Modular and configurable OS for embedded applications
remote-debugger
nuttx - Apache NuttX is a mature, real-time embedded operating system (RTOS)
libopencm3 - Open source ARM Cortex-M microcontroller library
IronOS - Open Source Soldering Iron firmware