Debianを用いたCortex-M3マイコン
開発事例のご紹介
Debianを用いたCortex-M3マイコン
開発事例のご紹介
Debianを用いたCortex-M3マイコン
開発事例のご紹介
Debianを用いたCortex-M3マイコン...
私は誰?私は誰?私は誰?私は誰?私は誰?
☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q
...
Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?
☆ ARM社が開発した32bitマイコン☆...
メーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくい
☆ Eclipseよくわからない☆ Eclipseよくわからない☆ Eclipseよくわから...
Debianでもマイコン開発したい!Debianでもマイコン開発したい!Debianでもマイコン開発したい!Debianでもマイコン開発したい!Debianでもマイコン開発したい!
☆ 今回はSTマイクロ社に焦点をしぼります☆ 今回はSTマイク...
開発全体の流れ開発全体の流れ開発全体の流れ開発全体の流れ開発全体の流れ
ソースコードテンプレートソースコードテンプレートソースコードテンプレートソースコードテンプレートソースコードテンプレート
☆ テンプレを使えば楽にスタートできる☆ テンプレを使えば楽にスタートできる☆ テンプレを使えば楽にスタートできる☆ テン...
クロスコンパイルクロスコンパイルクロスコンパイルクロスコンパイルクロスコンパイル
☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール☆ クロスコンパイラのインストール☆ クロスコンパイラのイン...
ファーム書き込みの準備ファーム書き込みの準備ファーム書き込みの準備ファーム書き込みの準備ファーム書き込みの準備
☆ st-utilコマンドが便利☆ st-utilコマンドが便利☆ st-utilコマンドが便利☆ st-utilコマンドが便利☆ ...
ファーム書き込み/デバッグファーム書き込み/デバッグファーム書き込み/デバッグファーム書き込み/デバッグファーム書き込み/デバッグ
☆ まずst-utilを起動しておく☆ まずst-utilを起動しておく☆ まずst-utilを起動しておく☆ ...
HaskellマイコンプログラミングHaskellマイコンプログラミングHaskellマイコンプログラミングHaskellマイコンプログラミングHaskellマイコンプログラミング
☆ Ajhc - http://ajhc.metasepi.o...
宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します宣伝: コミケに同人誌を出します
☆ コミックマーケット84☆ コミックマーケット84☆ コミックマーケット84☆ ...
Upcoming SlideShare
Loading in …5
×

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

694
-1

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
694
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Debianを用いたCortex-M3マイコン 開発事例のご紹介 Debianを用いたCortex-M3マイコン 開発事例のご紹介 Debianを用いたCortex-M3マイコン 開発事例のご紹介 Debianを用いたCortex-M3マイコン 開発事例のご紹介 Debianを用いたCortex-M3マイコン 開発事例のご紹介 Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe
  2. 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. 3. Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか?Cortex-M3マイコン知ってますか? ☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン☆ ARM社が開発した32bitマイコン ☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる☆ 各社から数千円で開発ボードが出てる
  4. 4. メーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくいメーカー製のツールが使いにくい ☆ Eclipseよくわからない☆ Eclipseよくわからない☆ Eclipseよくわからない☆ Eclipseよくわからない☆ Eclipseよくわからない ☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり☆ プログラムサイズに制限があったり ☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...☆ 素直なGCCとGDBが使いたい...
  5. 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チップ搭載
  6. 6. 開発全体の流れ開発全体の流れ開発全体の流れ開発全体の流れ開発全体の流れ
  7. 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. 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. 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. 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. 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. 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の話も掲載 ☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!

×