Contenu connexe
Similaire à Debianを用いたCortex-M3マイコン開発事例のご紹介
Similaire à Debianを用いたCortex-M3マイコン開発事例のご紹介 (20)
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に興味のある{エンジニア,インターン}
募集中です!
- 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
これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!これで思うぞんぶんデバッグできるよ!
- 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の話も掲載
☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!☆ 来て見て買ってね!