DAPLink
NXP-MCUBootUtility
DAPLink | NXP-MCUBootUtility | |
---|---|---|
5 | 2 | |
2,161 | 94 | |
1.5% | - | |
6.1 | 6.1 | |
3 days ago | 8 days ago | |
C | Python | |
Apache License 2.0 | Apache License 2.0 |
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.
NXP-MCUBootUtility
-
Reverse Engineering the Stadia Controller update process (and possibly firmware too)
NXP Flash Utility (third party): https://github.com/JayHeng/NXP-MCUBootUtility - seems to support our MCU
-
How to flash an arm microcontroller on Linux?
If cost is an issue, that MCU has a ROM bootloader and you can use this free utility to flash it over UART and USB: https://github.com/JayHeng/NXP-MCUBootUtility
What are some alternatives?
pico-debug - virtual debug pod for RP2040 "Raspberry Pi Pico" with no added hardware
pyOCD - Open source Python library for programming and debugging Arm Cortex-M microcontrollers
StadiaController - Stadia Controller tools for reverse engineering and experimenting.
PlatformIO - Your Gateway to Embedded Software Development Excellence :alien:
remote-debugger
libopencm3 - Open source ARM Cortex-M microcontroller library
ig-debugheap - Debug heap useful for tracking down memory errors.
bazel-embedded - Tools for embedded/bare-metal development using bazel
cosmicOS-core - Simple to use HAL for ARM Cortex-M devices
stm32-bootloader - Customizable Bootloader for STM32 microcontrollers. This example demonstrates how to perform in-application-programming of a firmware located on an external SD card with FAT32 file system.
webminidisc - Upload your Music to NetMD and HiMD MiniDisc devices thanks to WebUSB and WASM