1. 11 Apr, 2017 5 commits
  2. 10 Apr, 2017 3 commits
    • Paul Sokolovsky's avatar
      extmod/machine_signal: Support all Pin's arguments to the constructor. · 605ff91e
      Paul Sokolovsky authored
      This implements the orginal idea is that Signal is a subclass of Pin, and
      thus can accept all the same argument as Pin, and additionally, "inverted"
      param. On the practical side, it allows to avoid many enclosed parenses for
      a typical declararion, e.g. for Zephyr:
      
      Signal(Pin(("GPIO_0", 1))).
      
      Of course, passing a Pin to Signal constructor is still supported and is the
      most generic form (e.g. Unix port will only support such form, as it doesn't
      have "builtin" Pins), what's introduces here is just practical readability
      optimization.
      
      "value" kwarg is treated as applying to a Signal (i.e. accounts for possible
      inversion).
      605ff91e
    • Damien George's avatar
    • Damien George's avatar
      py: Make sure that static emg-exc-buffer is aligned to size of mp_obj_t. · ee86de1f
      Damien George authored
      This buffer is used to allocate objects temporarily, and such objects
      require that their underlying memory be correctly aligned for their data
      type.  Aligning for mp_obj_t should be sufficient for emergency exceptions,
      but in general the memory buffer should aligned to the maximum alignment of
      the machine (eg on a 32-bit machine with mp_obj_t being 4 bytes, a double
      may not be correctly aligned).
      
      This patch fixes a bug for certain nan-boxing builds, where mp_obj_t is 8
      bytes and must be aligned to 8 bytes (even though the machine is 32 bit).
      ee86de1f
  3. 08 Apr, 2017 7 commits
  4. 07 Apr, 2017 7 commits
  5. 06 Apr, 2017 2 commits
  6. 05 Apr, 2017 12 commits
  7. 04 Apr, 2017 4 commits
    • Paul Sokolovsky's avatar
      tools/pyboard: execpty: Use shell=False to workaround some curdir issues. · 546ef301
      Paul Sokolovsky authored
      Without this, Zephyr's port "make test" doesn't work.
      546ef301
    • Paul Sokolovsky's avatar
    • Paul Sokolovsky's avatar
      tools/pyboard: Add "exec" and "execpty" pseudo-devices support. · 647e72ca
      Paul Sokolovsky authored
      This allows to execute a command and communicate with its stdin/stdout
      via pipes ("exec") or with command-created pseudo-terminal ("execpty"),
      to emulate serial access. Immediate usecase is controlling a QEMU process
      which emulates board's serial via normal console, but it could be used
      e.g. with helper binaries to access real board over other hadware
      protocols, etc.
      
      An example of device specification for these cases is:
      
      	--device exec:../zephyr/qemu.sh
      	--device execpty:../zephyr/qemu2.sh
      
      Where qemu.sh contains long-long qemu startup line, or calls another
      command. There's a special support in this patch for running the command
      in a new terminal session, to support shell wrappers like that (without
      new terminal session, only wrapper script would be terminated, but its
      child processes would continue to run).
      647e72ca
    • Paul Sokolovsky's avatar
      zephyr/zephyr_getchar: Explicitly yield to other threads on char availability. · 58168c8e
      Paul Sokolovsky authored
      Without this, if there's a large chunk of data coming from hardware (e.g.
      clipboard paste, or fed programmatically from the other side of the console),
      there's a behavior of initial mass fill-in of the buffer without any
      consumption, which starts much later and doesn't catch up with further
      filling, leading to buffer overflow.
      58168c8e