-
Notifications
You must be signed in to change notification settings - Fork 17
port caterina bootloader (and necessary core support) for USB on xmega #23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
need to complete USB support first. See CDC.cpp, 'CDC_Setup()' for how the boot sequence is detected. need to implement this properly for XMega or you won't be able to flash without manual reset. |
The 128A1U has a large enough 'bootloader' area (8k) in NVRAM to accomodate the additional code that might be necessary to support this; however, other devices may not have enough bootloader space. Biggest problems are that the xmega devices have much larger register maps and interrupt vector tables, as compared to the ATMega devices. So the code is bigger, because the instructions are longer, and the IVT size affects the overall code size. |
xmega should be able to use reset flags (soft boot or watchdog, whichever) to determine whether or not it should invoke the catarina bootloader's USB or not. this will avoid using a magic memory spot with some kind of magic value in it, which is what the ATMega implementation is doing. |
information about the A4U series: 16A4U has 2k RAM 128A4U has 8K boot. others have 4K boot information about the A1U series 64A1U has 4K boot; 128A1U has 8K boot |
What is the status of this ? |
still as it's been for a while, unfortunately. I need time+money+hardware all at the same time before I can work on this. But thanks for the reminder, as I have a board design I want to get built using the xmegaA4U . |
work in progress, getting the USB code working. 'caterina' bootloader is apparently used by the Leonardo. To support identical functionality, port the caterina bootloader. need to determine if it can handle flash sizes > 64k
The text was updated successfully, but these errors were encountered: