Open bombasticbob opened 9 years ago
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 32A4U and 64A4U have 4K RAM 128A4U has 8K RAM
128A4U has 8K boot. others have 4K boot 128A4U has 512 byte pages; others have 256 byte
information about the A1U series
64A1U has 4K boot; 128A1U has 8K boot 64A1U has 4K RAM; 128A1U has 8K RAM
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