SlideShare une entreprise Scribd logo
1  sur  12
Debianを用いたCortex-M3マイコン
開発事例のご紹介
Debianを用いたCortex-M3マイコン
開発事例のご紹介
Debianを用いたCortex-M3マイコン
開発事例のご紹介
Debianを用いたCortex-M3マイコン
開発事例のご紹介
Debianを用いたCortex-M3マイコン
開発事例のご紹介
Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe
私は誰?私は誰?私は誰?私は誰?私は誰?
☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q
☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務
☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた
☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます
☆ OSSに興味のある{エンジニア,インターン}
募集中です!
☆ OSSに興味のある{エンジニア,インターン}
募集中です!
☆ OSSに興味のある{エンジニア,インターン}
募集中です!
☆ OSSに興味のある{エンジニア,インターン}
募集中です!
☆ OSSに興味のある{エンジニア,インターン}
募集中です!
Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?
☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン
☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる
メーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくい
☆ Eclipseよくわからない☆ Eclipseよくわからない☆ Eclipseよくわからない☆ Eclipseよくわからない☆ Eclipseよくわからない
☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり
☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...
Debianでもマイコン開発したい!Debianでもマイコン開発したい!Debianでもマイコン開発したい!Debianでもマイコン開発したい!Debianでもマイコン開発したい!
☆ 今回はSTマイクロ社に焦点をしぼります☆ 今回はSTマイクロ社に焦点をしぼります☆ 今回はSTマイクロ社に焦点をしぼります☆ 今回はSTマイクロ社に焦点をしぼります☆ 今回はSTマイクロ社に焦点をしぼります
☆ ボード: STM32F3DISCOVERY☆ ボード: STM32F3DISCOVERY☆ ボード: STM32F3DISCOVERY☆ ボード: STM32F3DISCOVERY☆ ボード: STM32F3DISCOVERY
☆ ROM: 256kB☆ ROM: 256kB☆ ROM: 256kB☆ ROM: 256kB☆ ROM: 256kB
☆ RAM: 48kB☆ RAM: 48kB☆ RAM: 48kB☆ RAM: 48kB☆ RAM: 48kB
☆ 価格: 950円 <= 殺人的安さ☆ 価格: 950円 <= 殺人的安さ☆ 価格: 950円 <= 殺人的安さ☆ 価格: 950円 <= 殺人的安さ☆ 価格: 950円 <= 殺人的安さ
☆ 備考: デバッガ用のST-LINKチップ搭載☆ 備考: デバッガ用のST-LINKチップ搭載☆ 備考: デバッガ用のST-LINKチップ搭載☆ 備考: デバッガ用のST-LINKチップ搭載☆ 備考: デバッガ用のST-LINKチップ搭載
開発全体の流れ開発全体の流れ開発全体の流れ開発全体の流れ開発全体の流れ
ソースコードテンプレートソースコードテンプレートソースコードテンプレートソースコードテンプレートソースコードテンプレート
☆ テンプレを使えば楽にスタートできる☆ テンプレを使えば楽にスタートできる☆ テンプレを使えば楽にスタートできる☆ テンプレを使えば楽にスタートできる☆ テンプレを使えば楽にスタートできる
$ git clone https://github.com/mblythe86/stm32f3-discovery-basic-
template.git
$ cd stm32f3-discovery-basic-template
$ vi src/main.c
$ git clone https://github.com/mblythe86/stm32f3-discovery-basic-
template.git
$ cd stm32f3-discovery-basic-template
$ vi src/main.c
$ git clone https://github.com/mblythe86/stm32f3-discovery-basic-
template.git
$ cd stm32f3-discovery-basic-template
$ vi src/main.c
$ git clone https://github.com/mblythe86/stm32f3-discovery-basic-
template.git
$ cd stm32f3-discovery-basic-template
$ vi src/main.c
$ git clone https://github.com/mblythe86/stm32f3-discovery-basic-
template.git
$ cd stm32f3-discovery-basic-template
$ vi src/main.c
int main(void)
{
// --snip--
while (1)
{
STM_EVAL_LEDOff(LED3);
STM_EVAL_LEDOff(LED6);
// --snip--
Delay(50); /*500ms - half second*/
STM_EVAL_LEDOn(LED3);
STM_EVAL_LEDOn(LED6);
// --snip--
Delay(50); /*500ms - half second*/
}
int main(void)
{
// --snip--
while (1)
{
STM_EVAL_LEDOff(LED3);
STM_EVAL_LEDOff(LED6);
// --snip--
Delay(50); /*500ms - half second*/
STM_EVAL_LEDOn(LED3);
STM_EVAL_LEDOn(LED6);
// --snip--
Delay(50); /*500ms - half second*/
}
int main(void)
{
// --snip--
while (1)
{
STM_EVAL_LEDOff(LED3);
STM_EVAL_LEDOff(LED6);
// --snip--
Delay(50); /*500ms - half second*/
STM_EVAL_LEDOn(LED3);
STM_EVAL_LEDOn(LED6);
// --snip--
Delay(50); /*500ms - half second*/
}
int main(void)
{
// --snip--
while (1)
{
STM_EVAL_LEDOff(LED3);
STM_EVAL_LEDOff(LED6);
// --snip--
Delay(50); /*500ms - half second*/
STM_EVAL_LEDOn(LED3);
STM_EVAL_LEDOn(LED6);
// --snip--
Delay(50); /*500ms - half second*/
}
int main(void)
{
// --snip--
while (1)
{
STM_EVAL_LEDOff(LED3);
STM_EVAL_LEDOff(LED6);
// --snip--
Delay(50); /*500ms - half second*/
STM_EVAL_LEDOn(LED3);
STM_EVAL_LEDOn(LED6);
// --snip--
Delay(50); /*500ms - half second*/
}
クロスコンパイルクロスコンパイルクロスコンパイルクロスコンパイルクロスコンパイル
☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール
$ sudo apt-get install flex bison libgmp3-dev libmpfr-dev
libncurses5-dev libmpc-dev autoconf texinfo build-essential
libftdi-dev zlib1g-dev git zlib1g-dev python-yaml
$ git clone git://github.com/esden/summon-arm-toolchain.git
$ cd summon-arm-toolchain
$ ./summon-arm-toolchain
$ export PATH=$HOME/sat/bin:$PATH
$ sudo apt-get install flex bison libgmp3-dev libmpfr-dev
libncurses5-dev libmpc-dev autoconf texinfo build-essential
libftdi-dev zlib1g-dev git zlib1g-dev python-yaml
$ git clone git://github.com/esden/summon-arm-toolchain.git
$ cd summon-arm-toolchain
$ ./summon-arm-toolchain
$ export PATH=$HOME/sat/bin:$PATH
$ sudo apt-get install flex bison libgmp3-dev libmpfr-dev
libncurses5-dev libmpc-dev autoconf texinfo build-essential
libftdi-dev zlib1g-dev git zlib1g-dev python-yaml
$ git clone git://github.com/esden/summon-arm-toolchain.git
$ cd summon-arm-toolchain
$ ./summon-arm-toolchain
$ export PATH=$HOME/sat/bin:$PATH
$ sudo apt-get install flex bison libgmp3-dev libmpfr-dev
libncurses5-dev libmpc-dev autoconf texinfo build-essential
libftdi-dev zlib1g-dev git zlib1g-dev python-yaml
$ git clone git://github.com/esden/summon-arm-toolchain.git
$ cd summon-arm-toolchain
$ ./summon-arm-toolchain
$ export PATH=$HOME/sat/bin:$PATH
$ sudo apt-get install flex bison libgmp3-dev libmpfr-dev
libncurses5-dev libmpc-dev autoconf texinfo build-essential
libftdi-dev zlib1g-dev git zlib1g-dev python-yaml
$ git clone git://github.com/esden/summon-arm-toolchain.git
$ cd summon-arm-toolchain
$ ./summon-arm-toolchain
$ export PATH=$HOME/sat/bin:$PATH
☆ さっきのテンプレをクロスコンパイル☆ さっきのテンプレをクロスコンパイル☆ さっきのテンプレをクロスコンパイル☆ さっきのテンプレをクロスコンパイル☆ さっきのテンプレをクロスコンパイル
$ cd stm32f3-discovery-basic-template
$ make
$ file main.elf
main.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV),
statically linked, not stripped
$ cd stm32f3-discovery-basic-template
$ make
$ file main.elf
main.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV),
statically linked, not stripped
$ cd stm32f3-discovery-basic-template
$ make
$ file main.elf
main.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV),
statically linked, not stripped
$ cd stm32f3-discovery-basic-template
$ make
$ file main.elf
main.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV),
statically linked, not stripped
$ cd stm32f3-discovery-basic-template
$ make
$ file main.elf
main.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV),
statically linked, not stripped
ファーム書き込みの準備ファーム書き込みの準備ファーム書き込みの準備ファーム書き込みの準備ファーム書き込みの準備
☆ st-utilコマンドが便利☆ st-utilコマンドが便利☆ st-utilコマンドが便利☆ st-utilコマンドが便利☆ st-utilコマンドが便利
$ sudo apt-get install libsgutils2-dev libusb-1.0-0-dev
$ git clone git://github.com/texane/stlink.git
$ cd stlink
$ ./autogen.sh && ./configure && make
$ sudo make install
$ sudo apt-get install libsgutils2-dev libusb-1.0-0-dev
$ git clone git://github.com/texane/stlink.git
$ cd stlink
$ ./autogen.sh && ./configure && make
$ sudo make install
$ sudo apt-get install libsgutils2-dev libusb-1.0-0-dev
$ git clone git://github.com/texane/stlink.git
$ cd stlink
$ ./autogen.sh && ./configure && make
$ sudo make install
$ sudo apt-get install libsgutils2-dev libusb-1.0-0-dev
$ git clone git://github.com/texane/stlink.git
$ cd stlink
$ ./autogen.sh && ./configure && make
$ sudo make install
$ sudo apt-get install libsgutils2-dev libusb-1.0-0-dev
$ git clone git://github.com/texane/stlink.git
$ cd stlink
$ ./autogen.sh && ./configure && make
$ sudo make install
☆ テンプレのMakefileを修正☆ テンプレのMakefileを修正☆ テンプレのMakefileを修正☆ テンプレのMakefileを修正☆ テンプレのMakefileを修正
$ cd stm32f3-discovery-basic-template
$ cat > gdbwrite.boot
tar ext localhost:4242
load main.elf
$ cat >> Makefile
gdbwrite: all
$(GDB) -x gdbwrite.boot $(PROJ_NAME).elf
$ cd stm32f3-discovery-basic-template
$ cat > gdbwrite.boot
tar ext localhost:4242
load main.elf
$ cat >> Makefile
gdbwrite: all
$(GDB) -x gdbwrite.boot $(PROJ_NAME).elf
$ cd stm32f3-discovery-basic-template
$ cat > gdbwrite.boot
tar ext localhost:4242
load main.elf
$ cat >> Makefile
gdbwrite: all
$(GDB) -x gdbwrite.boot $(PROJ_NAME).elf
$ cd stm32f3-discovery-basic-template
$ cat > gdbwrite.boot
tar ext localhost:4242
load main.elf
$ cat >> Makefile
gdbwrite: all
$(GDB) -x gdbwrite.boot $(PROJ_NAME).elf
$ cd stm32f3-discovery-basic-template
$ cat > gdbwrite.boot
tar ext localhost:4242
load main.elf
$ cat >> Makefile
gdbwrite: all
$(GDB) -x gdbwrite.boot $(PROJ_NAME).elf
ファーム書き込み/デバッグファーム書き込み/デバッグファーム書き込み/デバッグファーム書き込み/デバッグファーム書き込み/デバッグ
☆ まずst-utilを起動しておく☆ まずst-utilを起動しておく☆ まずst-utilを起動しておく☆ まずst-utilを起動しておく☆ まずst-utilを起動しておく
$ sudo st-util$ sudo st-util$ sudo st-util$ sudo st-util$ sudo st-util
☆ 別のコンソールを開いてgdbを起動する☆ 別のコンソールを開いてgdbを起動する☆ 別のコンソールを開いてgdbを起動する☆ 別のコンソールを開いてgdbを起動する☆ 別のコンソールを開いてgdbを起動する
$ cd stm32f3-discovery-basic-template
$ make gdbwrite
--snip--
Start address 0x8000db5, load size 3744
Transfer rate: 7 KB/sec, 1248 bytes/write.
(gdb) c
### プログラム実行開始 / C-cを押下するとプロンプトに戻る ###
(gdb) bt
#0 Delay (nTime=nTime@entry=50) at src/main.c:82
#1 0x08000bdc in main () at src/main.c:58
$ cd stm32f3-discovery-basic-template
$ make gdbwrite
--snip--
Start address 0x8000db5, load size 3744
Transfer rate: 7 KB/sec, 1248 bytes/write.
(gdb) c
### プログラム実行開始 / C-cを押下するとプロンプトに戻る ###
(gdb) bt
#0 Delay (nTime=nTime@entry=50) at src/main.c:82
#1 0x08000bdc in main () at src/main.c:58
$ cd stm32f3-discovery-basic-template
$ make gdbwrite
--snip--
Start address 0x8000db5, load size 3744
Transfer rate: 7 KB/sec, 1248 bytes/write.
(gdb) c
### プログラム実行開始 / C-cを押下するとプロンプトに戻る ###
(gdb) bt
#0 Delay (nTime=nTime@entry=50) at src/main.c:82
#1 0x08000bdc in main () at src/main.c:58
$ cd stm32f3-discovery-basic-template
$ make gdbwrite
--snip--
Start address 0x8000db5, load size 3744
Transfer rate: 7 KB/sec, 1248 bytes/write.
(gdb) c
### プログラム実行開始 / C-cを押下するとプロンプトに戻る ###
(gdb) bt
#0 Delay (nTime=nTime@entry=50) at src/main.c:82
#1 0x08000bdc in main () at src/main.c:58
$ cd stm32f3-discovery-basic-template
$ make gdbwrite
--snip--
Start address 0x8000db5, load size 3744
Transfer rate: 7 KB/sec, 1248 bytes/write.
(gdb) c
### プログラム実行開始 / C-cを押下するとプロンプトに戻る ###
(gdb) bt
#0 Delay (nTime=nTime@entry=50) at src/main.c:82
#1 0x08000bdc in main () at src/main.c:58
これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!
HaskellマイコンプログラミングHaskellマイコンプログラミングHaskellマイコンプログラミングHaskellマイコンプログラミングHaskellマイコンプログラミング
☆ Ajhc - http://ajhc.metasepi.org/☆ Ajhc - http://ajhc.metasepi.org/☆ Ajhc - http://ajhc.metasepi.org/☆ Ajhc - http://ajhc.metasepi.org/☆ Ajhc - http://ajhc.metasepi.org/
宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します
☆ コミックマーケット84☆ コミックマーケット84☆ コミックマーケット84☆ コミックマーケット84☆ コミックマーケット84
☆ 3日目 東地区 ペ-06a☆ 3日目 東地区 ペ-06a☆ 3日目 東地区 ペ-06a☆ 3日目 東地区 ペ-06a☆ 3日目 東地区 ペ-06a
☆ サークル名: 参照透明な海を守る会☆ サークル名: 参照透明な海を守る会☆ サークル名: 参照透明な海を守る会☆ サークル名: 参照透明な海を守る会☆ サークル名: 参照透明な海を守る会
☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/
☆ 関数型言語の同人誌☆ 関数型言語の同人誌☆ 関数型言語の同人誌☆ 関数型言語の同人誌☆ 関数型言語の同人誌
☆ 今回のCortex-M3の話も掲載☆ 今回のCortex-M3の話も掲載☆ 今回のCortex-M3の話も掲載☆ 今回のCortex-M3の話も掲載☆ 今回のCortex-M3の話も掲載
☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!

Contenu connexe

Tendances

2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料Yasutaka Hamada
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたatk1234
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするRyo Adachi
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspecTsuyoshi Yamada
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪Kunihiro TANAKA
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsUchio Kondo
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
Alpine linuxを触ってみよう
Alpine linuxを触ってみようAlpine linuxを触ってみよう
Alpine linuxを触ってみようRyo Adachi
 
githubハンズオン
githubハンズオンgithubハンズオン
githubハンズオンAyaka Ueda
 
Python開発環境三種の神器
Python開発環境三種の神器Python開発環境三種の神器
Python開発環境三種の神器Yukitaka Uchikoshi
 
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Masahito Zembutsu
 
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門Masashi Shinbara
 
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugChef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugTakeshi Komiya
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Tetsurou Yano
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかたMasahito Zembutsu
 
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境Kazuhiro Nishiyama
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化Yuki Kanazawa
 

Tendances (20)

2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspec
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp tools
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
真Drone入門
真Drone入門真Drone入門
真Drone入門
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
Alpine linuxを触ってみよう
Alpine linuxを触ってみようAlpine linuxを触ってみよう
Alpine linuxを触ってみよう
 
githubハンズオン
githubハンズオンgithubハンズオン
githubハンズオン
 
Python開発環境三種の神器
Python開発環境三種の神器Python開発環境三種の神器
Python開発環境三種の神器
 
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
 
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
 
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugChef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかた
 
Docker入門
Docker入門Docker入門
Docker入門
 
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
 

En vedette

Feral Management An Innovative Alternative
Feral Management An Innovative AlternativeFeral Management An Innovative Alternative
Feral Management An Innovative Alternativetysonsuepat
 
T mobile t959-vibrant_spanish_user_guide
T mobile t959-vibrant_spanish_user_guideT mobile t959-vibrant_spanish_user_guide
T mobile t959-vibrant_spanish_user_guidecmade123
 
OSUNCが終わったら帰りはお風呂に入りましょう(Open Source UN-Conference 川越 発表資料)
OSUNCが終わったら帰りはお風呂に入りましょう(Open Source UN-Conference 川越 発表資料)OSUNCが終わったら帰りはお風呂に入りましょう(Open Source UN-Conference 川越 発表資料)
OSUNCが終わったら帰りはお風呂に入りましょう(Open Source UN-Conference 川越 発表資料)洋史 東平
 
Save The Planet By Jen Wong Nov 24
Save The Planet By Jen Wong Nov 24Save The Planet By Jen Wong Nov 24
Save The Planet By Jen Wong Nov 24wonkajenn
 
Career Camp: Digital Design
Career Camp: Digital DesignCareer Camp: Digital Design
Career Camp: Digital DesignLiz Danzico
 
Urban Riders Ultimate Guide to Riding to Work!
Urban Riders Ultimate Guide to Riding to Work!Urban Riders Ultimate Guide to Riding to Work!
Urban Riders Ultimate Guide to Riding to Work!Susan Stokhof
 
Software Freedom Day 2012をみんなで祝おう & 図形の問題 出題編(OSC2012 Shimane LT資料)
Software Freedom Day 2012をみんなで祝おう & 図形の問題 出題編(OSC2012 Shimane LT資料)Software Freedom Day 2012をみんなで祝おう & 図形の問題 出題編(OSC2012 Shimane LT資料)
Software Freedom Day 2012をみんなで祝おう & 図形の問題 出題編(OSC2012 Shimane LT資料)洋史 東平
 
Alpha script George Delaportas
Alpha script George DelaportasAlpha script George Delaportas
Alpha script George DelaportasIgnite_Athens
 
Looking Behind. And ahead.
Looking Behind. And ahead.Looking Behind. And ahead.
Looking Behind. And ahead.Sarup Banskota
 
Office 365版Lync Onlineの技術概要
Office 365版Lync Onlineの技術概要Office 365版Lync Onlineの技術概要
Office 365版Lync Onlineの技術概要kumo2010
 
Média sociaux risques ou opportunités pour des entreprises 2.0
Média sociaux risques ou opportunités pour des entreprises 2.0Média sociaux risques ou opportunités pour des entreprises 2.0
Média sociaux risques ou opportunités pour des entreprises 2.0Prof. Jacques Folon (Ph.D)
 
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)洋史 東平
 
Bluefin mit tech-review
Bluefin mit tech-reviewBluefin mit tech-review
Bluefin mit tech-reviewweerawatplc
 
データ圧縮
データ圧縮データ圧縮
データ圧縮Joe Suzuki
 

En vedette (20)

Feral Management An Innovative Alternative
Feral Management An Innovative AlternativeFeral Management An Innovative Alternative
Feral Management An Innovative Alternative
 
Glossary
GlossaryGlossary
Glossary
 
T mobile t959-vibrant_spanish_user_guide
T mobile t959-vibrant_spanish_user_guideT mobile t959-vibrant_spanish_user_guide
T mobile t959-vibrant_spanish_user_guide
 
OSUNCが終わったら帰りはお風呂に入りましょう(Open Source UN-Conference 川越 発表資料)
OSUNCが終わったら帰りはお風呂に入りましょう(Open Source UN-Conference 川越 発表資料)OSUNCが終わったら帰りはお風呂に入りましょう(Open Source UN-Conference 川越 発表資料)
OSUNCが終わったら帰りはお風呂に入りましょう(Open Source UN-Conference 川越 発表資料)
 
Save The Planet By Jen Wong Nov 24
Save The Planet By Jen Wong Nov 24Save The Planet By Jen Wong Nov 24
Save The Planet By Jen Wong Nov 24
 
Just as I am
Just as I amJust as I am
Just as I am
 
Career Camp: Digital Design
Career Camp: Digital DesignCareer Camp: Digital Design
Career Camp: Digital Design
 
Keynote by Jane Wells
Keynote by Jane WellsKeynote by Jane Wells
Keynote by Jane Wells
 
data inggris
data inggrisdata inggris
data inggris
 
Urban Riders Ultimate Guide to Riding to Work!
Urban Riders Ultimate Guide to Riding to Work!Urban Riders Ultimate Guide to Riding to Work!
Urban Riders Ultimate Guide to Riding to Work!
 
Software Freedom Day 2012をみんなで祝おう & 図形の問題 出題編(OSC2012 Shimane LT資料)
Software Freedom Day 2012をみんなで祝おう & 図形の問題 出題編(OSC2012 Shimane LT資料)Software Freedom Day 2012をみんなで祝おう & 図形の問題 出題編(OSC2012 Shimane LT資料)
Software Freedom Day 2012をみんなで祝おう & 図形の問題 出題編(OSC2012 Shimane LT資料)
 
Angel 101 - The Fundamentals of Angel Investing
Angel 101 - The Fundamentals of Angel InvestingAngel 101 - The Fundamentals of Angel Investing
Angel 101 - The Fundamentals of Angel Investing
 
Alpha script George Delaportas
Alpha script George DelaportasAlpha script George Delaportas
Alpha script George Delaportas
 
Looking Behind. And ahead.
Looking Behind. And ahead.Looking Behind. And ahead.
Looking Behind. And ahead.
 
Medo dos outros desde criança
Medo dos outros desde criançaMedo dos outros desde criança
Medo dos outros desde criança
 
Office 365版Lync Onlineの技術概要
Office 365版Lync Onlineの技術概要Office 365版Lync Onlineの技術概要
Office 365版Lync Onlineの技術概要
 
Média sociaux risques ou opportunités pour des entreprises 2.0
Média sociaux risques ou opportunités pour des entreprises 2.0Média sociaux risques ou opportunités pour des entreprises 2.0
Média sociaux risques ou opportunités pour des entreprises 2.0
 
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
 
Bluefin mit tech-review
Bluefin mit tech-reviewBluefin mit tech-review
Bluefin mit tech-review
 
データ圧縮
データ圧縮データ圧縮
データ圧縮
 

Similaire à Debianを用いたCortex-M3マイコン開発事例のご紹介

ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像Kiwamu Okabe
 
Google container builderと友だちになるまで
Google container builderと友だちになるまでGoogle container builderと友だちになるまで
Google container builderと友だちになるまでlestrrat
 
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングmbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングKiwamu Okabe
 
git 初めの一歩
git 初めの一歩git 初めの一歩
git 初めの一歩Shin Yoshida
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツールtotty jp
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようmax747
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE辰徳 斎藤
 
ReVIEWとLibreOfficeとOMakeで本を書きましょう!
ReVIEWとLibreOfficeとOMakeで本を書きましょう!ReVIEWとLibreOfficeとOMakeで本を書きましょう!
ReVIEWとLibreOfficeとOMakeで本を書きましょう!Kiwamu Okabe
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 
Metahub for github
Metahub for githubMetahub for github
Metahub for githubSuguru Oho
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATETomofumi Yagi
 
家に帰るまでが遠足です
家に帰るまでが遠足です家に帰るまでが遠足です
家に帰るまでが遠足ですCryolite
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Hitoshi Kurokawa
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Nobuhiro Iwamatsu
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Naoki Nagazumi
 

Similaire à Debianを用いたCortex-M3マイコン開発事例のご紹介 (20)

ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像
 
Google container builderと友だちになるまで
Google container builderと友だちになるまでGoogle container builderと友だちになるまで
Google container builderと友だちになるまで
 
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングmbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミング
 
git 初めの一歩
git 初めの一歩git 初めの一歩
git 初めの一歩
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
 
Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
 
ReVIEWとLibreOfficeとOMakeで本を書きましょう!
ReVIEWとLibreOfficeとOMakeで本を書きましょう!ReVIEWとLibreOfficeとOMakeで本を書きましょう!
ReVIEWとLibreOfficeとOMakeで本を書きましょう!
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
 
Capistrano
CapistranoCapistrano
Capistrano
 
Git (運用編)
Git (運用編)Git (運用編)
Git (運用編)
 
家に帰るまでが遠足です
家に帰るまでが遠足です家に帰るまでが遠足です
家に帰るまでが遠足です
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
Mina 20130417
Mina 20130417Mina 20130417
Mina 20130417
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
 

Debianを用いたCortex-M3マイコン開発事例のご紹介

  • 2. 私は誰?私は誰?私は誰?私は誰?私は誰? ☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q ☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務☆ ミラクル・リナックス勤務 ☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた☆ 前はコピー機のOSをNetBSDで作ってた ☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます☆ デジタルサイネージのソフト開発してます ☆ OSSに興味のある{エンジニア,インターン} 募集中です! ☆ OSSに興味のある{エンジニア,インターン} 募集中です! ☆ OSSに興味のある{エンジニア,インターン} 募集中です! ☆ OSSに興味のある{エンジニア,インターン} 募集中です! ☆ OSSに興味のある{エンジニア,インターン} 募集中です!
  • 3. Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか? ☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン ☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる
  • 4. メーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくい ☆ Eclipseよくわからない☆ Eclipseよくわからない☆ Eclipseよくわからない☆ Eclipseよくわからない☆ Eclipseよくわからない ☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり ☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...
  • 5. Debianでもマイコン開発したい!Debianでもマイコン開発したい!Debianでもマイコン開発したい!Debianでもマイコン開発したい!Debianでもマイコン開発したい! ☆ 今回はSTマイクロ社に焦点をしぼります☆ 今回はSTマイクロ社に焦点をしぼります☆ 今回はSTマイクロ社に焦点をしぼります☆ 今回はSTマイクロ社に焦点をしぼります☆ 今回はSTマイクロ社に焦点をしぼります ☆ ボード: STM32F3DISCOVERY☆ ボード: STM32F3DISCOVERY☆ ボード: STM32F3DISCOVERY☆ ボード: STM32F3DISCOVERY☆ ボード: STM32F3DISCOVERY ☆ ROM: 256kB☆ ROM: 256kB☆ ROM: 256kB☆ ROM: 256kB☆ ROM: 256kB ☆ RAM: 48kB☆ RAM: 48kB☆ RAM: 48kB☆ RAM: 48kB☆ RAM: 48kB ☆ 価格: 950円 <= 殺人的安さ☆ 価格: 950円 <= 殺人的安さ☆ 価格: 950円 <= 殺人的安さ☆ 価格: 950円 <= 殺人的安さ☆ 価格: 950円 <= 殺人的安さ ☆ 備考: デバッガ用のST-LINKチップ搭載☆ 備考: デバッガ用のST-LINKチップ搭載☆ 備考: デバッガ用のST-LINKチップ搭載☆ 備考: デバッガ用のST-LINKチップ搭載☆ 備考: デバッガ用のST-LINKチップ搭載
  • 7. ソースコードテンプレートソースコードテンプレートソースコードテンプレートソースコードテンプレートソースコードテンプレート ☆ テンプレを使えば楽にスタートできる☆ テンプレを使えば楽にスタートできる☆ テンプレを使えば楽にスタートできる☆ テンプレを使えば楽にスタートできる☆ テンプレを使えば楽にスタートできる $ git clone https://github.com/mblythe86/stm32f3-discovery-basic- template.git $ cd stm32f3-discovery-basic-template $ vi src/main.c $ git clone https://github.com/mblythe86/stm32f3-discovery-basic- template.git $ cd stm32f3-discovery-basic-template $ vi src/main.c $ git clone https://github.com/mblythe86/stm32f3-discovery-basic- template.git $ cd stm32f3-discovery-basic-template $ vi src/main.c $ git clone https://github.com/mblythe86/stm32f3-discovery-basic- template.git $ cd stm32f3-discovery-basic-template $ vi src/main.c $ git clone https://github.com/mblythe86/stm32f3-discovery-basic- template.git $ cd stm32f3-discovery-basic-template $ vi src/main.c int main(void) { // --snip-- while (1) { STM_EVAL_LEDOff(LED3); STM_EVAL_LEDOff(LED6); // --snip-- Delay(50); /*500ms - half second*/ STM_EVAL_LEDOn(LED3); STM_EVAL_LEDOn(LED6); // --snip-- Delay(50); /*500ms - half second*/ } int main(void) { // --snip-- while (1) { STM_EVAL_LEDOff(LED3); STM_EVAL_LEDOff(LED6); // --snip-- Delay(50); /*500ms - half second*/ STM_EVAL_LEDOn(LED3); STM_EVAL_LEDOn(LED6); // --snip-- Delay(50); /*500ms - half second*/ } int main(void) { // --snip-- while (1) { STM_EVAL_LEDOff(LED3); STM_EVAL_LEDOff(LED6); // --snip-- Delay(50); /*500ms - half second*/ STM_EVAL_LEDOn(LED3); STM_EVAL_LEDOn(LED6); // --snip-- Delay(50); /*500ms - half second*/ } int main(void) { // --snip-- while (1) { STM_EVAL_LEDOff(LED3); STM_EVAL_LEDOff(LED6); // --snip-- Delay(50); /*500ms - half second*/ STM_EVAL_LEDOn(LED3); STM_EVAL_LEDOn(LED6); // --snip-- Delay(50); /*500ms - half second*/ } int main(void) { // --snip-- while (1) { STM_EVAL_LEDOff(LED3); STM_EVAL_LEDOff(LED6); // --snip-- Delay(50); /*500ms - half second*/ STM_EVAL_LEDOn(LED3); STM_EVAL_LEDOn(LED6); // --snip-- Delay(50); /*500ms - half second*/ }
  • 8. クロスコンパイルクロスコンパイルクロスコンパイルクロスコンパイルクロスコンパイル ☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール $ sudo apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev autoconf texinfo build-essential libftdi-dev zlib1g-dev git zlib1g-dev python-yaml $ git clone git://github.com/esden/summon-arm-toolchain.git $ cd summon-arm-toolchain $ ./summon-arm-toolchain $ export PATH=$HOME/sat/bin:$PATH $ sudo apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev autoconf texinfo build-essential libftdi-dev zlib1g-dev git zlib1g-dev python-yaml $ git clone git://github.com/esden/summon-arm-toolchain.git $ cd summon-arm-toolchain $ ./summon-arm-toolchain $ export PATH=$HOME/sat/bin:$PATH $ sudo apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev autoconf texinfo build-essential libftdi-dev zlib1g-dev git zlib1g-dev python-yaml $ git clone git://github.com/esden/summon-arm-toolchain.git $ cd summon-arm-toolchain $ ./summon-arm-toolchain $ export PATH=$HOME/sat/bin:$PATH $ sudo apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev autoconf texinfo build-essential libftdi-dev zlib1g-dev git zlib1g-dev python-yaml $ git clone git://github.com/esden/summon-arm-toolchain.git $ cd summon-arm-toolchain $ ./summon-arm-toolchain $ export PATH=$HOME/sat/bin:$PATH $ sudo apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev autoconf texinfo build-essential libftdi-dev zlib1g-dev git zlib1g-dev python-yaml $ git clone git://github.com/esden/summon-arm-toolchain.git $ cd summon-arm-toolchain $ ./summon-arm-toolchain $ export PATH=$HOME/sat/bin:$PATH ☆ さっきのテンプレをクロスコンパイル☆ さっきのテンプレをクロスコンパイル☆ さっきのテンプレをクロスコンパイル☆ さっきのテンプレをクロスコンパイル☆ さっきのテンプレをクロスコンパイル $ cd stm32f3-discovery-basic-template $ make $ file main.elf main.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped $ cd stm32f3-discovery-basic-template $ make $ file main.elf main.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped $ cd stm32f3-discovery-basic-template $ make $ file main.elf main.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped $ cd stm32f3-discovery-basic-template $ make $ file main.elf main.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped $ cd stm32f3-discovery-basic-template $ make $ file main.elf main.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped
  • 9. ファーム書き込みの準備ファーム書き込みの準備ファーム書き込みの準備ファーム書き込みの準備ファーム書き込みの準備 ☆ st-utilコマンドが便利☆ st-utilコマンドが便利☆ st-utilコマンドが便利☆ st-utilコマンドが便利☆ st-utilコマンドが便利 $ sudo apt-get install libsgutils2-dev libusb-1.0-0-dev $ git clone git://github.com/texane/stlink.git $ cd stlink $ ./autogen.sh && ./configure && make $ sudo make install $ sudo apt-get install libsgutils2-dev libusb-1.0-0-dev $ git clone git://github.com/texane/stlink.git $ cd stlink $ ./autogen.sh && ./configure && make $ sudo make install $ sudo apt-get install libsgutils2-dev libusb-1.0-0-dev $ git clone git://github.com/texane/stlink.git $ cd stlink $ ./autogen.sh && ./configure && make $ sudo make install $ sudo apt-get install libsgutils2-dev libusb-1.0-0-dev $ git clone git://github.com/texane/stlink.git $ cd stlink $ ./autogen.sh && ./configure && make $ sudo make install $ sudo apt-get install libsgutils2-dev libusb-1.0-0-dev $ git clone git://github.com/texane/stlink.git $ cd stlink $ ./autogen.sh && ./configure && make $ sudo make install ☆ テンプレのMakefileを修正☆ テンプレのMakefileを修正☆ テンプレのMakefileを修正☆ テンプレのMakefileを修正☆ テンプレのMakefileを修正 $ cd stm32f3-discovery-basic-template $ cat > gdbwrite.boot tar ext localhost:4242 load main.elf $ cat >> Makefile gdbwrite: all $(GDB) -x gdbwrite.boot $(PROJ_NAME).elf $ cd stm32f3-discovery-basic-template $ cat > gdbwrite.boot tar ext localhost:4242 load main.elf $ cat >> Makefile gdbwrite: all $(GDB) -x gdbwrite.boot $(PROJ_NAME).elf $ cd stm32f3-discovery-basic-template $ cat > gdbwrite.boot tar ext localhost:4242 load main.elf $ cat >> Makefile gdbwrite: all $(GDB) -x gdbwrite.boot $(PROJ_NAME).elf $ cd stm32f3-discovery-basic-template $ cat > gdbwrite.boot tar ext localhost:4242 load main.elf $ cat >> Makefile gdbwrite: all $(GDB) -x gdbwrite.boot $(PROJ_NAME).elf $ cd stm32f3-discovery-basic-template $ cat > gdbwrite.boot tar ext localhost:4242 load main.elf $ cat >> Makefile gdbwrite: all $(GDB) -x gdbwrite.boot $(PROJ_NAME).elf
  • 10. ファーム書き込み/デバッグファーム書き込み/デバッグファーム書き込み/デバッグファーム書き込み/デバッグファーム書き込み/デバッグ ☆ まずst-utilを起動しておく☆ まずst-utilを起動しておく☆ まずst-utilを起動しておく☆ まずst-utilを起動しておく☆ まずst-utilを起動しておく $ sudo st-util$ sudo st-util$ sudo st-util$ sudo st-util$ sudo st-util ☆ 別のコンソールを開いてgdbを起動する☆ 別のコンソールを開いてgdbを起動する☆ 別のコンソールを開いてgdbを起動する☆ 別のコンソールを開いてgdbを起動する☆ 別のコンソールを開いてgdbを起動する $ cd stm32f3-discovery-basic-template $ make gdbwrite --snip-- Start address 0x8000db5, load size 3744 Transfer rate: 7 KB/sec, 1248 bytes/write. (gdb) c ### プログラム実行開始 / C-cを押下するとプロンプトに戻る ### (gdb) bt #0 Delay (nTime=nTime@entry=50) at src/main.c:82 #1 0x08000bdc in main () at src/main.c:58 $ cd stm32f3-discovery-basic-template $ make gdbwrite --snip-- Start address 0x8000db5, load size 3744 Transfer rate: 7 KB/sec, 1248 bytes/write. (gdb) c ### プログラム実行開始 / C-cを押下するとプロンプトに戻る ### (gdb) bt #0 Delay (nTime=nTime@entry=50) at src/main.c:82 #1 0x08000bdc in main () at src/main.c:58 $ cd stm32f3-discovery-basic-template $ make gdbwrite --snip-- Start address 0x8000db5, load size 3744 Transfer rate: 7 KB/sec, 1248 bytes/write. (gdb) c ### プログラム実行開始 / C-cを押下するとプロンプトに戻る ### (gdb) bt #0 Delay (nTime=nTime@entry=50) at src/main.c:82 #1 0x08000bdc in main () at src/main.c:58 $ cd stm32f3-discovery-basic-template $ make gdbwrite --snip-- Start address 0x8000db5, load size 3744 Transfer rate: 7 KB/sec, 1248 bytes/write. (gdb) c ### プログラム実行開始 / C-cを押下するとプロンプトに戻る ### (gdb) bt #0 Delay (nTime=nTime@entry=50) at src/main.c:82 #1 0x08000bdc in main () at src/main.c:58 $ cd stm32f3-discovery-basic-template $ make gdbwrite --snip-- Start address 0x8000db5, load size 3744 Transfer rate: 7 KB/sec, 1248 bytes/write. (gdb) c ### プログラム実行開始 / C-cを押下するとプロンプトに戻る ### (gdb) bt #0 Delay (nTime=nTime@entry=50) at src/main.c:82 #1 0x08000bdc in main () at src/main.c:58 これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!
  • 11. HaskellマイコンプログラミングHaskellマイコンプログラミングHaskellマイコンプログラミングHaskellマイコンプログラミングHaskellマイコンプログラミング ☆ Ajhc - http://ajhc.metasepi.org/☆ Ajhc - http://ajhc.metasepi.org/☆ Ajhc - http://ajhc.metasepi.org/☆ Ajhc - http://ajhc.metasepi.org/☆ Ajhc - http://ajhc.metasepi.org/
  • 12. 宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します ☆ コミックマーケット84☆ コミックマーケット84☆ コミックマーケット84☆ コミックマーケット84☆ コミックマーケット84 ☆ 3日目 東地区 ペ-06a☆ 3日目 東地区 ペ-06a☆ 3日目 東地区 ペ-06a☆ 3日目 東地区 ペ-06a☆ 3日目 東地区 ペ-06a ☆ サークル名: 参照透明な海を守る会☆ サークル名: 参照透明な海を守る会☆ サークル名: 参照透明な海を守る会☆ サークル名: 参照透明な海を守る会☆ サークル名: 参照透明な海を守る会 ☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/ ☆ 関数型言語の同人誌☆ 関数型言語の同人誌☆ 関数型言語の同人誌☆ 関数型言語の同人誌☆ 関数型言語の同人誌 ☆ 今回のCortex-M3の話も掲載☆ 今回のCortex-M3の話も掲載☆ 今回のCortex-M3の話も掲載☆ 今回のCortex-M3の話も掲載☆ 今回のCortex-M3の話も掲載 ☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!