USB CDC Bootloader for ATxmega128A1U

1 post / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have an application that requires a bootloader to run using a Modbus RTU interface for the ATxmega128A1U.  I have been working on it for a couple of weeks with much progress but I am having a problem that I have not been able to resolve.

 

My bootloader consists of the ASF USB driver configured for CDC communication and a custom Modbus slave driver.  The total driver occupies about 14kBytes of space that I have split between the table and boot sections of the MCU between byte addresses 0x1E000 to 0x22000.  I have relocated the interrupt vectors to 0x20000 and configured reset to occur to the boot section by programming the appropriate fuse.  Through debugging, I can see that the reset and interrupts are happening as I would expect with the exception that the ASF USB driver seems to have a problem working from the boot / table sections.  I am assuming that it is likely a linker option or a define that I might be missing.

 

I can see that one of the USB interrupts just stops working.

 

If I test my driver by placing it in the application section of the flash, all seems to work as expected.

 

Does anyone out there have an example where they are using the USB driver split between the table and boot sections of flash?