Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2020 - MOPCON - 拿到錘子的我想在為控制器上實作 Ruby VM

2020 - MOPCON - 拿到錘子的我想在為控制器上實作 Ruby VM

蒼時弦や

October 24, 2020
Tweet

More Decks by 蒼時弦や

Other Decks in Programming

Transcript

  1. 拿到錘⼦的我想
    在微控制器上⾯執⾏ Ruby
    Photo by Johannes Plenio from Pexels

    View Slide

  2. WEB DEVELOPER
    GAME DEVELOPER


    ݭ໵
    @elct9620

    View Slide

  3. View Slide

  4. View Slide

  5. Background

    View Slide

  6. View Slide

  7. View Slide

  8. Virtual Machine

    View Slide

  9. In computing, a virtual machine (VM)
    is an emulation of a computer system.
    - Wikipedia

    View Slide

  10. Process virtual machines are designed to execute computer
    programs in a platform-independent environment.
    - Wikipedia

    View Slide

  11. Compiler
    Source Code
    Executable

    View Slide

  12. Compiler
    Source Code
    Ruby VM

    View Slide

  13. https://bit.ly/2T4BCiG

    View Slide

  14. Getting Started

    View Slide

  15. https://bit.ly/3ojwEwX

    View Slide

  16. View Slide

  17. View Slide

  18. View Slide

  19. View Slide

  20. IREP

    View Slide

  21. An intermediate representation (IR) is the data structure or
    code used internally by a compiler or virtual machine to
    represent source code.
    - Wikipedia

    View Slide

  22. app.mrb
    RITE Header
    IREP
    Debug Section

    View Slide

  23. IREP
    ISEQ
    Pools
    Symbols
    IREP

    View Slide

  24. mrb_exec

    View Slide

  25. View Slide

  26. Load Variable

    View Slide

  27. View Slide

  28. View Slide

  29. mruby is designed for Embedded System which is Raspberry Pi,
    but mruby-L1VM's target is run under 1KB RAM

    View Slide

  30. Behind VM

    View Slide

  31. View Slide

  32. View Slide

  33. View Slide

  34. View Slide

  35. View Slide

  36. View Slide

  37. View Slide

  38. Hardware

    View Slide

  39. Development Board is made software developer easier to build
    an application with hardware

    View Slide

  40. The SDK for Development Board usually based on C or C++,
    which means it is possible to run Golang, Ruby, or Python on it.

    View Slide

  41. The hardest for developers is no hardware knowledge to write
    their driver for their hardware

    View Slide

  42. Hardware Abstraction Layer

    View Slide

  43. https://bit.ly/3kiNzxf

    View Slide

  44. https://bit.ly/3mcdLdu

    View Slide

  45. View Slide

  46. View Slide

  47. View Slide

  48. Conclusion

    View Slide