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

CORE 電装講習第1回

Avatar for sksat sksat
September 29, 2019

CORE 電装講習第1回

COREでやったイキリクソ電装講習第1回のスライドです

Avatar for sksat

sksat

September 29, 2019
Tweet

More Decks by sksat

Other Decks in Programming

Transcript

  1. マイコンができること - 計算 ・ 1+2, 2.5-1.2 ・デジタル計算 ( 内部的には全て2進数 )

    ・実数ではない ・整数型は整数しか表現できない ・小数は浮動小数点で表現する ・表現できる範囲が決まっている (16bit 整数は -32768 〜 32767) ・誤差がある
  2. CPUの構成 ・制御装置 ・演算装置 ( 計算するやつ ) ・レジスタ ・少しだけ (32bit とか

    ) データを覚えておける ・高速 ・用途ごとに色々ある
  3. メモリ ・クソ遅い ( レジスタと比べると ) ・大容量のデータを保存できる ・揮発性 ( 電源切るとデータも消える )

    ・残したいデータはどうするか ・外部の記憶装置 (EEPROM, SD カード , ...) に保存する ・通信する ( 他のモジュールに送る , 地上局に無線で送る )
  4. 機械語の種類 ・メモリの読み書き ・レジスタにメモリの値をコピー , メモリにレジスタの値をコピー , … ・実行場所の変更 ・***番地にジャンプ ,

    前の演算結果が等しかったらジャンプ , ... ・算術命令 ・レジスタ A とレジスタ B を足した値をレジスタ A に格納 , … ・入出力命令 ・「オラッ***センサから値を 1byte 読んで A レジスタに入れろ!!!」
  5. アーキテクチャの違い ・ CPU の種類によって機械語のフォーマットが異なる ・ PC 用のプログラムのバイナリファイルを Arduino とかに突っ込んでも動かない ・命令長にも色々ある

    ・固定長: RISC ・命令によって変わる: CISC (キモい) ・まあ RISC でもキモいやつはキモいけど x86 よりは遥かにマシ
  6. コンパイラ ・アセンブリでも書くのめんどい ・アセンブリはあくまで機械語と一対一対応 ・そこで考えられたのがコンパイラ アセンブリ (テキストファイル) ア セ ン ブ

    ラ バイナリファイル (実行ファイル) なんか人間が 読みやすいやつ コン パイ ラ コンパイル アセンブル 広義にはコンパイルとアセンブルを合わせてコンパイルと呼ぶ
  7. Java ・生の機械語ではなく JVM をターゲットにした実行コードを生成する ・ JVM は Java 系言語用の仮想マシン ・

    JVM が動くならどんなマシン ( アーキテクチャ , OS) 上でも動作する ・ JVM 系の言語は色々ある ・ OpenRocket はこれで書かれてる
  8. Zen ・ Zig から fork したシステムプログラミング言語 ・僕がインターンで行ってた connectFree で開発中 ・

    C との併用が可能 ・ちゃんとコンパイラが怒ってくれる ・結構便利だった. OS とか低レイヤなもの書くならかなり良い ・ワンチャン cf と共同でなんかできそう