Comments (8)
Yeah, I started work on a separate repo for this :) https://github.com/arturo182/tinyuf2
from tinyusb.
Thought while it's on my mind.
It's probably difficult to make this portable, but I think a UF2 example should include a fake "bootloader" that prints out the address + binary contents, and then jumps to a fake application in another part of flash that does nothing. There would be a linker script for bootloader and application.
This would require flash write/erase code, changing the vector table location (because bootloader and application would have a set of vectors), and jumping to reset in the board support package.
from tinyusb.
Finally pushed my initial implementation of the uf2 bootloader, tested and working on my MIMXRT1011 Feather, needs lots of work but the basic bring up is there: https://github.com/arturo182/tinyusb/tree/uf2
The FAT code is based on the samd uf2 bootloader code.
I tried to make the bootloader itself as platform-agnostic as possible, the flashing functionality is all in the bsp. This is so-so because a lot of it is platform-specific so all boards that use the imxrt family should share it.
It feels like it might be out of scope for tinyusb and maybe it would be better to start the project as a separate codebase and use tinyusb as a module in there but as a proof of concept, it was easier to make it a tinyusb example and take advantage of the build system :)
Lots of work to be done, I also want to implement the uf2 hid interface as the msc is not always the best way to mass-flash a lot of boards.
from tinyusb.
Ping @tannewt cause I know you've been wanting to check this out 😅
from tinyusb.
Woohoo! Thank you! 🎉 I think we could make a TinyUF2 repo for it with TinyUSB as a submodule. I'm working on logic analyzer code in the same way.
from tinyusb.
Sorry, I am late to the party, yeah, full feature UF2 is too much for this repo, it should be best as a separated project. All TinyUSB's example is meant to be simple and proof of concept.
from tinyusb.
Yeah, I started work on a separate repo for this :) https://github.com/arturo182/tinyuf2
superb !!!
from tinyusb.
closed since there is a dedicated repo for this purpose already.
from tinyusb.
Related Issues (20)
- Add hook to allow for external host class drivers HOT 2
- OHCI: MMIO coherency/sync issue
- audio.h: error: ISO C restricts enumerator values to range of 'int' before C23 [-Werror=pedantic] HOT 4
- tud_task() hangs when there are no more messages in the buffer due to the timeout_ms value is set to UINT32_MAX. It should be 0, right? HOT 4
- Renesas RZ/T Support
- Consider adding preprocessor switch to disable automatic rp2040 binary declarations
- tud_umount_cb not called on Raspberry Pi Pico W HOT 1
- It can't work on STM32G0B1CBT6 with FreeRTOS. Please help. HOT 2
- Thoughts about increasing CDC transfer speed.
- Stack overflow with the new NCM driver HOT 12
- USBTMC for the host
- FREERTOS thread create in different order cause memory leak. HOT 1
- USBTMC: EP not busy should not bail from tud_usbtmc_transmit_notification_data
- HID descriptor
- tud_audio_write()/tud_audio_read() from ISR when using RTOS
- Wrong data toggle and missing handshake HOT 1
- audio-4-channel-mic-96kHz
- MSC inquery request causes USBD Bus Reset HOT 3
- tud_audio_read() doesn't return the right value after merge #2739 HOT 8
- Updates for pico-sdk 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tinyusb.