1. 14 Jul, 2018 1 commit
    • Robert Sprowson's avatar
      Close the va_list · 7c24dce3
      Robert Sprowson authored
      Add missing va_end() to debug code.
      Found by cppcheck static analysis.
      Tagged as RTSupport-0_17-1 since our va_end is an empty macro.
      7c24dce3
  2. 15 Jun, 2016 1 commit
    • Jeffrey Lee's avatar
      Clear the exclusive monitor when returning to pre-empted code · 70ed3564
      Jeffrey Lee authored
      Detail:
        s/scheduler - Add a second variant of the PreEmptionRecovery routine, which issues a CLREX on entry. Use a workspace variable to select which routine is required (for supporting multiple CPU architectures at runtime)
        h/scheduler - Declare new symbols exported by s/scheduler
        c/module - Initialise PreEmptionRecoveryPtr with the correct value, depending on whether the CPU supports LDREX/STREX or not
      Admin:
        Tested on Raspberry Pi
      
      
      Version 0.17. Tagged as 'RTSupport-0_17'
      70ed3564
  3. 02 May, 2016 1 commit
  4. 05 Apr, 2016 1 commit
    • Jeffrey Lee's avatar
      Listen out for SeriousErrorV_Recover · 7e48c031
      Jeffrey Lee authored
      Detail:
        c/module, cmhg/RTSupportHdr, h/global, s/scheduler - Add a handler for SeriousErrorV, so we can be notified when the privileged mode stacks are being flattened. This is safer than watching out for serious errors to arrive via ErrorV, although the ErrorV approach is still necessary in order to deal with old kernels or serious error generators that don't currently use SeriousErrorV (e.g. FPASC/VFPSupport)
      Admin:
        Tested on Raspberry Pi
      
      
      Version 0.15. Tagged as 'RTSupport-0_15'
      7e48c031
  5. 23 Oct, 2015 1 commit
    • Robert Sprowson's avatar
      Leave A bit set in SPSR when creating a thread · a7634fdf
      Robert Sprowson authored
      ARM have started using the extension bits (8 to 15) of the PSR, but have given bit 8 a safe default of being set (mask asynchronous aborts).
      Since the kernel doesn't handle these RTSupport will create the thread state with A=1 as it would be at reset.
      
      Version 0.14. Tagged as 'RTSupport-0_14'
      a7634fdf
  6. 07 Oct, 2015 1 commit
    • Jeffrey Lee's avatar
      Cache translated error messages · 24de0af9
      Jeffrey Lee authored
      Detail:
        c/module - Make use of mess.c's error caching facility to avoid having to call MessageTrans when returning errors. Should give a bit of a performance boost when dealing with common errors (e.g. "Cannot yield in this context")
      Admin:
        Tested on Raspberry Pi
      
      
      Version 0.13. Tagged as 'RTSupport-0_13'
      24de0af9
  7. 04 Aug, 2015 1 commit
    • Robert Sprowson's avatar
      Simplify standalone build · 80aba0da
      Robert Sprowson authored
      Lump the Priorities in with the Messages using INSTRES_FILES.
      Remame CMHG file to match the default.
      Delete double message file handling code.
      Build, but not tested.
      
      Version 0.12. Tagged as 'RTSupport-0_12'
      80aba0da
  8. 03 Aug, 2015 1 commit
    • Robert Sprowson's avatar
      Simplify standalone build · 94b46a19
      Robert Sprowson authored
      Lump the Priorities in with the Messages using INSTRES_FILES.
      Remame CMHG file to match the default.
      Delete double message file handling code.
      Build, but not tested.
      
      Version 0.12. Tagged as 'RTSupport-0_12'
      94b46a19
  9. 20 Aug, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix building of disc image softload version · 403daf4f
      Jeffrey Lee authored
      Detail:
        s/scheduler - ADR range issues strike again; now use ADRL unconditionally instead of only in debug builds.
      Admin:
        Builds but untested
      
      
      Version 0.11. Tagged as 'RTSupport-0_11'
      403daf4f
  10. 03 Jun, 2012 1 commit
  11. 31 Mar, 2012 1 commit
    • Jeffrey Lee's avatar
      Tidy makefile · 26b06675
      Jeffrey Lee authored
      Detail:
        Makefile - removed rendundant -cpu assembler flag that causes an error with asasm 2.00 due to two CPU types being specified
        Removed -cpu 3 setting from CFLAGS since CC 5.69 doesn't seem to suffer from the same internal compiler error bug
      Admin:
        Tested in OMAP3 ROM
      
      
      Version 0.09. Tagged as 'RTSupport-0_09'
      26b06675
  12. 22 Mar, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix some nasty bugs. Add extensive debug logging code. · 83aa2484
      Jeffrey Lee authored
      Detail:
        s/scheduler - Fix PreEmptionRecovery and ThreadResumed to update LastKnownIRQsema with the new value of IRQsema
        s/scheduler - Fix SVC stack copying code to decrement both pointers instead of incrementing one and decrementing the other. Fix PreEmpt loading the wrong values for SVCStackCopy and SVCStackBase.
        s/scheduler - Fix Yielded loading Context into R2, and thus overwriting any timeout the routine specified
        c/module, hdr/RTSupport, Resources/UK/Messages - Module now errors when RTSupport SWIs are called with nonzero flags
        Makefile, c/module, h/scheduler, s/scheduler - Added lots of debugging code, based around debuglib for C code and DADebug for assembler code. Debug code toggled on/off by passing DEBUG=TRUE to makefile. PC-relative variables shifted to middle of file to keep them within LDR range when debugging enabled.
      Admin:
        Tested in OMAP3 ROM on BB-xM
        Fixes issues seen when multiple RTSupport threads are in use
      
      
      Version ...
      83aa2484
  13. 02 Feb, 2012 1 commit
  14. 04 Aug, 2011 1 commit
    • Jeffrey Lee's avatar
      Update to work with zero page relocation · 449310ba
      Jeffrey Lee authored
      Detail:
        c/cmodule - Try using OS_ReadSysInfo 6 to find IRQsema before falling back on the legacy address
        h/scheduler - Add IRQsema pointer extern, update ThreadResumed extern to cope with it now being in a data area
        s/scheduler - Use workspace IRQsema pointer instead of hardcoded legacy address. Moved PreEmptionRecovery & ThreadResumed into data area for easier access to IRQsema ptr.
      Admin:
        Tested on rev A2 BB-xM
      
      
      Version 0.06. Tagged as 'RTSupport-0_06'
      449310ba
  15. 22 Oct, 2009 1 commit
    • Jeffrey Lee's avatar
      Fixes & improvements for RTSupport module · 907e3d01
      Jeffrey Lee authored
      Detail:
        - Makefile (hopefully temporarily) modified to use "-cpu 3" setting for compiling C files, to work around internal compiler error
        - RT_Deregister fixed (in s/scheduler) to behave properly if a routine attempts to deregister itself after being entered from the foreground via RT_Yield
        - Simple test program added to test correct behaviour of RT_Deregister
        - SVC stack allocation routines rewritten to cope with the possibility that OS_DynamicArea 9/10 may be unable to move pages (e.g. RT_Deregister called while IRQSema is nonzero)
        - Stack allocation routine also attempts to deal with kernels which have broken sparse area error reporting (anything below version 5.15), by falling back on a simpler allocation scheme that doesn't resize the dynamic area.
        - Erroneous comment in s/scheduler fixed
        - Erroneous #define in h/scheduler fixed
      Admin:
        Tested on RISC OS 5.15 rev C2 beagleboard, RISC OS 5.12 Iyonix
        Makefile fix "fixes" bug #218
      
      
      Version 0.05...
      907e3d01
  16. 27 Aug, 2005 1 commit
    • Ben Avison's avatar
      Fixes some nasty bugs. · b44fb24b
      Ben Avison authored
      Detail:
        * First bug was that due to a careless slip-up in the very last stage of
          the process of switching to a routine (the loading of the SPSR), all
          routines were actually being entered in SYS mode with IRQs disabled. This
          was leading to horrendous interrupt latency - exactly the situation this
          module was written to avert! The most obvious reproducible symptom was
          that the real time clock ran slowly.
        * Once this was fixed, it revealed the presence of a more complicated bug:
          the module wasn't including the most-recently-executed routine along
          with the list of other routines in a non-sleeping state for a certain
          sub-set of actions. This was fixed by setting the pollword pointer to
          yet another magic address while it was executing, to minimise the
          disruption to existing code.
      Admin:
        Tested with a deinterlacing routine.
      
      Version 0.04. Tagged as 'RTSupport-0_04'
      b44fb24b
  17. 19 Apr, 2005 1 commit
  18. 27 Jan, 2005 1 commit
  19. 12 Jan, 2005 1 commit