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

令和最新版手のひらコンピュータ

Avatar for KOBA789 KOBA789
August 09, 2025

 令和最新版手のひらコンピュータ

Kernel/VM探検隊@ 東京 No18 で発表した内容です。

Avatar for KOBA789

KOBA789

August 09, 2025
Tweet

More Decks by KOBA789

Other Decks in Programming

Transcript

  1. KOBA789 ࢓ࣄָ͕͗ͯ͢͠ɺָ͍͗ͯ͢͠·͢ ‣ ࢓ࣄ ‣ 3VTUͰਓ޻Ӵ੕ͷϑϥΠτιϑτ΢ΣΞΛॻ͍ͨΓ ‣ ਓ޻Ӵ੕ͷϢʔβʔൃ۷ͷͨΊʹೆถ΁ߦͬͨΓ ‣ झຯ

    ‣ ࣗ࡞%#.4Λ࡞ͬͨΓ ‣ ϒϥ΢βͰಈ͘ి࣓ϦϨʔճ࿏$"% γϛϡϨʔλΛ࡞ͬͨΓ ‣ :PV5VCFS׆ಈΛ΍ͬͨΓ΍Βͳ͔ͬͨΓ IUUQTZPVUVCFDPN!LPCB IUUQTNJTTLFZJP!LPCB
  2. Ϛδͷྩ࿨࠷৽൛ʢޙड़ʣ w 40$3, w 3".(# w 30.F..$ NJDSP5'$BSE w -$%Y

    w 8J'J3,౰વٕదແ͠ w 3PDLDIJQͬͯ8J'J΋࡞ΔΜ͔ w +PZTUJDL w /JOUFOEP4XJUDIͷ΍ͭ 36MUSB
  3. ͍͟44)ʂ ͦ͏͍΍SPPUͷύεϫʔυͬͯʜʜ w ͻͱͱ͓Γࢼ͚ͨ͠Ͳશ෦ϋζϨ w SPPU FNVFMFD SVMUSB BSLPT w

    BVUIPSJ[FE@LFZTͬͯম͚ͳ͍ΜͩΖ͏͔ w 9.#ͷϑΝΠϧΤΫεϓϩʔϥ͔Β TIΛ࣮ߦͰ͖Δ w )0.&TTIBVUIPSJ[FE@LFZTʹ޲͔ͬͯQVCMJDLFZΛম͘ w 44)੒ޭʂ
  4. NJDSP5'͔ΒLFSOFMɾSPPUGTΛϩʔυ ͳΜͷ͜ͱ͸ͳ͍ w '"5ͰϑΥʔϚοτ͢Δ w FYUMJOVYFYUMJOVYDPOGʹVCPPUͷઃఆϑΝΠϧΛஔ͘ w ͋ͱ͸ී௨ʹϒʔτɻ͓΋͠Ζ͘͸ͳ͍ w %FWJDF5SFF͑͞έΞ͢Ε͹30$,/*9ͱ͔ͷΠϝʔδ͕ͦͷ··ಈ͘

    w 8J'JϞδϡʔϧ3,ͷυϥΠό͸ͳ͍ w NBJOMJOFʹͳ͍͚ͩͰͳ͘ɺΠϯλʔωοτͷେւݪʹ΋ͳ͍ w 30.ͷSLLPͷϥΠηϯεཝʹ͸(1-ͬͯॻ͍ͯ͋Δ͕͜Ε͸ʜʜ w ͋ͬͨͱٕͯద͸ͳ͍
  5. ;

  6. lͥͬͱ͸ͪ·Δz lͥͬͺͪz w ೥ൃചͷCJU$16 w ࠓͰ΋ങ͑Δʢ੡଄தʣ w ͍ͭʹࡢ೥݄ੜ࢈ऴྃ w ઃܭ͸βΠϩάࣾ

    w ΊͪΌͪ͘ΌചΕܼͨ࡞ w ύοέʔδ͸%*1ϐϯ w ࠓ΋ੲ΋ϚχΞʹਓؾ w ΋͸΍ڭཆ ;ͱ͸
  7. ౰࣌ͷࣄ৘͸͋Γͭͭ΋؆ܿ w ిݯ͸୯Ұ7 w ৴߸͸ܭຊ w ΫϩοΫೖྗ w ΞυϨεઢຊ σʔλઢຊ

    w ϝϞϦ੍ޚ৴߸ຊ w $16੍ޚ৴߸ຊ w %."༻৴߸ຊ ΠϯλʔϑΣʔε https://www.zilog.com/docs/z80/um0080.pdf
  8. ;ͷڭՊॻతͳ࢖͍͔ͨ 4*0 1*0 $5$ͱ͍ͬͨपลճ࿏ϑΝϛϦ*$Λ઀ଓ͢Δ Z80 RAM ROM SIO PIO CTC

    ͦͷଞ ΩʔϘʔυͱ͔ ը໘ͱ͔ γϦΞϧ ௨৴ ύϥϨϧ ௨৴ λΠϚʔ
  9. ·ͨͷ໊Λ3BTQCFSSZ1J1JDP w ࠷ۙྲྀߦͷϚΠίϯϘʔυ w ೥୅ͷٕज़ w 3". 30. *0౳ͷ໾Λԋ͡Δ w

    ;ͷඦഒ͘Β͍ੑೳ͕͍͍ w ;͸ϩϚϯ୲౰ w ࣗ༝ʹ࢖͑Δϐϯ਺͸ຊ ʮڊେͳԿ͔ʯ https://www.raspberrypi.com/products/raspberry-pi-pico/
  10. ·ͨͷ໊Λ3BTQCFSSZ1J1JDP w ࠷ۙྲྀߦͷϚΠίϯϘʔυ w ೥୅ͷٕज़ w 3". 30. *0౳ͷ໾Λԋ͡Δ w

    ;ͷඦഒ͘Β͍ੑೳ͕͍͍ w ;͸ϩϚϯ୲౰ w ࣗ༝ʹ࢖͑Δϐϯ਺͸ຊ ʮڊେͳԿ͔ʯ https://www.raspberrypi.com/products/raspberry-pi-pico/
  11. ౰࣌ͷࣄ৘͸͋Γͭͭ΋؆ܿ w ిݯ͸୯Ұ7 w ৴߸͸ܭຊ w ΫϩοΫೖྗ w ΞυϨεઢຊ σʔλઢຊ

    w ϝϞϦ੍ޚ৴߸ຊ w $16੍ޚ৴߸ຊ w %."༻৴߸ຊ ΠϯλʔϑΣʔε https://www.zilog.com/docs/z80/um0080.pdf
  12. ҙ֎ͱෆཁͳ৴߸͸ଟ͍  w */5 /.*ׂΓࠐΈؔ࿈ͷϐϯ ‎ׂΓࠐΈ࢖Θͳ͍ͷͰෆཁ w #64\32 "$,^%."ؔ࿈ͷϐϯ ‎%."͠ͳ͍ͷͰෆཁ

    w )"-5$16ͷ)"-5Λࣔ͢ϐϯ ‎ؾʹ͠ͳ͍ͷͰෆཁ w *032*0ཁٻΛࣔ͢ϐϯ ‎࢖Θͳ͍ͷͰෆཁ ඞཁͳϐϯΛݫબ https://www.zilog.com/docs/z80/um0080.pdf
  13. 1J1JDPʹ৐ͬͯΔνοϓ w ຊདྷ(1*0͸ຊ w 1J1JDPͰ͸ຊ͕ෆࣗ༝ w (1*0Ϙʔυ্ͷ-&%ઐ༻ w (1*074:4ిѹܭଌઐ༻ w

    શ෦ͷϐϯ͕ࣗ༝ͳΒ଍ΓΔʂ 31 https://www.raspberrypi.com/products/raspberry-pi-pico/
  14. Z80 RP2040 ≤7*-≤ ≤7*)≤7$$ ≤70-≤ ≤70)≤ ௚݁0, ≤7*-≤ ≤7*)≤ ී௨ͷೖྗ

    յΕΔ ී௨ͷग़ྗ ≤7*-≤ 7$$≤7*)≤7$$  ಈ͔ͳ͍ ΫϩοΫೖྗ ≤70-≤ ≤70)≤7$$ ≤70-≤ ≤70)≤ ϨϕϧγϑλΛ ೖΕͯղܾ ͱͯ΋ࠔΔ
  15. https://forums.raspberrypi.com/viewtopic.php?p=2092122#p2091977 w ݪଇͱͯ͠ɺσʔλγʔτ௨Γʹઃܭ͢Δͷ͕͓͢͢Ί w σʔλγʔτ֎ͷ࢖͍ํ͸ࣗݾ੹೚Ͱ w ࣮͸΋͏ͪΐͬͱ޿͍ൣғͷిѹΛड͚෇͚ΒΕΔ w "%$ͷ͋Δϐϯ͸ɺ*07%% 7

    ·Ͱʢ&4%μΠΦʔυ͕͋ΔͷͰʣ w "%$ͷͳ͍ϐϯ͸ɺ*07%%7ͷͱ͖7·Ͱ w ʮ7τϨϥϯτʯ͸7ʹ଱͑Δ͜ͱΛࢦ͢ͷͰɺ ͜Ε͸ʮ7τϨϥϯτʯͱ͸ݺ͹ͳ͍ w 7ˠ7ͷॱͰిݯ౤ೖ͞ΕΔΑ͋͘Δઃܭͩͱɺ ిݯ౤ೖ࣌ʹμϝʔδ͕ೖΔΑ w ࢓༷ҧ൓Ͱ΋͙͢ʹ͸յΕͳ͍͔΋͠Εͳ͍͕ɺ࣌ؒͱͱ΋ʹμϝʔδೖͬͯ յΕΔ͔΋Α
  16. ;Ͱ3*4$7ΛΤϛϡϨʔγϣϯ NJOJSWJNBΛҠ২͢Δ w ʢࡢ೔ʣ37*."ͷΤϛϡϨʔλΛॻ͍ͨʢ$MBVEFʹॻ͔ͤͨʣ w -JOVYͷϒʔτ͸͕ͨ͠ɺίʔυαΠζ͕େ͖͍͠஗͍ w NJOJSWJNBͱ͍͏খͯ͘͞ݡ͍ΤϛϡϨʔλ͕͋Δ w IUUQTHJUIVCDPNDOMPISNJOJSWJNB

    w ͜ΕΛ4%$$ ;ʹҠ২͢Δ w ͜ͷํ਑ʹ੾Γସ͑ͨͷ͕ࠓ೔ͷະ໌࣌ w ΤϛϡϨʔλࣗ࡞ͷܦݧʹΑΓɺਓྗͰαΫοͱҠ২ʹ੒ޭ w ܦݧ͸ཪ੾Βͳ͍ʢແବʹ࣌ؒΛ༹͔ͨ͠ݱ࣮Λड͚ೖΕͨ͘ͳ͍ʣ
  17. NJOJSWJNBҠ২खॱ NJOJSWJNB͸γϯάϧϔομϥΠϒϥϦʢʂʣ w ֤छϋϯυϥΛఆ͍ٛͯ͘͠ w MINIRV32_LOAD4(ofs) ˠϝϞϦಡΈग़͠ w MINIRV32_HANDLE_MEM_STORE_CONTROL(addy, val)

    ˠ..*0 w #include "mini-rv32ima.h" w ϝΠϯϧʔϓΛ࣮૷͢Δ w ͓͓Αͦ MiniRV32IMAStep() ΛݺͿ͚ͩ w ͱͯ΋؆୯ɻ͓͔͠ͳ͜ͱΛ͢Δͱ͖ʹΦεεϝ w ࢲͷNBJOD͸ߦ
  18. ୤ઢ͔͚ࢉ໋ྩΛΨϯແࢹ͢Δͱى͜Δ͜ͱ ;ʹ͸͔͚ࢉ໋ྩ͕ͳ͍ͷͰαϘ͍ͬͯͨ w ΞυϨεܭࢉ͕ڰͬͯQSJOULͷϦϯάόοϑΝͷϑΟʔϧυ͕ζϨΔ w νΣʔϯΛḷΕͣʹແݶϧʔϓʹམͪΔ w QSC@ fi STU@TFR

    ͷEFTD@SFBE ͕Ұੜ੒ޭ͠ͳ͍ w ͜ͷσόοάͰ༹͔࣌ؒͨ͠ w .֦ுͳ͠ͰϏϧυͨͭ͠΋Γ͕ͩͬͨΊͬͪΌ.6-%*7͍ͯͨ͠ w ۙ೥ͷ-JOVYͰ͸"΋.΋ࣄ্࣮ແࢹͰ͖ͳ͍ͬΆ͍ w 37ΤϛϡΛ࣮૷͢Δਓ͸ؾΛ͚ͭ·͠ΐ͏
  19. ΋͸΍ݹ୅ͷٕज़ w ΞυϨε෯͸ͦͷ··ʹɺ ۭؒΛ޿͛Δ w όϯΫϨδελΛॻ͖׵͑Δͱ ผͷʮۭؒʯ͕ݟ͑Δ w ΞΫηεલʹ੾Γସ͕͑ඞཁ w

    ޿͘ͳΔ͕஗͘ͳΔ w ࣌ؒͱۭؒΛτϨʔυΦϑ͢Δ ΞΠσΞ όϯΫ੾Γସ͑ͱ͸ , , όϯΫϨδελ Y Y'''' Y Y''''
  20. σϞ σϞ σϞ σϞσϞ σϞ σϞ σϞσϞ σϞ σϞ σϞσϞ

    σϞ σϞ σϞσϞ σϞ σϞσϞ σϞ σϞ σϞσϞ σϞ σϞ σϞ σϞσϞ σϞ σϞσϞ σϞ σϞ σϞ σϞ σϞ σϞ σϞ σϞσϞ σϞ σϞσϞ σϞ σϞ σϞσϞ σϞ σϞ σϞ σϞσϞ σϞ σϞ σϞσϞ σϞ σϞσϞ
  21. -JOVYPO;Λ଎͘͢ΔΞΠσΞ 3%."ʢসʣ͕஗͗͢ΔͷͰ w ࠓΩϟογϡϥΠϯ͸ຊ w λάͷϧοΫΞοϓΛ࣮૷͢Δͷ͕μϧ͍ͨΊ w 3*4$7ੈքͷϝϞϦʹ͸ɺίʔυͱσʔλ͕͋Δ w ͦΕΒͷΞυϨε͸཭Ε͍ͯΔ

    w 5ZQJDBMͳಈ࡞Ͱ͸ɺͦΕΒΛަޓʹΞΫηε͢Δ w සൟʹFWJDUJPO fl VTI ͕ى͖ͯ஗͍ w ΩϟογϡϥΠϯΛຊʹ͢Δ͚ͩͰ΋଎͘ͳΓͦ͏