Skip to content
  1. Dec 29, 2015
  2. Dec 27, 2015
    • Dimitry Kloper's avatar
      Change notation of PCH and PCL registers into PC0 and PC1 · 41bdcd16
      Dimitry Kloper authored
      This is for forthcoming Atmega2560 support. The Atmega2560 has 24-bit PC
      thus, PCH and PCL would become PCH, PCM and PCL (M for Middle). The problem
      that in this notation PCM is equivalent to former PCH. This makes compatable
      porting kind of difficult, at least for my taste.
      
      Instead PCH becomes PC0 and PCL becomes PC1 (think of the index as order of
      bytes pushed to stack when call is performed, PC0 as MSB goes first, PC1
      goes to stack second, and for 24-bit PC, PC2 as LDB goes last).
      41bdcd16
  3. Dec 26, 2015
    • Dimitry Kloper's avatar
      Introduce a new Kconfig variant for Atmega2560 and add some basic stuff · 0c1294d3
      Dimitry Kloper authored
      Modify Kconfig to be aware of the new chip.
      Add all the interrupt hanler constants and vectors where needed.
      Move contsatnts from generic to specific headers when needed.
      0c1294d3
    • Dimitry Kloper's avatar
      AVR: Fix interrupt bombing during a context switch · 0998876e
      Dimitry Kloper authored
      TCB_RESTORE macro has a problem when restoring Status Register
      and returning from the function (in up_fullcontextrestore()) as non-atomic action.
      
      If there is some frequently occurring interrupt, chances are that we will
      enter the interrupt handler just before ret is called.
      The handler may cause a context switch which, when unrolled, will
      execute up_fullcontextrestore() function that employs TCB_RESTORE.
      It will be interrupted again just before return, leaving part of context
      switch content un-popped again, etc... Thus, chances are that the stack will
      eventually blow.
      
      Note that this is not some edge condition fix. This bug was discovered when
      testing AVR with UART configured to work on 115200 baud rate.
      0998876e
  4. Dec 24, 2015
  5. Dec 23, 2015
  6. Dec 22, 2015