arm/FM3-U-Bootを試す
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
#contents
2014/09/28からのアクセス回数 &counter;
Interface 2014/05に紹介されたFM3にU-Bootを移植された記事...
「待ったり日記」さんがいるのを励みに私も挑戦してみること...
- [[Interface付録FM3基板でLinux (U-Boot編)>http://mattari...
** メモリ増設ボード [#w2d6f5b1]
「待ったり日記」さんに倣って、
[[.NET MicroFramework対応SRAM2M&WX-PHY拡張ボード>http://...
を使用しました。
必要な部品は、
[[このボードの説明>http://homepage3.nifty.com/fpga/wx/sra...
にあります。
メモリのハンダ付けには、フラックスとはんだ吸い取り線を使...
&ref(WX-SRAM-PHY-FM3-002.png);
** U-Bootのコンパイル [#sc048129]
*** 環境変数の設定 [#a7e2b8ff]
本当は、Interfaceのダウンロードファイルで動作を確認してか...
公開されているファイルがSファイル形式でMacのOpenOCDで書き...
に挑戦してみました。
#pre{{
$ export PATH=$HOME/local/arm/CodeSourcery/arm/bin:$PATH
$ export CROSS_COMPILE=arm-none-eabi-
$ export ARCH=arm
}}
*** ソースのダウンロード [#j6ee3914]
以下のサイトからソースをgitで取得します。
- https://github.com/fm3fan/u-boot
#pre{{
$ git clone https://github.com/fm3fan/u-boot.git
$ cd u-boot
}}
*** MacOSXとUbuntu用に修正 [#i5cfc443]
オリジナルのままでは、Unixではコンパイルできないので、以...
- boad/cq/cq_frk_fm3_lfcq1からconfig.mk, u-boot.ldsをcq_f...
- cpu/arm_cortexm3/fm3/envm.cの以下の部分を修正envm_init,...
#pre{{
void
//__attribute__ ((section(".ramcode")))
//__attribute__ ((long_call))
envm_init(void)
{
}
u32
//__attribute__ ((section(".ramcode")))
//__attribute__ ((long_call))
//envm_write(uint32_t offset, void * buf, uint32_t size)
envm_write(unsigned int offset, void * buf, unsigned int ...
{
uint32_t ret = 0;
if (!fm3_flash_erase(offset, size))
return ret;
if (fm3_flash_write(offset, buf, size))
ret = size;
return ret;
}
}}
- トップのMakefileのcq_frk_fm3_wxmp3plcd_configを以下の様...
#pre{{
cq_frk_fm3_wxmp3plcd_config : unconfig
@echo "LDSCRIPT:=$(SRCTREE)/board/cq/cq_frk_fm3_wxmp3plcd...
> $(obj)board/cq/cq_frk_fm3_wxmp3plcd/config.tmp
@$(MKCONFIG) $(@:_config=) arm arm_cortexm3 cq_frk_fm3_wx...
}}
*** コンパイル [#ccb4d322]
u-bootのコンパイルは以下の手順で進めます。
- 設定環境のクリア(make distclean)
- コンフィグファイルの作成(make ボード名_config)
- ビルド(make)
端末で以下の様に入力してします。
#pre{{
$ make distclean
$ make cq_frk_fm3_wxmp3plcd_config
$ make
}}
*** 書き込み [#y6c6e9ab]
私のMacOSXやUnbutuではFM3のUSB Directを使った書込ができな...
以下の様にOpenOCDを使って書き込みます。
((openocd.cfgについては、[[arm/FM3-uCLinuxを試す]]を参照...
#pre{{
$ openocd -f openocd.cfg -c "flash_program u-boot.bin"
以下の様なメッセージが出力されてフラッシュにプログラムが...
Open On-Chip Debugger 0.7.0 (2013-08-20-09:43)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
adapter speed: 500 kHz
Info : only one transport option; autoselect 'jtag'
Warn : Interface already configured, ignoring
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
trst_only separate trst_push_pull
adapter speed: 500 kHz
cortex_m3 reset_config sysresetreq
Info : clock speed 500 kHz
Info : JTAG tap: mb9bfxx6.cpu tap/device found: 0x4ba0047...
Info : mb9bfxx6.cpu: hardware has 6 breakpoints, 4 watchp...
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x81000000 pc: 0x0000d380 msp: 0x2000ff50
flash 'fm3' found at 0x00000000
auto erase enabled
Info : Fujitsu MB9Bxxx: Sector Erase ... (0 to 2)
Info : Fujitsu MB9B500: FLASH Write ...
wrote 131072 bytes from file u-boot.bin in 15.320683s (8....
flash program complete. reset and run
}}
** 動作確認 [#uf223512]
動作確認は、u-bootのコンソールメッセージをシリアル通信で...
*** シリアル通信の設定 [#i621c1d8]
シリアルとの接続を以下の様に結線します。
| MPL2303SA | FM3 |
| 1: GND | CN2: 40 (GND) |
| 2: TXD | CN2: 15 (RXD1) |
| 4: RXD | CN2: 16 (TXD1) |
コンソールのボーレートは、include/configs/cq_frk_fm3_wxmp...
((使用しているシリアルは、RXD1の方だった!))
&ref(Serial_FM3.png);
*** picocomを使ってシリアル通信 [#b48fabe5]
シリアル通信には、Arduinoで使ったpicocomを使いました。
((機能がシンプルなのが気に入りました))
ファイルの転送に
sz, rzコマンドと念のためkermitをインストールします。
#pre{{
$ sudo port install lrzsz
$ sudo port install kermit
}}
*** FM3 U-Bootとつないでみる [#g07c1c9d]
シリアル通信の準備ができたので、FM3とつないでみます。
((MacOSXでは/dev/tty.usbserial, Ubuntuでは/dev/ttyUSB0で...
#pre{{
$ picocom --send-cmd "sb -vv" --receive-cmd "rb -vv" -b 1...
picocom v1.7
の後で設定が表示されます。
ここで、FM3をリセットすると、以下の様なメッセージが出力さ...
U-Boot 2010.03-00019-gd1ef410-dirty ( 9 22 2014 - 11:28:39)
CPU : Fujitsu FM3 series (Cortex-M3)
Board: CQ_FRK_FM3 + WXMP3 Rev Rev 0.1, Kentaro Sekimoto
DRAM: 2 MB
Flash: 1 MB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serialNet: fm3_ethFM3>
}}
helpと入力すると、使用できるu-bootのコマンドが表示されま...
*** 増設メモリの動作確認 [#rc98463b]
WX-SRAM-PHY-FM3-002に増設したメモリが正常に動作するかu-bo...
確認します。
以下のコマンドで拡張メモリ((0x60000000から0x601fffffまで...
無事、60000000に12345678がセットされていることが確認でき...
#pre{{
FM3> md 0x60000000
60000000: f4a3ff00 ec3f2a4d cf77e31b ccfd0225 ....M*?....
60000010: 3fdfe97d ff7f38af 87cf5fdf 83c923a6 }..?.8.....
60000020: dd3dfe49 5d717dc3 77bb196b d8d75ff3 I.=..}q]...
60000030: 7ba4bbc7 2ffe2875 fafded9f f0ebdef7 ...{u(./...
60000040: 931f5db1 bd49c329 76a6bf2f 7f77f507 .]..).I....
60000050: fbfdb86e 57d77a96 n....z.W
FM3> mw 0x60000000 0x12345678
FM3> md 0x60000000
60000000: 12345678 ec3f2a4d cf77e31b ccfd0225 xV4.M*?....
60000010: 3fdfe97d ff7f38af 87cf5fdf 83c923a6 }..?.8.....
60000020: dd3dfe49 5d717dc3 77bb196b d8d75ff3 I.=..}q]...
60000030: 7ba4bbc7 2ffe2875 fafded9f f0ebdef7 ...{u(./...
60000040: 931f5db1 bd49c329 76a6bf2f 7f77f507 .]..).I....
60000050: fbfdb86e 57d77a96 n....z.W
}}
picocomの通信を終了するには、Ctrl-A, Ctrl-Xを入力します。
** 失敗 [#dfdaf55b]
この後、U-BootのHello Worldを試してみたのですが、どうして...
そこで、uCLinuxの動作確認を優先して先に進むことにしました。
((機会があればHello Worldに再挑戦します。))
** コメント [#e3373283]
#vote(おもしろかった[1],そうでもない[1],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
終了行:
[[FrontPage]]
#contents
2014/09/28からのアクセス回数 &counter;
Interface 2014/05に紹介されたFM3にU-Bootを移植された記事...
「待ったり日記」さんがいるのを励みに私も挑戦してみること...
- [[Interface付録FM3基板でLinux (U-Boot編)>http://mattari...
** メモリ増設ボード [#w2d6f5b1]
「待ったり日記」さんに倣って、
[[.NET MicroFramework対応SRAM2M&WX-PHY拡張ボード>http://...
を使用しました。
必要な部品は、
[[このボードの説明>http://homepage3.nifty.com/fpga/wx/sra...
にあります。
メモリのハンダ付けには、フラックスとはんだ吸い取り線を使...
&ref(WX-SRAM-PHY-FM3-002.png);
** U-Bootのコンパイル [#sc048129]
*** 環境変数の設定 [#a7e2b8ff]
本当は、Interfaceのダウンロードファイルで動作を確認してか...
公開されているファイルがSファイル形式でMacのOpenOCDで書き...
に挑戦してみました。
#pre{{
$ export PATH=$HOME/local/arm/CodeSourcery/arm/bin:$PATH
$ export CROSS_COMPILE=arm-none-eabi-
$ export ARCH=arm
}}
*** ソースのダウンロード [#j6ee3914]
以下のサイトからソースをgitで取得します。
- https://github.com/fm3fan/u-boot
#pre{{
$ git clone https://github.com/fm3fan/u-boot.git
$ cd u-boot
}}
*** MacOSXとUbuntu用に修正 [#i5cfc443]
オリジナルのままでは、Unixではコンパイルできないので、以...
- boad/cq/cq_frk_fm3_lfcq1からconfig.mk, u-boot.ldsをcq_f...
- cpu/arm_cortexm3/fm3/envm.cの以下の部分を修正envm_init,...
#pre{{
void
//__attribute__ ((section(".ramcode")))
//__attribute__ ((long_call))
envm_init(void)
{
}
u32
//__attribute__ ((section(".ramcode")))
//__attribute__ ((long_call))
//envm_write(uint32_t offset, void * buf, uint32_t size)
envm_write(unsigned int offset, void * buf, unsigned int ...
{
uint32_t ret = 0;
if (!fm3_flash_erase(offset, size))
return ret;
if (fm3_flash_write(offset, buf, size))
ret = size;
return ret;
}
}}
- トップのMakefileのcq_frk_fm3_wxmp3plcd_configを以下の様...
#pre{{
cq_frk_fm3_wxmp3plcd_config : unconfig
@echo "LDSCRIPT:=$(SRCTREE)/board/cq/cq_frk_fm3_wxmp3plcd...
> $(obj)board/cq/cq_frk_fm3_wxmp3plcd/config.tmp
@$(MKCONFIG) $(@:_config=) arm arm_cortexm3 cq_frk_fm3_wx...
}}
*** コンパイル [#ccb4d322]
u-bootのコンパイルは以下の手順で進めます。
- 設定環境のクリア(make distclean)
- コンフィグファイルの作成(make ボード名_config)
- ビルド(make)
端末で以下の様に入力してします。
#pre{{
$ make distclean
$ make cq_frk_fm3_wxmp3plcd_config
$ make
}}
*** 書き込み [#y6c6e9ab]
私のMacOSXやUnbutuではFM3のUSB Directを使った書込ができな...
以下の様にOpenOCDを使って書き込みます。
((openocd.cfgについては、[[arm/FM3-uCLinuxを試す]]を参照...
#pre{{
$ openocd -f openocd.cfg -c "flash_program u-boot.bin"
以下の様なメッセージが出力されてフラッシュにプログラムが...
Open On-Chip Debugger 0.7.0 (2013-08-20-09:43)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
adapter speed: 500 kHz
Info : only one transport option; autoselect 'jtag'
Warn : Interface already configured, ignoring
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
trst_only separate trst_push_pull
adapter speed: 500 kHz
cortex_m3 reset_config sysresetreq
Info : clock speed 500 kHz
Info : JTAG tap: mb9bfxx6.cpu tap/device found: 0x4ba0047...
Info : mb9bfxx6.cpu: hardware has 6 breakpoints, 4 watchp...
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x81000000 pc: 0x0000d380 msp: 0x2000ff50
flash 'fm3' found at 0x00000000
auto erase enabled
Info : Fujitsu MB9Bxxx: Sector Erase ... (0 to 2)
Info : Fujitsu MB9B500: FLASH Write ...
wrote 131072 bytes from file u-boot.bin in 15.320683s (8....
flash program complete. reset and run
}}
** 動作確認 [#uf223512]
動作確認は、u-bootのコンソールメッセージをシリアル通信で...
*** シリアル通信の設定 [#i621c1d8]
シリアルとの接続を以下の様に結線します。
| MPL2303SA | FM3 |
| 1: GND | CN2: 40 (GND) |
| 2: TXD | CN2: 15 (RXD1) |
| 4: RXD | CN2: 16 (TXD1) |
コンソールのボーレートは、include/configs/cq_frk_fm3_wxmp...
((使用しているシリアルは、RXD1の方だった!))
&ref(Serial_FM3.png);
*** picocomを使ってシリアル通信 [#b48fabe5]
シリアル通信には、Arduinoで使ったpicocomを使いました。
((機能がシンプルなのが気に入りました))
ファイルの転送に
sz, rzコマンドと念のためkermitをインストールします。
#pre{{
$ sudo port install lrzsz
$ sudo port install kermit
}}
*** FM3 U-Bootとつないでみる [#g07c1c9d]
シリアル通信の準備ができたので、FM3とつないでみます。
((MacOSXでは/dev/tty.usbserial, Ubuntuでは/dev/ttyUSB0で...
#pre{{
$ picocom --send-cmd "sb -vv" --receive-cmd "rb -vv" -b 1...
picocom v1.7
の後で設定が表示されます。
ここで、FM3をリセットすると、以下の様なメッセージが出力さ...
U-Boot 2010.03-00019-gd1ef410-dirty ( 9 22 2014 - 11:28:39)
CPU : Fujitsu FM3 series (Cortex-M3)
Board: CQ_FRK_FM3 + WXMP3 Rev Rev 0.1, Kentaro Sekimoto
DRAM: 2 MB
Flash: 1 MB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serialNet: fm3_ethFM3>
}}
helpと入力すると、使用できるu-bootのコマンドが表示されま...
*** 増設メモリの動作確認 [#rc98463b]
WX-SRAM-PHY-FM3-002に増設したメモリが正常に動作するかu-bo...
確認します。
以下のコマンドで拡張メモリ((0x60000000から0x601fffffまで...
無事、60000000に12345678がセットされていることが確認でき...
#pre{{
FM3> md 0x60000000
60000000: f4a3ff00 ec3f2a4d cf77e31b ccfd0225 ....M*?....
60000010: 3fdfe97d ff7f38af 87cf5fdf 83c923a6 }..?.8.....
60000020: dd3dfe49 5d717dc3 77bb196b d8d75ff3 I.=..}q]...
60000030: 7ba4bbc7 2ffe2875 fafded9f f0ebdef7 ...{u(./...
60000040: 931f5db1 bd49c329 76a6bf2f 7f77f507 .]..).I....
60000050: fbfdb86e 57d77a96 n....z.W
FM3> mw 0x60000000 0x12345678
FM3> md 0x60000000
60000000: 12345678 ec3f2a4d cf77e31b ccfd0225 xV4.M*?....
60000010: 3fdfe97d ff7f38af 87cf5fdf 83c923a6 }..?.8.....
60000020: dd3dfe49 5d717dc3 77bb196b d8d75ff3 I.=..}q]...
60000030: 7ba4bbc7 2ffe2875 fafded9f f0ebdef7 ...{u(./...
60000040: 931f5db1 bd49c329 76a6bf2f 7f77f507 .]..).I....
60000050: fbfdb86e 57d77a96 n....z.W
}}
picocomの通信を終了するには、Ctrl-A, Ctrl-Xを入力します。
** 失敗 [#dfdaf55b]
この後、U-BootのHello Worldを試してみたのですが、どうして...
そこで、uCLinuxの動作確認を優先して先に進むことにしました。
((機会があればHello Worldに再挑戦します。))
** コメント [#e3373283]
#vote(おもしろかった[1],そうでもない[1],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
ページ名:
SmartDoc