arm/FM3-uCLinuxの最小構成を試す
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
#contents
2014/09/28からのアクセス回数 &counter;
今回も「待ったり日記」さんのuCLinuxのインストール記事に従...
FM3ボードでuCLinuxのブートをしてみます。
- [[interface付録fm3基板でlinux-uclinux編>http://mattari1...
** 前準備 [#c108e710]
- Ubuntu 14.04をVMにインストール
- Eclipseをインストール
- 必要なツール
#pre{{
$ sudo apt-get install git
}}
*** arm用gccのインストール [#i41aca4a]
uCLinux版ARM GCCを以下からダウンロードし、~/localにインス...
- https://sourcery.mentor.com/GNUToolchain/release1804?
arm-2011.03-46-arm-uclinuxeabi-i686-pc-linux-gnu.tar...
その他に必要なツールをインストールする。
((ncurses-develのインストールでエラーとなるが、sudo apt-g...
#pre{{
$ sudo apt-get install openocd
$ sudo apt-get install picocom
$ sudo apt-get install lrzsz
$ sudo apt-get install ncurses-devel
$ sudo apt-get install u-boot-tools
}}
ARM-USB-TINYを使うために、
#ft2232_device_desc "Olimex OpenOCD JTAG TINY"
** u-bootのコンパイル [#ie96735a]
途中エラーがでたので、fm3/envm.cをcpu.hに合わせた。
#pre{{
$ export CROSS_COMPILE=arm-uclinuxeabi-
$ export ARCH=arm
$ git clone https://github.com/fm3fan/u-boot.git
$ cd u-boot
$ make distclean
$ make cq_frk_fm3_wxmp3plcd_config
$ make
}}
*** GCCの種類 [#mc7fb8e3]
- arm-none-eabi-gcc: 組み込み用のGCC
- arm-uclinuxeabi-gcc: Linux用の組み込み用
Eclipseで
#pre{{
monitor command not supported by this target
}}
とでているのは、arm-uclinuxeabi-gdbがloadコマンドを持って...
コンパイラーをnone-eabiに切り替えてデバッグしてみる。
#pre{{
$ sudo apt-get remove binutils-arm-none-eabi gcc-arm-none...
$ sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
$ sudo apt-get update
$ sudo apt-get install gcc-arm-none-eabi=4-8-2014q2-0trus...
}}
ubuntuでもデバッガのソースが表示されない!
#pre{{
$ openocd -f openocd.cfg -c "flash_program u-boot.bin"
}}
cq_frk_fm3_lfcq1_configとcq_frk_fm3_wxmp3plcd_configの違い
試行錯誤をしてみると以下のことが分かりました。
- cq_frk_fm3_lfcq1_configだとデバッグできる
- cq_frk_fm3_lfcq1_configでは、config.tmpが作成される
トップのMakefileにconfig.tmpの記述がcq_frk_fm3_lfcq1_conf...
で異なることが分かりました。
#pre{{
cq_frk_fm3_lfcq1_config : unconfig
@echo "LDSCRIPT:=$(SRCTREE)/board/cq/cq_frk_fm3_l...
> $(obj)board/cq/cq_frk_fm3_lfcq1/config....
@$(MKCONFIG) $(@:_config=) arm arm_cortexm3 cq_fr...
}}
cq_frk_fm3_wxmp3plcd_configは、
#pre{{
cq_frk_fm3_wxmp3plcd_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm_cortexm3 cq_fr...
}}
Makefileを以下の様に修正し、boad/cq/cq_frk_fm3_wxmp3plcd...
#pre{{
cq_frk_fm3_wxmp3plcd_config : unconfig
@echo "LDSCRIPT:=$(SRCTREE)/board/cq/cq_frk_fm3_w...
> $(obj)board/cq/cq_frk_fm3_wxmp3plcd/con...
@$(MKCONFIG) $(@:_config=) arm arm_cortexm3 cq_fr...
}}
*** 長い道のり(デバッガでソース表示) [#w680d1a4]
何とかデバッガでu-bootのソースが表示されるようになりまし...
今回は、Ubuntuでもデバッグをするので、ARM-USB-TINYを使っ...
openocd.cfgは以下のとおりです。
#pre{{
# OpenOCD fm3.cfg with Flash proc
adapter_khz 500
interface ft2232
set CHIPNAME mb9bfxx6
set CPUTAPID 0x4ba00477
#source [find interface/vsllink.cfg]
source [find interface/olimex-jtag-tiny.cfg]
source [find target/fm3.cfg]
proc flash_program {ELF_FILENAME} {
halt
flash probe 0
flash write_image erase $ELF_FILENAME
#flash write_bank 0 $ELF_FILENAME 0x0
echo "flash program complete. reset and run"
resume
exit
}
init
halt
}}
u-boot.binの書込は、以下のコマンドを実行します。(MacOSX...
#pre{{
$ /opt/local/bin/openocd -f openocd.cfg -c "flash_program...
}}
デバッグ用は、以下のように起動します。
#pre{{
$ /opt/local/bin/openocd -f openocd.cfg
}}
** FM3用uCLinuxの作成 [#h4760757]
*** ソースの展開 [#ia2d4246]
ソースのダウンロードと展開は、gitを使います。((結構時間が...
#pre{{
$ cd ~/local
$ git clone https://github.com/fm3fan/uClinux.git
}}
*** ビルド [#qcb64c7a]
READMEにしたがって以下のようにビルドしましす。
#pre{{
$ export PATH=~/arm-2010q1/bin:$PATH
$ export CROSS_COMPILE=arm-uclinuxeabi-
$ export LANG=C
$ make distclean
$ cp release/20140612/lfcq1/min/initramfs_lfcq1_min.txt i...
$ cp release/20140612/lfcq1/min/config_lfcq1_min .config
$ make menuconfig
}}
menuconfigのメニューにて以下のように変更&確認します。
#pre{{
System Type -> FM3 Board Type -> [*]SPANSION FM3 CQ_FRK_F...
System Type -> (S)DRAM Base Address -> 0x60000000
System Type -> (S)DRAM SIZE -> 0x00200000
General setup -> (initramfs_lfcq1_min.txt) Initramfs sour...
Exit で抜ける。終了するときに保存するか聞いてくるので保存...
}}
これで、makeを実行します。
#pre{{
make uImage
途中省略
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
UIMAGE arch/arm/boot/uImage
Image Name: Linux-2.6.33-arm1
Created: Sat Sep 27 20:53:04 2014
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 728992 Bytes = 711.91 kB = 0.70 MB
Load Address: 60008000
Entry Point: 60008001
Image arch/arm/boot/uImage is ready
$ file arch/arm/boot/uImage
arch/arm/boot/uImage: u-boot legacy uImage, Linux-2.6.33-...
}}
*** uImageのアップロード [#v55e78ac]
#pre{{
$ sudo picocom --send-cmd "sb -vv" --receive-cmd "rb -vv"...
FM3> loady 0x60000000
Crtl-A Ctrl-S
file: arch/arm/boot/uImage
転送途中経過
Transfer complete
*** exit status: 0
xyzModem - CRC mode, 5698(SOH)/0(STX)/0(CAN) packets, 10 ...
## Total Size = 0x000b1fe0 = 729056 Bytes
FM3> bootm 0x60000000
FM3> bootm 0x60000000
## Booting kernel from Legacy Image at 60000000 ...
Image Name: Linux-2.6.33-arm1
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 728992 Bytes = 711.9 kB
Load Address: 60008000
Entry Point: 60008001
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Linux version 2.6.33-arm1 (take@ubuntu) (gcc version 4.5....
CPU: ARMv7-M Processor [412fc231] revision 1 (ARMv7M)
CPU: NO data cache, NO instruction cache
Machine: Fujitsu FM3
Ignoring unrecognised tag 0x54410008
Built 1 zonelists in Zone order, mobility grouping off. ...
Kernel command line: console=ttyS0,115200 panic=10 earypr...
PID hash table entries: 16 (order: -6, 64 bytes)
Dentry cache hash table entries: 1024 (order: 0, 4096 byt...
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 2MB = 2MB total
Memory: 1240k/1240k available, 808k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0x00000000 - 0x00001000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0x00000000 - 0xffffffff (4095 MB)
lowmem : 0x60000000 - 0x60200000 ( 2 MB)
modules : 0x60000000 - 0x60200000 ( 2 MB)
.init : 0x60008000 - 0x60029000 ( 132 kB)
.text : 0x60029000 - 0x600a9000 ( 512 kB)
.data : 0x600b2000 - 0x600b9fa0 ( 32 kB)
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is enabled.
NR_IRQS:53
Calibrating delay loop... 13.10 BogoMIPS (lpj=65536)
Mount-cache hash table entries: 512
Switching to clocksource cm3-systick
fm3_uart.0: ttyS0 at MMIO 0x40038000 (irq = 7) is a FM3 U...
console [ttyS0] enabled
Freeing init memory: 132K
Welcome to
____ _ _
/ __| ||_|
_ _| | | | _ ____ _ _ _ _
| | | | | | || | _ \| | | |\ \/ /
| |_| | |__| || | | | | |_| |/ \
| ___\____|_||_|_| |_|\____|\_/\_/
| |
|_|
Fujitsu FM3/FM4 port.
For further information check:
http://www.uclinux.org/
/ #
}}
無事uCLinuxがブートできました。
&ref(th_uCLinux_min.jpg);
** コメント [#pe41ef58]
#vote(おもしろかった,そうでもない,わかりずらい)
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
終了行:
[[FrontPage]]
#contents
2014/09/28からのアクセス回数 &counter;
今回も「待ったり日記」さんのuCLinuxのインストール記事に従...
FM3ボードでuCLinuxのブートをしてみます。
- [[interface付録fm3基板でlinux-uclinux編>http://mattari1...
** 前準備 [#c108e710]
- Ubuntu 14.04をVMにインストール
- Eclipseをインストール
- 必要なツール
#pre{{
$ sudo apt-get install git
}}
*** arm用gccのインストール [#i41aca4a]
uCLinux版ARM GCCを以下からダウンロードし、~/localにインス...
- https://sourcery.mentor.com/GNUToolchain/release1804?
arm-2011.03-46-arm-uclinuxeabi-i686-pc-linux-gnu.tar...
その他に必要なツールをインストールする。
((ncurses-develのインストールでエラーとなるが、sudo apt-g...
#pre{{
$ sudo apt-get install openocd
$ sudo apt-get install picocom
$ sudo apt-get install lrzsz
$ sudo apt-get install ncurses-devel
$ sudo apt-get install u-boot-tools
}}
ARM-USB-TINYを使うために、
#ft2232_device_desc "Olimex OpenOCD JTAG TINY"
** u-bootのコンパイル [#ie96735a]
途中エラーがでたので、fm3/envm.cをcpu.hに合わせた。
#pre{{
$ export CROSS_COMPILE=arm-uclinuxeabi-
$ export ARCH=arm
$ git clone https://github.com/fm3fan/u-boot.git
$ cd u-boot
$ make distclean
$ make cq_frk_fm3_wxmp3plcd_config
$ make
}}
*** GCCの種類 [#mc7fb8e3]
- arm-none-eabi-gcc: 組み込み用のGCC
- arm-uclinuxeabi-gcc: Linux用の組み込み用
Eclipseで
#pre{{
monitor command not supported by this target
}}
とでているのは、arm-uclinuxeabi-gdbがloadコマンドを持って...
コンパイラーをnone-eabiに切り替えてデバッグしてみる。
#pre{{
$ sudo apt-get remove binutils-arm-none-eabi gcc-arm-none...
$ sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
$ sudo apt-get update
$ sudo apt-get install gcc-arm-none-eabi=4-8-2014q2-0trus...
}}
ubuntuでもデバッガのソースが表示されない!
#pre{{
$ openocd -f openocd.cfg -c "flash_program u-boot.bin"
}}
cq_frk_fm3_lfcq1_configとcq_frk_fm3_wxmp3plcd_configの違い
試行錯誤をしてみると以下のことが分かりました。
- cq_frk_fm3_lfcq1_configだとデバッグできる
- cq_frk_fm3_lfcq1_configでは、config.tmpが作成される
トップのMakefileにconfig.tmpの記述がcq_frk_fm3_lfcq1_conf...
で異なることが分かりました。
#pre{{
cq_frk_fm3_lfcq1_config : unconfig
@echo "LDSCRIPT:=$(SRCTREE)/board/cq/cq_frk_fm3_l...
> $(obj)board/cq/cq_frk_fm3_lfcq1/config....
@$(MKCONFIG) $(@:_config=) arm arm_cortexm3 cq_fr...
}}
cq_frk_fm3_wxmp3plcd_configは、
#pre{{
cq_frk_fm3_wxmp3plcd_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm_cortexm3 cq_fr...
}}
Makefileを以下の様に修正し、boad/cq/cq_frk_fm3_wxmp3plcd...
#pre{{
cq_frk_fm3_wxmp3plcd_config : unconfig
@echo "LDSCRIPT:=$(SRCTREE)/board/cq/cq_frk_fm3_w...
> $(obj)board/cq/cq_frk_fm3_wxmp3plcd/con...
@$(MKCONFIG) $(@:_config=) arm arm_cortexm3 cq_fr...
}}
*** 長い道のり(デバッガでソース表示) [#w680d1a4]
何とかデバッガでu-bootのソースが表示されるようになりまし...
今回は、Ubuntuでもデバッグをするので、ARM-USB-TINYを使っ...
openocd.cfgは以下のとおりです。
#pre{{
# OpenOCD fm3.cfg with Flash proc
adapter_khz 500
interface ft2232
set CHIPNAME mb9bfxx6
set CPUTAPID 0x4ba00477
#source [find interface/vsllink.cfg]
source [find interface/olimex-jtag-tiny.cfg]
source [find target/fm3.cfg]
proc flash_program {ELF_FILENAME} {
halt
flash probe 0
flash write_image erase $ELF_FILENAME
#flash write_bank 0 $ELF_FILENAME 0x0
echo "flash program complete. reset and run"
resume
exit
}
init
halt
}}
u-boot.binの書込は、以下のコマンドを実行します。(MacOSX...
#pre{{
$ /opt/local/bin/openocd -f openocd.cfg -c "flash_program...
}}
デバッグ用は、以下のように起動します。
#pre{{
$ /opt/local/bin/openocd -f openocd.cfg
}}
** FM3用uCLinuxの作成 [#h4760757]
*** ソースの展開 [#ia2d4246]
ソースのダウンロードと展開は、gitを使います。((結構時間が...
#pre{{
$ cd ~/local
$ git clone https://github.com/fm3fan/uClinux.git
}}
*** ビルド [#qcb64c7a]
READMEにしたがって以下のようにビルドしましす。
#pre{{
$ export PATH=~/arm-2010q1/bin:$PATH
$ export CROSS_COMPILE=arm-uclinuxeabi-
$ export LANG=C
$ make distclean
$ cp release/20140612/lfcq1/min/initramfs_lfcq1_min.txt i...
$ cp release/20140612/lfcq1/min/config_lfcq1_min .config
$ make menuconfig
}}
menuconfigのメニューにて以下のように変更&確認します。
#pre{{
System Type -> FM3 Board Type -> [*]SPANSION FM3 CQ_FRK_F...
System Type -> (S)DRAM Base Address -> 0x60000000
System Type -> (S)DRAM SIZE -> 0x00200000
General setup -> (initramfs_lfcq1_min.txt) Initramfs sour...
Exit で抜ける。終了するときに保存するか聞いてくるので保存...
}}
これで、makeを実行します。
#pre{{
make uImage
途中省略
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
UIMAGE arch/arm/boot/uImage
Image Name: Linux-2.6.33-arm1
Created: Sat Sep 27 20:53:04 2014
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 728992 Bytes = 711.91 kB = 0.70 MB
Load Address: 60008000
Entry Point: 60008001
Image arch/arm/boot/uImage is ready
$ file arch/arm/boot/uImage
arch/arm/boot/uImage: u-boot legacy uImage, Linux-2.6.33-...
}}
*** uImageのアップロード [#v55e78ac]
#pre{{
$ sudo picocom --send-cmd "sb -vv" --receive-cmd "rb -vv"...
FM3> loady 0x60000000
Crtl-A Ctrl-S
file: arch/arm/boot/uImage
転送途中経過
Transfer complete
*** exit status: 0
xyzModem - CRC mode, 5698(SOH)/0(STX)/0(CAN) packets, 10 ...
## Total Size = 0x000b1fe0 = 729056 Bytes
FM3> bootm 0x60000000
FM3> bootm 0x60000000
## Booting kernel from Legacy Image at 60000000 ...
Image Name: Linux-2.6.33-arm1
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 728992 Bytes = 711.9 kB
Load Address: 60008000
Entry Point: 60008001
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Linux version 2.6.33-arm1 (take@ubuntu) (gcc version 4.5....
CPU: ARMv7-M Processor [412fc231] revision 1 (ARMv7M)
CPU: NO data cache, NO instruction cache
Machine: Fujitsu FM3
Ignoring unrecognised tag 0x54410008
Built 1 zonelists in Zone order, mobility grouping off. ...
Kernel command line: console=ttyS0,115200 panic=10 earypr...
PID hash table entries: 16 (order: -6, 64 bytes)
Dentry cache hash table entries: 1024 (order: 0, 4096 byt...
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 2MB = 2MB total
Memory: 1240k/1240k available, 808k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0x00000000 - 0x00001000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0x00000000 - 0xffffffff (4095 MB)
lowmem : 0x60000000 - 0x60200000 ( 2 MB)
modules : 0x60000000 - 0x60200000 ( 2 MB)
.init : 0x60008000 - 0x60029000 ( 132 kB)
.text : 0x60029000 - 0x600a9000 ( 512 kB)
.data : 0x600b2000 - 0x600b9fa0 ( 32 kB)
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is enabled.
NR_IRQS:53
Calibrating delay loop... 13.10 BogoMIPS (lpj=65536)
Mount-cache hash table entries: 512
Switching to clocksource cm3-systick
fm3_uart.0: ttyS0 at MMIO 0x40038000 (irq = 7) is a FM3 U...
console [ttyS0] enabled
Freeing init memory: 132K
Welcome to
____ _ _
/ __| ||_|
_ _| | | | _ ____ _ _ _ _
| | | | | | || | _ \| | | |\ \/ /
| |_| | |__| || | | | | |_| |/ \
| ___\____|_||_|_| |_|\____|\_/\_/
| |
|_|
Fujitsu FM3/FM4 port.
For further information check:
http://www.uclinux.org/
/ #
}}
無事uCLinuxがブートできました。
&ref(th_uCLinux_min.jpg);
** コメント [#pe41ef58]
#vote(おもしろかった,そうでもない,わかりずらい)
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
ページ名:
SmartDoc