os development beginner with breadboard version 20161126

21
ブレッドボードを用いたOS開発 ブレッドボードでOS自作入門 浜松OS自作友の会 Langur(@osarusystem) Sat Nov 26 2016

Upload: langur

Post on 12-Feb-2017

307 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: OS development beginner with breadboard version 20161126

ブレッドボードを用いたOS開発ブレッドボードでOS自作入門

浜松OS自作友の会

Langur(@osarusystem)

Sat Nov 26 2016

Page 2: OS development beginner with breadboard version 20161126

About Me

Page 3: OS development beginner with breadboard version 20161126

CC-BY-SA 3.0 from Wikipedia

Name : LangurAge : 0x20Twitter : @osarusystemJobs : Embedded Software Engineer

Network Software EngineerAffiliation : Xiao Project/Hamamatsu.rb/

東海道らぐ/...etcInterestedness : OS/Primates/FreeBSD/Ruby/

...etc

Page 4: OS development beginner with breadboard version 20161126
Page 5: OS development beginner with breadboard version 20161126

モチベーション

• 幼い頃からの夢- MS-DOS, Windows, UNIX(Linux, FreeBSD, NetBSD), ITRON- TK-85で組込みに目覚める

• 遍歴- TOPPERS- 30日でできる!OS自作入門- 12ステップで作る組込みOS自作入門◦ V850に移植

• 自分用のプラットフォームが欲しい- 組込み用途- 汎用的な開発環境

Page 6: OS development beginner with breadboard version 20161126

こんなOSを作っています

Page 7: OS development beginner with breadboard version 20161126

Xiao

• Xiao(Xiao Is An Operating system)• 自作系組込みOSの一つ• KOZOSを参考に実装

- マイクロカーネルを採用• Target

- ARM Cortex-M0 ... LPC1114FN28- ARM Cortex-M0+ ... LPC810M021FN8(シングルタスク)- ARM Cortex-A7 ... BCM2836(対応中)

• 一部Rubyで自動生成

Page 8: OS development beginner with breadboard version 20161126

Targetの例

Page 9: OS development beginner with breadboard version 20161126
Page 10: OS development beginner with breadboard version 20161126
Page 11: OS development beginner with breadboard version 20161126

ブレッドボードを用いた開発

Page 12: OS development beginner with breadboard version 20161126

ブレッドボード

CC-BY-SA 3.0 from Wikipedia

• 電子回路の試作・実験用の基板• ハンダ付けなしで回路を構成• 部品の交換が簡単• 高周波回路には向かない• 大電流を流す場合も向かない

Page 13: OS development beginner with breadboard version 20161126

ブレッドボードを用いた開発

• これまでの開発事例- I2C- A/D Converter- PWM- Push Switch- LED- Timer

−→ CPUのペリフェラルを試しやすい−→ デバイスドライバを作りやすい

Page 14: OS development beginner with breadboard version 20161126

現在の開発環境

• GNU Binutils ... 2.23.2• GNU GCC ... 4.8.1• GDB ... 7.12• OpenOCD ... 0.9.0• lpc21isp ... 1.97

※GNUツールチェーンはアーキテクチャにarm-none-eabiを指定※エディタは主にEmacsを使用

Page 15: OS development beginner with breadboard version 20161126

デモ環境

Page 16: OS development beginner with breadboard version 20161126
Page 17: OS development beginner with breadboard version 20161126
Page 18: OS development beginner with breadboard version 20161126
Page 19: OS development beginner with breadboard version 20161126

宣伝

Page 20: OS development beginner with breadboard version 20161126
Page 21: OS development beginner with breadboard version 20161126

ご清聴ありがとうございました