More Related Content
Similar to Ras piでrt linux (20)
More from Hideki Aoshima (8)
Ras piでrt linux
- 2. 0. 今日の内容
自己紹介
Raspberry Pi(RasPi)について
RTLinuxに挑戦したきっかけ
RasPiでRTLinuxカーネル動作
まとめ
- 6. 3. Raspberry Piについて
コンピュータ科学教育を促進するため
に開発された
CPUプロセッサコアとして
BCM2835(ARM1176JZF-S 700 MHz
+GPU)
メインメモリーは256MB
OSはLinux(Raspbian,Fedoraなど)
入出力端子が豊富(GPIOポートなど)
- 9. 5-1-1. RasPiでRTLinuxのきっかけ
移植方法を簡単に大雑把に説明します
Arduinoでのスケッチはこんな感じ
void setup(){
// セットアップ処理(ピンのアサインなどいろいろ)
}
void loop(){
// 実際の処理
}
- 10. 5-1-2. RasPiでRTLinuxのきっかけ
wiringPiを使ったC,C++でのコーディング
#include <wiringPi.h> ←wiringPiを使う
#include <stdio.h>
#include <stdlib.h>
/* プロトタイプ宣言 */
void loop(void);
int main()
{
int wiringPiSetup();
loop();
exit(0);
}
void loop(){
}
- 14. 7. RasPiでRTLinux
Linux kernel ソース(rpi-3.2.27)の
取得
https://github.com/raspberrypi/linux
Real Time Linuxパッチの取得
http://www.kernel.org/pub/linux/kernel/pr
ojects/rt/3.2/older/patch-3.2.27-
rt40.patch.bz2
- 15. 7-1. RasPiでRTLinux
Real Time Linuxパッチを当てる
母艦のクロスコンパイル環境でコンパ
イル
→RasPi上でコンパイルすると5,6時間
かかる
RasPiに転送、カーネル入れ替え、カー
ネルモジュールインストール
- 16. 8. RasPiでRTLinux
できあがったカーネルはこんな感じ
$ uname -a
Linux raspberrypi 3.2.27-rt40 #1 PREEMPT RT Thu
Aug 23 23:55:37 JST 2012 armv6l GNU/Linux
早速テスト(裏でstressというソフトで負荷をかけてま
す)
$ sudo ./cyclictest -t1 -p 80 -n -i 10000 -l 10000
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 0.83 0.89 0.59 1/132 1746
T: 0 ( 1746) P:80 I:10000 C: 10000 Min: 27 Act:
40 Avg: 42 Max: 66
- 17. 8-1. Ras PiでRTLinux
テスト結果を見て・・・
policy: fifo: loadavg: 0.83 0.89 0.59 1/132 1746
T: 0 ( 1746) P:80 I:10000 C: 10000 Min: 27 Act: 40
Avg: 42 Max: 66
→おおっ66ns!と思ったら勘違いで66μsでした
ちなみに、標準のカーネルだと2桁ぐ
らい違う
policy: fifo: loadavg: 0.21 0.30 0.14 2/122 1566
T: 0 ( 1566) P:80 I:10000 C: 10000 Min: 28 Act: 46
Avg: 49 Max: 4143