1. Nov 02, 2022
    • Fawaz's avatar
      Added features to select privilege level (#5) · 6e355849
      Fawaz authored
      Currently, the library attempts to execute some semihosting operations
      in a completely interrupt-free context. It does this by using
      `riscv::interrupt::free`, which saves and restores the `mie` field of
      `mstatus`. As a result, attempts to initiate semihosting calls outside
      of M mode cause illegal instruction exceptions.
      
      This commit provides a solution, by requiring users to choose one of two
      features, "machine-mode" or "user-mode", which will compile different
      versions of the functions in src/export.rs that do and do not suspend
      interrupts, respectively. Failure to do so will throw a compiler error,
      unless the "no-semihosting" feature was enabled.
      
      A "supervisor-mode" feature was left out as the `riscv` crate does not
      yet have an equivalent of `interrupt::free` for supervisor mode.
      
      CI now also checks builds with both of these features.
      6e355849
  2. Jul 20, 2022
    • Fawaz Tirmizi's avatar
      Cleaned up documentation · e80cec6f
      Fawaz Tirmizi authored
      Original documentation was largely an exact copy of cortex-m-semihosting
      at the fork. This commit fixes that, removing unnecessary references to
      cortex-m-semihosting and clearing out the changelog so that it's
      relevant to this repository instead.
      e80cec6f
  3. Jul 19, 2022
  4. Jan 02, 2022
  5. Jan 23, 2017