SlideShare uma empresa Scribd logo
1 de 30
raspberry pi 用 ssp シュリンク版の紹 
介 
TOPPERS/SSPカーネルソース勉強会 
2014.10.22 
アライブビジョンソフトウェア株式会社 髙橋和浩 
raspbeer pi 用 SSPシュリンク版 1
raspbeer pi 用 SSPシュリンク版 2 
対象者 
 組込みプログラミングに興味のある方 
 かつ 
 C言語がある程度わかり、アセンブラ 
も多少わかれば尚可 かつ 
 Raspberry pi を一度は動かした方
1.全体の概要 
1)動かす 
 rsspbeery pi で、toppers sspのシュリンク版を動かすところまで 
ステップバイステップで説明 
2)toppers/sspのシュリンク版とかなんなのかの説明 
 raspberry pi関連で参加されたかたは、toppers/sspのシュリンク版 
が海のものとも山のものともわからない、たぶん食べたことがないと 
思いますので、美味しいかどうか説明します 
3)toppers/sspシュリンク版 RX62nからの変更点 
 ソースコードで変更した部分を説明します。 
4)余談 (ディスカッション) 
 a.QEMUによる実機無の話 
 b.JTAGデバッガ 
raspbeer pi 用 SSPシュリンク版 3
2.動かす 2.1.必要なもの 
 1)Raspbbery pi 今回 タイプBを利用 
 2)USBケーブル 
  通信用 MicroUSB と 充電用MicroUSB(Raspberry piの給電用) 
 3)TTLレベルシリアルUSB変換 
  秋月のFT232RL を使用 
 4)ジャンパー線など(Raspberry-piとFT232RL接続用) 
  ジャンパー線メスメス3本でも可能ですが 
  Raspberry Pi用ブレッドボード接続T型基板キットと 
raspbeer pi 用 SSPシュリンク版 4 
か言うのを 
  せんごくネット通販で買いました。 
 5)開発用PC 
 基本的にはWindowsマシン SDカードスロット必要 
 6)SDカード 
  microSDで変換カバーでもよい。 8GB以上
2.1.必要なもの  続き 
 6)開発用ダウンロードが必要なもの 
 a.rasbian のインストールイメージ 
 b.raspberry-pi 用 toppers/ssp シュリ 
ンク対応版 
  h 
ttp://sourceforge.jp/users/alvstakahash 
i/pf/raspberry_pi_SSP/wiki/FrontPage 
  ssp-rpi.tar.gz 
raspbeer pi 用 SSPシュリンク版 5
2.1.必要なもの  続き2 
 c.ツールチェーン 
 armのコンパイラツールチェーンはいろいろありますが、 
以下、いずれかひとつ選びましょう 
1)linuxで、crosstool-ng でソースからビルドして作る 
2)Windows用バイナリパッケージを使う 
 https://launchpad.net/gcc-arm-embedded 
 http://sourceforge.jp/projects/sfnet_yagarto/releases/ 
 http://www.mentor.com/embedded-software/codesourcery 
raspbeer pi 用 SSPシュリンク版 6
2.1.必要なもの  続き3 
 d.makeする環境 
  MSYSか Eclipseを使う 
 http://www.mingw.org/ 
 Eclipse 4.3 Kepler「C/C++」「Full edition」64bit 
版 (MSYS同梱してます) 
   
http://mergedoc.sourceforge.jp/index.html#/pleiades_distros4.3. 
html 
raspbeer pi 用 SSPシュリンク版 7
raspbeer pi 用 SSPシュリンク版 8 
2.2. 工作 
  rasberry-piとUSB変換器の接続です 
が、 
  ピンヘッダ 
  6 GND 
 8 TXD0 
 10 RXD0 
 の3本をUSB変換器につなげばOK 
です。 
  写真参照
2.2 工作 続き 
raspbeer pi 用 SSPシュリンク版 9
2.3.必要なソフトのダウンロードとセットアッ 
プ 
 1)ssp-rpi.tar.gz 
  ダウンロードして解凍すればいいです。sspとraspberry-pi 
の全体のプログラムが入っています。 
 2)開発環境 
  http://qiita.com/yamanekko/items/3b1eae1934c4ead618cf 
  を参考にしました。 
  MSYS+クロスツールチェーンどれか または 
  Eclipse + クロスツールチェーンどれか 
  のいずれかでいいです。 
  最終的に、GDBデバッグするなら、Eclipseを使ったほうが 
いいかもしれません 
  セットアップ等は割愛します。参考サイト参照 
raspbeer pi 用 SSPシュリンク版 10
2.4.SDカードの準備 
 1)RASPBIANのSDカードを準備します。 
  RASPBIAN をSDカードにいれ、RASPBBERY PIが起動す 
ることを確認してください。 
確認したら、SDカードをPCに入れ、bootパーテーション 
がWindowsなら自動マウントされます。 
それのファイルすべてをPCにコピーします。次に、SDカー 
ドをFATでフォーマットします。 最後にコピーしたファイル 
すべてをSDカードに戻します。 
  config.txtの最後に以下 1行追加します。 
  kernel=rpi-micon.img 
   
raspbeer pi 用 SSPシュリンク版 11
2.5.ssp-rpiのビルド前にMakefileの環境に合わせた修 
正 
  CROSSとLIBSとLDを変えてくだ 
さい。3か所 LIBSは空白にすれば 
OKです。LDはgcc と書けばいいよう 
です。 
raspbeer pi 用 SSPシュリンク版 12
Makefile修正 続き 
 CROSS= arm-none-eabi-    <<------これ11 
 LD= $(CROSS)gcc <--これ2 
 OBJCOPY= $(CROSS)objcopy 
 OBJDUMP= $(CROSS)objdump 
 SIZE= $(CROSS)size 
 READELF= $(CROSS)readelf 
 # libgcc.a 
 #LIBS = -L/home/atmark/cross/rpi/arm-unknown-eabi/lib/gcc/arm-unknown- 
raspbeer pi 用 SSPシュリンク版 13 
eabi/4.8.1/ 
 # newlib 
 #LIBS += -L/home/atmark/cross/rpi/arm-unknown-eabi/arm-unknown-eabi/ 
lib/ 
 LIBS = <--- これ3
2.5.ビルド 
 make clean 
 make 
 でビルドできます。 
 rpi-micon.img を SDカードにコピーし 
ます。 
raspbeer pi 用 SSPシュリンク版 14
2.6. 実行 
1)ターミナルの準備 
 USBシリアルのポート番号を確認して、その 
ポートでターミナルソフトを起動します。 
 設定 
 115200BPS 8none1bit フロー制御なし 
 端末はLFコード 
2)起動 
 SDカードを挿入して電源投入で自動起動し 
ます。 
  ターミナルに表示されればOKです。 
raspbeer pi 用 SSPシュリンク版 15
実行時のスクリーンショット 
raspbeer pi 用 SSPシュリンク版 16
2.7.OSらしいプログラム 
 main.cを以下のように変えてみます。 
 変数を追加して初期化します。 
 #include <kernel.h> 
 #include "kernel_cfg.h" 
 #include "rpi_lib/rpi.h" 
 #include <stdio.h> 
 #include <stdint.h> 
 int task2Active;   //これを追加します。 
 void set_vector_table(void){ 
raspbeer pi 用 SSPシュリンク版 17
Main.c 続き 
 int main(void){ 
 ---- 省略-------------------- 
 // IRQ許可 
 enable_IRQ(); 
 task2Active = FALSE; // task1は未起動 これを追加 
raspbeer pi 用 SSPシュリンク版 18 
 sta_ker(); 
 while(1);
Main.c 続き2 
 タスク1は一度だけtask2を起動します。 
 void task1(intptr_t arg) 
 { 
 if (!task2Active) 
 { 
 act_tsk(TASK2_ID); 
 task2Active = TRUE; 
 } 
 printf("task1 
RUNNING-----------------------------------------------------n"); 
 } 
raspbeer pi 用 SSPシュリンク版 19
Main.c 続き3 
 タスク起動をtask1だけにします。 
 void timerIRQ_handler(void){ 
 // LEDの状態保持用変数 
 static unsigned int led = 0; 
 if(led){ 
 printf("LED: ONn"); 
 digitalWrite(16, LOW); 
 //この行 削除してます 
 } 
 else{ 
 printf("LED: OFFn"); 
 digitalWrite(16, HIGH); 
 //この行 削除してます 
 } 
 iact_tsk(TASK1_ID); //これを追加しました 
raspbeer pi 用 SSPシュリンク版 20 
 // LEDの状態を反転 
 led = !led; 
 }
Main.c 続き その4 
 低優先度のtask2はずっと、プリントしてます。 
 void task2(intptr_t arg) 
 { 
 int count; 
 count = 1; 
 printf("task2 Startedm"); 
 while(1) 
 { 
 printf("task2 running Count= %dn",count++); 
 } 
 } 
raspbeer pi 用 SSPシュリンク版 21
ssp/kernel_cfg.cの修正 
 ssp/kernel_cfg.c の20行目 
 onst uint_t _kernel_tinib_epriority[TNUM_TSKID] = 
{INT_PRIORITY(1),INT_PRIORITY(1)}; 
 を 
 onst uint_t _kernel_tinib_epriority[TNUM_TSKID] = 
{INT_PRIORITY(1),INT_PRIORITY(2)}; 
 に変えてください。task2からtask1へタスクスイッチに必要 
です。 
 task2の優先度を1から2に変更(下げて)しています。 
raspbeer pi 用 SSPシュリンク版 22
2.7. 2)説明 
 task2がゆっくり動いている間 
に、task1が起動されるとtask2に割り 
こんで実行されるのがわかるかと思い 
ます。 
raspbeer pi 用 SSPシュリンク版 23
3. TOPPERS/SSPの紹介 
  TOPPERS/SSPはTOPPERSプロジ 
ェクトの成果物であり、オープンソー 
スソフトウェアです。 
  ITRON等の組込みOSの一つで、特 
徴としては最少セットカーネルと呼ば 
れており、 
もっともフットプリントの小さなもの 
です。簡単に言えばもっとも単機能で 
小さなものです。 
raspbeer pi 用 SSPシュリンク版 24
SSPシュリンク版 
 SSPシュリンク版は、TOPPERS/SSPを元に改造を 
加えた海賊版です。 
  これは、アライブビジョンソフトウェア株式会社 
の髙橋が作成しSourceforge (alvstakahashi) 
に公開しています。 
  特徴としては、TOPPERS/SSPをさらに小さくし 
たのですが、OS無環境に乗りやすいように、ざっ 
くり説明するとmain部分を外したものです。 
  つまり、HelloWordとLEDチカチカができる環境 
にOSを載せる部分のみ「くりぬいた」ものです。 
raspbeer pi 用 SSPシュリンク版 25
シュリンク版のありか 
  Sourceforgeには、Interface付録のRX62N用の 
ものを公開しています。 
http://sourceforge.jp/projects/shrink-sp-rx62n/releases/ 
 実機なしで、HEWシミュレータ環境での手順も公 
開しています。 
http://sourceforge.jp/users/alvstakahashi/pf/work2/wiki/F 
rontPage 
  今回Raspberry-piのbareMetalが電子本で公開さ 
れましたので、それをベースにraspberry-pi対応版 
を作り、今回お披露目しております。 
raspbeer pi 用 SSPシュリンク版 26
4.RX62Nからの変更点 
 追加 includearm.h 
     TOPPERS/ASP ARM-A9のものからコピー 
 追加 includearm_tool.h 
     TOPPERS/ASP ARM-A9のものからコピー 
 追加 includecore_asm.inc 
     TOPPERS/ASP ARM-A9のものからコピー 
 追加 includecore_config.h 
     TOPPERS/ASP ARM-A9のものからコピー 
raspbeer pi 用 SSPシュリンク版 27
4.RX62Nからの変更点 続き 
 追加 includecore_stddef.h 
    TOPPERS/ASP ARM-A9のものから 
コピー 
 追加 includetarget_asm.inc 
TOPPERS/ASP ARM-A9のものから 
コピーして修正(階層を浅くした) 
 改訂 includetarget_kernel.h 
#ifdef TOPPERS_RPI lock_cpu関連 
 差替え ssprpi_support.S 
prc_support.src の差し替え 改訂 
raspbeer pi 用 SSPシュリンク版 28
参考URL 
mrubyをRaspberry Pi(bare metal) で動 
かす: Windows 編 
 http://qiita.com/yamanekko/items/3b1ea 
e1934c4ead618cf 
raspbeer pi 用 SSPシュリンク版 29
5.余談 
a.QEMUによる実機無の話 
b.JTAGデバッガ 
raspbeer pi 用 SSPシュリンク版 30

Mais conteúdo relacionado

Mais procurados

続・SECDマシン
続・SECDマシン続・SECDマシン
続・SECDマシンt-sin
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~Preferred Networks
 
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~nullnilaki
 
あるキャッシュメモリの話
あるキャッシュメモリの話あるキャッシュメモリの話
あるキャッシュメモリの話nullnilaki
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)Naoto MATSUMOTO
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。(^-^) togakushi
 
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミングSounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミングt-sin
 
Debug Hacks Conference 2009
Debug Hacks Conference 2009Debug Hacks Conference 2009
Debug Hacks Conference 2009Hiro Yoshioka
 
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...Masanobu Saitoh
 
BlockSorting
BlockSortingBlockSorting
BlockSortingiuno
 
FPGAでゲーム機を作ろう! 第6回
FPGAでゲーム機を作ろう! 第6回FPGAでゲーム機を作ろう! 第6回
FPGAでゲーム機を作ろう! 第6回yoshimitsusudoh
 
あなたの知らないnopたち@ラボユース合宿
あなたの知らないnopたち@ラボユース合宿あなたの知らないnopたち@ラボユース合宿
あなたの知らないnopたち@ラボユース合宿MITSUNARI Shigeo
 
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Masaru Oki
 
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてSECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてt-sin
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設Minoru Nakamura
 

Mais procurados (20)

続・SECDマシン
続・SECDマシン続・SECDマシン
続・SECDマシン
 
about Tcpreplay
about Tcpreplayabout Tcpreplay
about Tcpreplay
 
仮想記憶の構築法
仮想記憶の構築法仮想記憶の構築法
仮想記憶の構築法
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
 
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
 
あるキャッシュメモリの話
あるキャッシュメモリの話あるキャッシュメモリの話
あるキャッシュメモリの話
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
 
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミングSounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
 
Debug Hacks Conference 2009
Debug Hacks Conference 2009Debug Hacks Conference 2009
Debug Hacks Conference 2009
 
Rust-DPDK
Rust-DPDKRust-DPDK
Rust-DPDK
 
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
 
Arch TCP/IP BOOTP
Arch TCP/IP BOOTPArch TCP/IP BOOTP
Arch TCP/IP BOOTP
 
BlockSorting
BlockSortingBlockSorting
BlockSorting
 
FPGAでゲーム機を作ろう! 第6回
FPGAでゲーム機を作ろう! 第6回FPGAでゲーム機を作ろう! 第6回
FPGAでゲーム機を作ろう! 第6回
 
あなたの知らないnopたち@ラボユース合宿
あなたの知らないnopたち@ラボユース合宿あなたの知らないnopたち@ラボユース合宿
あなたの知らないnopたち@ラボユース合宿
 
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編
 
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてSECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについて
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
 
V6 unix in okinawa
V6 unix in okinawaV6 unix in okinawa
V6 unix in okinawa
 

Destaque

ITRON仕様のOSで組み込みにトライしてみた
ITRON仕様のOSで組み込みにトライしてみたITRON仕様のOSで組み込みにトライしてみた
ITRON仕様のOSで組み込みにトライしてみたboropon
 
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズToppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズKazuhiro Takahashi
 
さわってみようTOPPERS/SSP
さわってみようTOPPERS/SSPさわってみようTOPPERS/SSP
さわってみようTOPPERS/SSPNSaitoNmiri
 
リアルタイムOSの必要性とTOPPERS/SSPの紹介
リアルタイムOSの必要性とTOPPERS/SSPの紹介リアルタイムOSの必要性とTOPPERS/SSPの紹介
リアルタイムOSの必要性とTOPPERS/SSPの紹介NSaitoNmiri
 
芸人を 目指すわけでは ないけれど…(n575)
芸人を 目指すわけでは ないけれど…(n575)芸人を 目指すわけでは ないけれど…(n575)
芸人を 目指すわけでは ないけれど…(n575)Masataka Kondo
 
小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-
小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-
小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-Kenichiro MATOHARA
 
Osc2016 tokyo-spring-geeklog
Osc2016 tokyo-spring-geeklogOsc2016 tokyo-spring-geeklog
Osc2016 tokyo-spring-geeklogTetsuko Komma
 
アドベントカレンダー「愉悦について」
アドベントカレンダー「愉悦について」アドベントカレンダー「愉悦について」
アドベントカレンダー「愉悦について」Masataka Kondo
 
LibreOfficeの品質向上活動について
LibreOfficeの品質向上活動についてLibreOfficeの品質向上活動について
LibreOfficeの品質向上活動についてMasataka Kondo
 
ベジェ曲線を使ってみよう
ベジェ曲線を使ってみようベジェ曲線を使ってみよう
ベジェ曲線を使ってみようMasataka Kondo
 
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)Kenichiro MATOHARA
 
U38Nの WiFiモジュールを換装したハナシ
U38Nの WiFiモジュールを換装したハナシU38Nの WiFiモジュールを換装したハナシ
U38Nの WiFiモジュールを換装したハナシMasataka Kondo
 
Git 道場 心:Git総論、心構え
Git 道場 心:Git総論、心構え Git 道場 心:Git総論、心構え
Git 道場 心:Git総論、心構え Nobuhiro Iwamatsu
 
ゲーミングプラットホームのLutris
ゲーミングプラットホームのLutrisゲーミングプラットホームのLutris
ゲーミングプラットホームのLutrisKenichiro MATOHARA
 
LibreOffice Conference 2016 Brno 参加レポート
LibreOffice Conference 2016 Brno 参加レポートLibreOffice Conference 2016 Brno 参加レポート
LibreOffice Conference 2016 Brno 参加レポートShinji Enoki
 
ビジネスモデル・キャンバスワークショップ 2015-05-30
ビジネスモデル・キャンバスワークショップ 2015-05-30ビジネスモデル・キャンバスワークショップ 2015-05-30
ビジネスモデル・キャンバスワークショップ 2015-05-30Shinji Enoki
 
鹿児島に引っ越しました
鹿児島に引っ越しました鹿児島に引っ越しました
鹿児島に引っ越しましたKenichiro MATOHARA
 
Building LibreOffice local community in Japan through event handling
Building LibreOffice local community in Japan through event handlingBuilding LibreOffice local community in Japan through event handling
Building LibreOffice local community in Japan through event handlingShinji Enoki
 
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?Fuminobu Takeyama
 

Destaque (20)

ITRON仕様のOSで組み込みにトライしてみた
ITRON仕様のOSで組み込みにトライしてみたITRON仕様のOSで組み込みにトライしてみた
ITRON仕様のOSで組み込みにトライしてみた
 
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズToppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
 
さわってみようTOPPERS/SSP
さわってみようTOPPERS/SSPさわってみようTOPPERS/SSP
さわってみようTOPPERS/SSP
 
リアルタイムOSの必要性とTOPPERS/SSPの紹介
リアルタイムOSの必要性とTOPPERS/SSPの紹介リアルタイムOSの必要性とTOPPERS/SSPの紹介
リアルタイムOSの必要性とTOPPERS/SSPの紹介
 
芸人を 目指すわけでは ないけれど…(n575)
芸人を 目指すわけでは ないけれど…(n575)芸人を 目指すわけでは ないけれど…(n575)
芸人を 目指すわけでは ないけれど…(n575)
 
小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-
小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-
小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-
 
Osc2016 tokyo-spring-geeklog
Osc2016 tokyo-spring-geeklogOsc2016 tokyo-spring-geeklog
Osc2016 tokyo-spring-geeklog
 
アドベントカレンダー「愉悦について」
アドベントカレンダー「愉悦について」アドベントカレンダー「愉悦について」
アドベントカレンダー「愉悦について」
 
LibreOfficeの品質向上活動について
LibreOfficeの品質向上活動についてLibreOfficeの品質向上活動について
LibreOfficeの品質向上活動について
 
ベジェ曲線を使ってみよう
ベジェ曲線を使ってみようベジェ曲線を使ってみよう
ベジェ曲線を使ってみよう
 
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
 
U38Nの WiFiモジュールを換装したハナシ
U38Nの WiFiモジュールを換装したハナシU38Nの WiFiモジュールを換装したハナシ
U38Nの WiFiモジュールを換装したハナシ
 
Tsume git
Tsume gitTsume git
Tsume git
 
Git 道場 心:Git総論、心構え
Git 道場 心:Git総論、心構え Git 道場 心:Git総論、心構え
Git 道場 心:Git総論、心構え
 
ゲーミングプラットホームのLutris
ゲーミングプラットホームのLutrisゲーミングプラットホームのLutris
ゲーミングプラットホームのLutris
 
LibreOffice Conference 2016 Brno 参加レポート
LibreOffice Conference 2016 Brno 参加レポートLibreOffice Conference 2016 Brno 参加レポート
LibreOffice Conference 2016 Brno 参加レポート
 
ビジネスモデル・キャンバスワークショップ 2015-05-30
ビジネスモデル・キャンバスワークショップ 2015-05-30ビジネスモデル・キャンバスワークショップ 2015-05-30
ビジネスモデル・キャンバスワークショップ 2015-05-30
 
鹿児島に引っ越しました
鹿児島に引っ越しました鹿児島に引っ越しました
鹿児島に引っ越しました
 
Building LibreOffice local community in Japan through event handling
Building LibreOffice local community in Japan through event handlingBuilding LibreOffice local community in Japan through event handling
Building LibreOffice local community in Japan through event handling
 
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
 

Semelhante a Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介

ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。Kazuki Onishi
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Ransui Iso
 
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-1020171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10Toshi Harada
 
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-1020171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10Toshi Harada
 
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Kazuo Asano (@kazuo_asa)
 
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419エイシュン コンドウ
 
x86とコンテキストスイッチ
x86とコンテキストスイッチx86とコンテキストスイッチ
x86とコンテキストスイッチMasami Ichikawa
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみたngi group.
 
ただのリンカを書いた話.pdf
ただのリンカを書いた話.pdfただのリンカを書いた話.pdf
ただのリンカを書いた話.pdfsimotin13 Miyazaki
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_netTomoya Hibi
 
OpenSolaris Printing Environment
OpenSolaris Printing EnvironmentOpenSolaris Printing Environment
OpenSolaris Printing EnvironmentNaruhiko Ogasawara
 
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Tokyo.R 白熱教室「これからのRcppの話をしよう」Tokyo.R 白熱教室「これからのRcppの話をしよう」
Tokyo.R 白熱教室「これからのRcppの話をしよう」Nagi Teramo
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope高広 内山
 
ZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるKoichi Suzuki
 

Semelhante a Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介 (20)

InfiniBand on Debian
InfiniBand on DebianInfiniBand on Debian
InfiniBand on Debian
 
about DakotagUI
about DakotagUIabout DakotagUI
about DakotagUI
 
about dakota6.7 gui
about dakota6.7 guiabout dakota6.7 gui
about dakota6.7 gui
 
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-1020171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10
 
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-1020171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10
 
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6
 
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
 
x86とコンテキストスイッチ
x86とコンテキストスイッチx86とコンテキストスイッチ
x86とコンテキストスイッチ
 
MmapScanner
MmapScannerMmapScanner
MmapScanner
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
 
ただのリンカを書いた話.pdf
ただのリンカを書いた話.pdfただのリンカを書いた話.pdf
ただのリンカを書いた話.pdf
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
 
OpenSolaris Printing Environment
OpenSolaris Printing EnvironmentOpenSolaris Printing Environment
OpenSolaris Printing Environment
 
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Tokyo.R 白熱教室「これからのRcppの話をしよう」Tokyo.R 白熱教室「これからのRcppの話をしよう」
Tokyo.R 白熱教室「これからのRcppの話をしよう」
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope
 
osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
 
ZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみる
 
Kansai mrb gr_sakura
Kansai mrb gr_sakuraKansai mrb gr_sakura
Kansai mrb gr_sakura
 

Mais de Kazuhiro Takahashi

Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)Kazuhiro Takahashi
 
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編Kazuhiro Takahashi
 
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋Kazuhiro Takahashi
 
Rx hew-シミュレータで動かすー説明書
Rx hew-シミュレータで動かすー説明書Rx hew-シミュレータで動かすー説明書
Rx hew-シミュレータで動かすー説明書Kazuhiro Takahashi
 
リアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズリアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズKazuhiro Takahashi
 
リアルタイムOsのカスタマイズチラシ023
リアルタイムOsのカスタマイズチラシ023リアルタイムOsのカスタマイズチラシ023
リアルタイムOsのカスタマイズチラシ023Kazuhiro Takahashi
 

Mais de Kazuhiro Takahashi (12)

mrubyOSチラシ
mrubyOSチラシmrubyOSチラシ
mrubyOSチラシ
 
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
 
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
 
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
 
Gr sakuraでtinet
Gr sakuraでtinetGr sakuraでtinet
Gr sakuraでtinet
 
Rx hew-シミュレータで動かすー説明書
Rx hew-シミュレータで動かすー説明書Rx hew-シミュレータで動かすー説明書
Rx hew-シミュレータで動かすー説明書
 
mruby os(案)の開発
mruby os(案)の開発mruby os(案)の開発
mruby os(案)の開発
 
リアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズリアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズ
 
リアルタイムOsのカスタマイズチラシ023
リアルタイムOsのカスタマイズチラシ023リアルタイムOsのカスタマイズチラシ023
リアルタイムOsのカスタマイズチラシ023
 
G7プレゼンrtos自作
G7プレゼンrtos自作G7プレゼンrtos自作
G7プレゼンrtos自作
 
G7プレゼンrtos自作
G7プレゼンrtos自作G7プレゼンrtos自作
G7プレゼンrtos自作
 
G7プレゼンrtos自作
G7プレゼンrtos自作G7プレゼンrtos自作
G7プレゼンrtos自作
 

Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介

  • 1. raspberry pi 用 ssp シュリンク版の紹 介 TOPPERS/SSPカーネルソース勉強会 2014.10.22 アライブビジョンソフトウェア株式会社 髙橋和浩 raspbeer pi 用 SSPシュリンク版 1
  • 2. raspbeer pi 用 SSPシュリンク版 2 対象者  組込みプログラミングに興味のある方  かつ  C言語がある程度わかり、アセンブラ も多少わかれば尚可 かつ  Raspberry pi を一度は動かした方
  • 3. 1.全体の概要 1)動かす  rsspbeery pi で、toppers sspのシュリンク版を動かすところまで ステップバイステップで説明 2)toppers/sspのシュリンク版とかなんなのかの説明  raspberry pi関連で参加されたかたは、toppers/sspのシュリンク版 が海のものとも山のものともわからない、たぶん食べたことがないと 思いますので、美味しいかどうか説明します 3)toppers/sspシュリンク版 RX62nからの変更点  ソースコードで変更した部分を説明します。 4)余談 (ディスカッション)  a.QEMUによる実機無の話  b.JTAGデバッガ raspbeer pi 用 SSPシュリンク版 3
  • 4. 2.動かす 2.1.必要なもの  1)Raspbbery pi 今回 タイプBを利用  2)USBケーブル   通信用 MicroUSB と 充電用MicroUSB(Raspberry piの給電用)  3)TTLレベルシリアルUSB変換   秋月のFT232RL を使用  4)ジャンパー線など(Raspberry-piとFT232RL接続用)   ジャンパー線メスメス3本でも可能ですが   Raspberry Pi用ブレッドボード接続T型基板キットと raspbeer pi 用 SSPシュリンク版 4 か言うのを   せんごくネット通販で買いました。  5)開発用PC  基本的にはWindowsマシン SDカードスロット必要  6)SDカード   microSDで変換カバーでもよい。 8GB以上
  • 5. 2.1.必要なもの  続き  6)開発用ダウンロードが必要なもの  a.rasbian のインストールイメージ  b.raspberry-pi 用 toppers/ssp シュリ ンク対応版   h ttp://sourceforge.jp/users/alvstakahash i/pf/raspberry_pi_SSP/wiki/FrontPage   ssp-rpi.tar.gz raspbeer pi 用 SSPシュリンク版 5
  • 6. 2.1.必要なもの  続き2  c.ツールチェーン  armのコンパイラツールチェーンはいろいろありますが、 以下、いずれかひとつ選びましょう 1)linuxで、crosstool-ng でソースからビルドして作る 2)Windows用バイナリパッケージを使う  https://launchpad.net/gcc-arm-embedded  http://sourceforge.jp/projects/sfnet_yagarto/releases/  http://www.mentor.com/embedded-software/codesourcery raspbeer pi 用 SSPシュリンク版 6
  • 7. 2.1.必要なもの  続き3  d.makeする環境   MSYSか Eclipseを使う  http://www.mingw.org/  Eclipse 4.3 Kepler「C/C++」「Full edition」64bit 版 (MSYS同梱してます)    http://mergedoc.sourceforge.jp/index.html#/pleiades_distros4.3. html raspbeer pi 用 SSPシュリンク版 7
  • 8. raspbeer pi 用 SSPシュリンク版 8 2.2. 工作   rasberry-piとUSB変換器の接続です が、   ピンヘッダ   6 GND  8 TXD0  10 RXD0  の3本をUSB変換器につなげばOK です。   写真参照
  • 9. 2.2 工作 続き raspbeer pi 用 SSPシュリンク版 9
  • 10. 2.3.必要なソフトのダウンロードとセットアッ プ  1)ssp-rpi.tar.gz   ダウンロードして解凍すればいいです。sspとraspberry-pi の全体のプログラムが入っています。  2)開発環境   http://qiita.com/yamanekko/items/3b1eae1934c4ead618cf   を参考にしました。   MSYS+クロスツールチェーンどれか または   Eclipse + クロスツールチェーンどれか   のいずれかでいいです。   最終的に、GDBデバッグするなら、Eclipseを使ったほうが いいかもしれません   セットアップ等は割愛します。参考サイト参照 raspbeer pi 用 SSPシュリンク版 10
  • 11. 2.4.SDカードの準備  1)RASPBIANのSDカードを準備します。   RASPBIAN をSDカードにいれ、RASPBBERY PIが起動す ることを確認してください。 確認したら、SDカードをPCに入れ、bootパーテーション がWindowsなら自動マウントされます。 それのファイルすべてをPCにコピーします。次に、SDカー ドをFATでフォーマットします。 最後にコピーしたファイル すべてをSDカードに戻します。   config.txtの最後に以下 1行追加します。   kernel=rpi-micon.img    raspbeer pi 用 SSPシュリンク版 11
  • 12. 2.5.ssp-rpiのビルド前にMakefileの環境に合わせた修 正   CROSSとLIBSとLDを変えてくだ さい。3か所 LIBSは空白にすれば OKです。LDはgcc と書けばいいよう です。 raspbeer pi 用 SSPシュリンク版 12
  • 13. Makefile修正 続き  CROSS= arm-none-eabi-    <<------これ11  LD= $(CROSS)gcc <--これ2  OBJCOPY= $(CROSS)objcopy  OBJDUMP= $(CROSS)objdump  SIZE= $(CROSS)size  READELF= $(CROSS)readelf  # libgcc.a  #LIBS = -L/home/atmark/cross/rpi/arm-unknown-eabi/lib/gcc/arm-unknown- raspbeer pi 用 SSPシュリンク版 13 eabi/4.8.1/  # newlib  #LIBS += -L/home/atmark/cross/rpi/arm-unknown-eabi/arm-unknown-eabi/ lib/  LIBS = <--- これ3
  • 14. 2.5.ビルド  make clean  make  でビルドできます。  rpi-micon.img を SDカードにコピーし ます。 raspbeer pi 用 SSPシュリンク版 14
  • 15. 2.6. 実行 1)ターミナルの準備  USBシリアルのポート番号を確認して、その ポートでターミナルソフトを起動します。  設定  115200BPS 8none1bit フロー制御なし  端末はLFコード 2)起動  SDカードを挿入して電源投入で自動起動し ます。   ターミナルに表示されればOKです。 raspbeer pi 用 SSPシュリンク版 15
  • 16. 実行時のスクリーンショット raspbeer pi 用 SSPシュリンク版 16
  • 17. 2.7.OSらしいプログラム  main.cを以下のように変えてみます。  変数を追加して初期化します。  #include <kernel.h>  #include "kernel_cfg.h"  #include "rpi_lib/rpi.h"  #include <stdio.h>  #include <stdint.h>  int task2Active;   //これを追加します。  void set_vector_table(void){ raspbeer pi 用 SSPシュリンク版 17
  • 18. Main.c 続き  int main(void){  ---- 省略--------------------  // IRQ許可  enable_IRQ();  task2Active = FALSE; // task1は未起動 これを追加 raspbeer pi 用 SSPシュリンク版 18  sta_ker();  while(1);
  • 19. Main.c 続き2  タスク1は一度だけtask2を起動します。  void task1(intptr_t arg)  {  if (!task2Active)  {  act_tsk(TASK2_ID);  task2Active = TRUE;  }  printf("task1 RUNNING-----------------------------------------------------n");  } raspbeer pi 用 SSPシュリンク版 19
  • 20. Main.c 続き3  タスク起動をtask1だけにします。  void timerIRQ_handler(void){  // LEDの状態保持用変数  static unsigned int led = 0;  if(led){  printf("LED: ONn");  digitalWrite(16, LOW);  //この行 削除してます  }  else{  printf("LED: OFFn");  digitalWrite(16, HIGH);  //この行 削除してます  }  iact_tsk(TASK1_ID); //これを追加しました raspbeer pi 用 SSPシュリンク版 20  // LEDの状態を反転  led = !led;  }
  • 21. Main.c 続き その4  低優先度のtask2はずっと、プリントしてます。  void task2(intptr_t arg)  {  int count;  count = 1;  printf("task2 Startedm");  while(1)  {  printf("task2 running Count= %dn",count++);  }  } raspbeer pi 用 SSPシュリンク版 21
  • 22. ssp/kernel_cfg.cの修正  ssp/kernel_cfg.c の20行目  onst uint_t _kernel_tinib_epriority[TNUM_TSKID] = {INT_PRIORITY(1),INT_PRIORITY(1)};  を  onst uint_t _kernel_tinib_epriority[TNUM_TSKID] = {INT_PRIORITY(1),INT_PRIORITY(2)};  に変えてください。task2からtask1へタスクスイッチに必要 です。  task2の優先度を1から2に変更(下げて)しています。 raspbeer pi 用 SSPシュリンク版 22
  • 23. 2.7. 2)説明  task2がゆっくり動いている間 に、task1が起動されるとtask2に割り こんで実行されるのがわかるかと思い ます。 raspbeer pi 用 SSPシュリンク版 23
  • 24. 3. TOPPERS/SSPの紹介   TOPPERS/SSPはTOPPERSプロジ ェクトの成果物であり、オープンソー スソフトウェアです。   ITRON等の組込みOSの一つで、特 徴としては最少セットカーネルと呼ば れており、 もっともフットプリントの小さなもの です。簡単に言えばもっとも単機能で 小さなものです。 raspbeer pi 用 SSPシュリンク版 24
  • 25. SSPシュリンク版  SSPシュリンク版は、TOPPERS/SSPを元に改造を 加えた海賊版です。   これは、アライブビジョンソフトウェア株式会社 の髙橋が作成しSourceforge (alvstakahashi) に公開しています。   特徴としては、TOPPERS/SSPをさらに小さくし たのですが、OS無環境に乗りやすいように、ざっ くり説明するとmain部分を外したものです。   つまり、HelloWordとLEDチカチカができる環境 にOSを載せる部分のみ「くりぬいた」ものです。 raspbeer pi 用 SSPシュリンク版 25
  • 26. シュリンク版のありか   Sourceforgeには、Interface付録のRX62N用の ものを公開しています。 http://sourceforge.jp/projects/shrink-sp-rx62n/releases/  実機なしで、HEWシミュレータ環境での手順も公 開しています。 http://sourceforge.jp/users/alvstakahashi/pf/work2/wiki/F rontPage   今回Raspberry-piのbareMetalが電子本で公開さ れましたので、それをベースにraspberry-pi対応版 を作り、今回お披露目しております。 raspbeer pi 用 SSPシュリンク版 26
  • 27. 4.RX62Nからの変更点  追加 includearm.h      TOPPERS/ASP ARM-A9のものからコピー  追加 includearm_tool.h      TOPPERS/ASP ARM-A9のものからコピー  追加 includecore_asm.inc      TOPPERS/ASP ARM-A9のものからコピー  追加 includecore_config.h      TOPPERS/ASP ARM-A9のものからコピー raspbeer pi 用 SSPシュリンク版 27
  • 28. 4.RX62Nからの変更点 続き  追加 includecore_stddef.h     TOPPERS/ASP ARM-A9のものから コピー  追加 includetarget_asm.inc TOPPERS/ASP ARM-A9のものから コピーして修正(階層を浅くした)  改訂 includetarget_kernel.h #ifdef TOPPERS_RPI lock_cpu関連  差替え ssprpi_support.S prc_support.src の差し替え 改訂 raspbeer pi 用 SSPシュリンク版 28
  • 29. 参考URL mrubyをRaspberry Pi(bare metal) で動 かす: Windows 編  http://qiita.com/yamanekko/items/3b1ea e1934c4ead618cf raspbeer pi 用 SSPシュリンク版 29
  • 30. 5.余談 a.QEMUによる実機無の話 b.JTAGデバッガ raspbeer pi 用 SSPシュリンク版 30