Top
HIDaspx
DownLoad
HIDasp高速化
制作
AVR関係
AVR_Monit
AVR_term
W32_term
HIDmon88
HIDtester
usbRS232
Arduino2313
デジタルテスター
ATmega88生活
KeyBoardマニア
KeyBoardマニアII
Arduino400
PICライター
ARMライター
赤外線リモコン
ARM
STM32ブートローダー
STM8S-Discovery改造
STM8S-OpenOCDライター
LPCXpresso
LPC用ブートローダー
NXP用LPCUSB
NXP用ブートローダー
MARY基板
LPC1114FN28
OpenOCD JTAGアダプター
OpenOCDビルド方法
arm-gccビルド方法
mapleIDEの改造
libmapleで仮想COM
PIC32
PIC32MX
Pinguinoで遊ぼう
ブートローダーを作る
シリアルブートローダー
USB仮想シリアル
USBカスタムデバイス
USB簡易モニター
USBオシロスコープ
USBホスト
PIC32でBluetooth
USBAudio
USBStudy
VGA出力に挑戦
BASICを動かす
WinUSB
勝手に改蔵*PIC32
PIC18F
HIDブートローダー
AVR/PIC両用ライター
ARMライター
usb汎用クラス
usbシリアル変換
usbキーボード変換
sdccを使いこなす
mcc18を使いこなす
HIDmon-2550
HIDmon-14K50
PICmonitor
試行錯誤の記録
UBWを試す
旧HIDboot
PIC18F2550試用記
PIC18F4550試用記
その他マイコン
NEC78K
RX62N
SH2A
H8
FM3
XPからubuntuに乗り換え
Android
Xen-hypervisor
Windows8カスタマイズ
開発日記
2015-04
ノウハウ
AVRUSB_Tips
HIDasp情報
汎用USB-IO
・
リンク
フリースペース
ゲストブック
旧コンテンツ
WinVista
インターフェース考
最新の20件
2022-07-25
2008-10
HIDasp高速化
H8/3048F
AutoTicketLinkName
2021-12-11
FormattingRules
2021-12-08
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/V-Z
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/H-K
2020-02-23
YukiWiki
PHP
PukiWiki
WikiWikiWeb
2018-12-19
SandBox
InterWiki
2015-05-07
2015-04
2015-05-02
MenuBar
編集
差分
arm-gcc の編集
-- 雛形とするページ --
(no template pages)
#contents *ARMクロスコンパイラ構築 [#k3c4bb90] -Windows版arm-gccを作るのはしんどいので、Linux( ubuntu 11.10 )上で作成。 **ビルドのコツ [#h2da8bcf] -最初にCだけ作って、あとでC++を作るよろし。 ~ ~ ~ ''手順'' ---- **Linuxマシンを用意する。ubuntu10.4が今回のターゲット。 [#c6094f52] -マシンを用意しなくても、VMWare上で実行すればホストOSはWindowsでもよい。 ~ -いろいろビルドに必要なパッケージをインストールしておく。 # apt-get install build-essential # apt-get install libtool # apt-get install autoconf # apt-get install automake # apt-get install texinfo # apt-get install libmpfr-dev # apt-get install libmpc-dev # apt-get install libgmp3-dev # apt-get install libcloog-ppl-dev # apt-get install bison # apt-get install flex # apt-get install zlib1g-dev -無意識にインストール済みなやつも多いので、もしかしたら、抜けがあるかもしれない。 **作業ディレクトリを掘る [#xff0e146] $ mkdir build $ cd build **ソースTARボールを入手する。 [#be699c49] -wget.shを用意 #!/bin/sh wget -o wget1.log http://aist.ring.gr.jp/archives/GNU/binutils/binutils-2.21.tar.bz2 wget -o wget2.log http://aist.ring.gr.jp/archives/GNU/gcc/gcc-4.5.2/gcc-4.5.2.tar.bz2 wget -o wget3.log ftp://sources.redhat.com/pub/newlib/newlib-1.18.0.tar.gz -実行 ./wget.sh **取得できたら展開 [#z9792e6e] -extract.sh #!/bin/sh tar xvfj binutils-2.21.tar.bz2 tar xvfj gcc-4.5.2.tar.bz2 tar xvfz newlib-1.18.0.tar.gz -実行 ./extract.sh **では、一気に行こうか。 [#ee0f6836] -build-all.sh #!/bin/sh echo '# ==========================================================' echo '# setenv' echo '# ==========================================================' BINUTILS=binutils-2.21 GCC4=gcc-4.5.2 NEWLIB=newlib-1.18.0 BUILDTARGET='--target=arm-none-eabi --prefix=/usr/local/arm ' # 第一引数がエラー値だったらexitする print_error () { if [ $1 -ne 0 ] then exit $1 fi } export PATH=$PATH:/usr/local/arm/bin mkdir _binutils mkdir _gccbuild mkdir _newlib echo '# ==========================================================' echo '# _binutils' echo '# ==========================================================' cd _binutils ../$BINUTILS/configure $BUILDTARGET print_error $? make print_error $? sudo make install # 次、gccのC言語のみ。config内容はWindowsのWinARMコマンドラインのhelpから取得 cd .. echo '# ==========================================================' echo '# _gccbuild' echo '# ==========================================================' cd _gccbuild ../$GCC4/configure $BUILDTARGET \ --disable-nls --disable-shared --disable-threads \ --with-gcc --with-gnu-ld --with-gnu-as --enable-languages=c,c++ \ --enable-interwork --enable-multilib --disable-libssp --disable-libstdcxx-pch \ --with-dwarf2 --program-prefix=arm-none-eabi- --with-newlib \ --disable-newlib-supplied-syscalls --disable-libunwind-exceptions \ --disable-newlib-atexit-dynamic-alloc \ --disable-zlib print_error $? make LANGUAGES=c all-gcc print_error $? sudo make LANGUAGES=c install-gcc #次はNewlib cd .. echo '# ==========================================================' echo '# _newlib' echo '# ==========================================================' cd _newlib ../$NEWLIB/configure $BUILDTARGET print_error $? make print_error $? #sudo make install ???あれ? sudo PATH=$PATH:/usr/local/arm/bin make install #最後に、残りのC++も含める。 cd .. echo '# ==========================================================' echo '# gcc ALL' echo '# ==========================================================' cd _gccbuild make print_error $? sudo make install cd .. -だいたいこんな感じ。 -zlibは -m64でエラーする・・・。--> --disable-zlibでごまかす。 ~ -たいていは途中でつまずくので、これを切り出して個別に実行したほうが良いかも。 -gcc,binutils,newlibのバージョンは''旬というもの''があるので、環境変数にしてみました。 ~ ---- -出来たのは良いけれど、armonをビルドして試してみると、"syscalls.c"のビルドが通らなくなっていた。 -SVC命令が-mthumbでは使えない、というアセンブラメッセージだった。 -もしかしたら、ThumbではSVCが使えないのに、そのようなasm文が落ちる設定になっていたのかも。 -古いbinutilsではノーチェックなのか???? --いや、SVCは使えるはずだ。少なくともThumbでは。 --ただ、SVCの引数は24bitなくて8bitになるらしい。 ~ ---- -実は、CodeSourcery G++ LiteのDLサイトを良く見たら、Windows/Linux版だけでなく、ソースもDL出来るようになっている。 -ソースをDLしてみた。 arm-2010.09-51-arm-none-eabi% ls arm-2010.09-51-arm-none-eabi.sh binutils-2010.09-51.tar.bz2 cloog-2010.09-51.tar.bz2 coreutils-2010.09-51.tar.bz2 expat-2010.09-51.tar.bz2 gcc-2010.09-51.tar.bz2 gdb-2010.09-51.tar.bz2 gmp-2010.09-51.tar.bz2 gnu-2010.09-51-arm-none-eabi.txt libelf-2010.09-51.tar.bz2 libiconv-2010.09-51.tar.bz2 make-2010.09-51.tar.bz2 mpc-2010.09-51.tar.bz2 mpfr-2010.09-51.tar.bz2 newlib-2010.09-51.tar.bz2 ppl-2010.09-51.tar.bz2 zlib-2010.09-51.tar.bz2 -必要物全部入っとるやんけ。 - arm-2010.09-51-arm-none-eabi.sh はビルドスクリプトになっていて、Linux版とWindows版の両方を、(たぶん)GNU/Linux OS上でビルド出来るようになっている。 - Windows版のexeファイルはLinux上のクロスMinGW-gccで作成出来る。便利だ。 -というわけで、''今のところ'' CodeSourcery G++ Liteの成果を使わせていただくのが最も便利で楽勝だ。という結論に達した。 ~ ~ ~ ~ --------- *別解:summon-arm-toolchainを使ってLinux上でarm-gcc(elf)を作る。 [#edf69c82] summon-arm-toolchain -https://github.com/esden/summon-arm-toolchain/ -上記ページのDOWNLOADリンクをクリックして、zipファイルを取得する。 -展開すると、summon-arm-toolchainというシェルスクリプトが出てくるので、これを、たとえばubuntu11.04上 で走らせる。(もちろんWindows上のVMimageなubuntuでも構わない) -走らせる前に、なるべくなら、build-essential とか gcc , git , libmpfr-dev , libmpc-dev ,libftdi-dev , texinfo などはインストールしておいたほうが良い。( apt-get install 〜 を使う) あとはほぼ自動でダウンロード&クロスビルドを行ってくれる。 -できたブツは ~/sat/ 以下に生成されるようだ。 一応ユーザー権限で全部作成された。(含: OpenOCD , gdb7 etc) -ものぐさな人には便利かも。(全自動でビルドしてくれるので)
タイムスタンプを変更しない
#contents *ARMクロスコンパイラ構築 [#k3c4bb90] -Windows版arm-gccを作るのはしんどいので、Linux( ubuntu 11.10 )上で作成。 **ビルドのコツ [#h2da8bcf] -最初にCだけ作って、あとでC++を作るよろし。 ~ ~ ~ ''手順'' ---- **Linuxマシンを用意する。ubuntu10.4が今回のターゲット。 [#c6094f52] -マシンを用意しなくても、VMWare上で実行すればホストOSはWindowsでもよい。 ~ -いろいろビルドに必要なパッケージをインストールしておく。 # apt-get install build-essential # apt-get install libtool # apt-get install autoconf # apt-get install automake # apt-get install texinfo # apt-get install libmpfr-dev # apt-get install libmpc-dev # apt-get install libgmp3-dev # apt-get install libcloog-ppl-dev # apt-get install bison # apt-get install flex # apt-get install zlib1g-dev -無意識にインストール済みなやつも多いので、もしかしたら、抜けがあるかもしれない。 **作業ディレクトリを掘る [#xff0e146] $ mkdir build $ cd build **ソースTARボールを入手する。 [#be699c49] -wget.shを用意 #!/bin/sh wget -o wget1.log http://aist.ring.gr.jp/archives/GNU/binutils/binutils-2.21.tar.bz2 wget -o wget2.log http://aist.ring.gr.jp/archives/GNU/gcc/gcc-4.5.2/gcc-4.5.2.tar.bz2 wget -o wget3.log ftp://sources.redhat.com/pub/newlib/newlib-1.18.0.tar.gz -実行 ./wget.sh **取得できたら展開 [#z9792e6e] -extract.sh #!/bin/sh tar xvfj binutils-2.21.tar.bz2 tar xvfj gcc-4.5.2.tar.bz2 tar xvfz newlib-1.18.0.tar.gz -実行 ./extract.sh **では、一気に行こうか。 [#ee0f6836] -build-all.sh #!/bin/sh echo '# ==========================================================' echo '# setenv' echo '# ==========================================================' BINUTILS=binutils-2.21 GCC4=gcc-4.5.2 NEWLIB=newlib-1.18.0 BUILDTARGET='--target=arm-none-eabi --prefix=/usr/local/arm ' # 第一引数がエラー値だったらexitする print_error () { if [ $1 -ne 0 ] then exit $1 fi } export PATH=$PATH:/usr/local/arm/bin mkdir _binutils mkdir _gccbuild mkdir _newlib echo '# ==========================================================' echo '# _binutils' echo '# ==========================================================' cd _binutils ../$BINUTILS/configure $BUILDTARGET print_error $? make print_error $? sudo make install # 次、gccのC言語のみ。config内容はWindowsのWinARMコマンドラインのhelpから取得 cd .. echo '# ==========================================================' echo '# _gccbuild' echo '# ==========================================================' cd _gccbuild ../$GCC4/configure $BUILDTARGET \ --disable-nls --disable-shared --disable-threads \ --with-gcc --with-gnu-ld --with-gnu-as --enable-languages=c,c++ \ --enable-interwork --enable-multilib --disable-libssp --disable-libstdcxx-pch \ --with-dwarf2 --program-prefix=arm-none-eabi- --with-newlib \ --disable-newlib-supplied-syscalls --disable-libunwind-exceptions \ --disable-newlib-atexit-dynamic-alloc \ --disable-zlib print_error $? make LANGUAGES=c all-gcc print_error $? sudo make LANGUAGES=c install-gcc #次はNewlib cd .. echo '# ==========================================================' echo '# _newlib' echo '# ==========================================================' cd _newlib ../$NEWLIB/configure $BUILDTARGET print_error $? make print_error $? #sudo make install ???あれ? sudo PATH=$PATH:/usr/local/arm/bin make install #最後に、残りのC++も含める。 cd .. echo '# ==========================================================' echo '# gcc ALL' echo '# ==========================================================' cd _gccbuild make print_error $? sudo make install cd .. -だいたいこんな感じ。 -zlibは -m64でエラーする・・・。--> --disable-zlibでごまかす。 ~ -たいていは途中でつまずくので、これを切り出して個別に実行したほうが良いかも。 -gcc,binutils,newlibのバージョンは''旬というもの''があるので、環境変数にしてみました。 ~ ---- -出来たのは良いけれど、armonをビルドして試してみると、"syscalls.c"のビルドが通らなくなっていた。 -SVC命令が-mthumbでは使えない、というアセンブラメッセージだった。 -もしかしたら、ThumbではSVCが使えないのに、そのようなasm文が落ちる設定になっていたのかも。 -古いbinutilsではノーチェックなのか???? --いや、SVCは使えるはずだ。少なくともThumbでは。 --ただ、SVCの引数は24bitなくて8bitになるらしい。 ~ ---- -実は、CodeSourcery G++ LiteのDLサイトを良く見たら、Windows/Linux版だけでなく、ソースもDL出来るようになっている。 -ソースをDLしてみた。 arm-2010.09-51-arm-none-eabi% ls arm-2010.09-51-arm-none-eabi.sh binutils-2010.09-51.tar.bz2 cloog-2010.09-51.tar.bz2 coreutils-2010.09-51.tar.bz2 expat-2010.09-51.tar.bz2 gcc-2010.09-51.tar.bz2 gdb-2010.09-51.tar.bz2 gmp-2010.09-51.tar.bz2 gnu-2010.09-51-arm-none-eabi.txt libelf-2010.09-51.tar.bz2 libiconv-2010.09-51.tar.bz2 make-2010.09-51.tar.bz2 mpc-2010.09-51.tar.bz2 mpfr-2010.09-51.tar.bz2 newlib-2010.09-51.tar.bz2 ppl-2010.09-51.tar.bz2 zlib-2010.09-51.tar.bz2 -必要物全部入っとるやんけ。 - arm-2010.09-51-arm-none-eabi.sh はビルドスクリプトになっていて、Linux版とWindows版の両方を、(たぶん)GNU/Linux OS上でビルド出来るようになっている。 - Windows版のexeファイルはLinux上のクロスMinGW-gccで作成出来る。便利だ。 -というわけで、''今のところ'' CodeSourcery G++ Liteの成果を使わせていただくのが最も便利で楽勝だ。という結論に達した。 ~ ~ ~ ~ --------- *別解:summon-arm-toolchainを使ってLinux上でarm-gcc(elf)を作る。 [#edf69c82] summon-arm-toolchain -https://github.com/esden/summon-arm-toolchain/ -上記ページのDOWNLOADリンクをクリックして、zipファイルを取得する。 -展開すると、summon-arm-toolchainというシェルスクリプトが出てくるので、これを、たとえばubuntu11.04上 で走らせる。(もちろんWindows上のVMimageなubuntuでも構わない) -走らせる前に、なるべくなら、build-essential とか gcc , git , libmpfr-dev , libmpc-dev ,libftdi-dev , texinfo などはインストールしておいたほうが良い。( apt-get install 〜 を使う) あとはほぼ自動でダウンロード&クロスビルドを行ってくれる。 -できたブツは ~/sat/ 以下に生成されるようだ。 一応ユーザー権限で全部作成された。(含: OpenOCD , gdb7 etc) -ものぐさな人には便利かも。(全自動でビルドしてくれるので)
テキスト整形のルールを表示する
ログインまたはアカウント作成