MacintoshでARM-USB-TINY-Hを使ってRaspberry PIのデバッグする。
I will try to debug Raspberry pi using ARM-USB-TINY-H on Macintosh.Error report:
Install libusb
ARM-USB-TINY-HはUSB接続。Host機器側にUSBのライブラリを導入する。
brew install libusb
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (caskroom/cask, homebrew/core).
==> Updated Formulae
angular-cli clhep diamond gdnsd gomplate kallisto ocrmypdf singular vdirsyncer
==> Downloading https://homebrew.bintray.com/bottles/libusb-1.0.21.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring libusb-1.0.21.sierra.bottle.tar.gz
🍺 /usr/local/Cellar/libusb/1.0.21: 29 files, 510.5KB
bash-3.2$ brew install libtool
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (caskroom/cask, homebrew/core).
==> Updated Formulae
googler gutenberg heroku leptonica lumo supervisor typescript
==> Downloading https://homebrew.bintray.com/bottles/libtool-2.4.6_1.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring libtool-2.4.6_1.sierra.bottle.tar.gz
==> Caveats
In order to prevent conflicts with Apple's own libtool we have prepended a "g"
so, you have instead: glibtool and glibtoolize.
==> Summary
🍺 /usr/local/Cellar/libtool/2.4.6_1: 70 files, 3.7MB
$ brew install automake
==> Downloading https://homebrew.bintray.com/bottles/automake-1.15.1.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring automake-1.15.1.sierra.bottle.tar.gz
🍺 /usr/local/Cellar/automake/1.15.1: 131 files, 3.0MB
libusb, automakeのログ
How can I debug Raspberry pi using ARM-USB-TINY-H with Macintosh.
https://researchmap.jp/jo9nl128r-2000107/#_2000107
Openocd-armv8の取得
daniel-k/openocd
https://github.com/daniel-k/openocd
You'll also need:
- make
- libtool
- pkg-config >= 0.23 (or compatible)
Additionally, for building from git:
- autoconf >= 2.64
- automake >= 1.9
- texinfo
まずgit
$ git clone https://github.com/daniel-k/openocd.git openocd-armv8
$ cd openocd-armv8
$ git checkout armv8
Branch armv8 set up to track remote branch armv8 from origin.
Switched to a new branch 'armv8'
bootstrapスクリプト
$ ./bootstrap
+ aclocal
./bootstrap: line 27: aclocal: command not found
$ cat ./bootstrap
#!/bin/sh
# Run the autotools bootstrap sequence to create the configure script
# Abort execution on error
set -e
if which libtoolize > /dev/null; then
libtoolize="libtoolize"
elif which glibtoolize >/dev/null; then
libtoolize="glibtoolize"
else
echo "$0: Error: libtool is required" >&2
exit 1
fi
if [ "$1" = "nosubmodule" ]; then
SKIP_SUBMODULE=1
elif [ -n "$1" ]; then
echo "$0: Illegal argument $1"
echo "USAGE: $0 [nosubmodule]"
exit 1
fi
# bootstrap the autotools
(
set -x
aclocal
${libtoolize} --automake --copy
autoconf
autoheader
automake --gnu --add-missing --copy
)
if [ -n "$SKIP_SUBMODULE" ]; then
echo "Skipping submodule setup"
else
echo "Setting up submodules"
git submodule init
git submodule update
fi
echo "Bootstrap complete. Quick build instructions:"
echo "./configure ...."
$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
bootstrapスクリプトの中身
$ cat ./bootstrap
#!/bin/sh
# Run the autotools bootstrap sequence to create the configure script
# Abort execution on error
set -e
if which libtoolize > /dev/null; then
libtoolize="libtoolize"
elif which glibtoolize >/dev/null; then
libtoolize="glibtoolize"
else
echo "$0: Error: libtool is required" >&2
exit 1
fi
if [ "$1" = "nosubmodule" ]; then
SKIP_SUBMODULE=1
elif [ -n "$1" ]; then
echo "$0: Illegal argument $1"
echo "USAGE: $0 [nosubmodule]"
exit 1
fi
# bootstrap the autotools
(
set -x
aclocal
${libtoolize} --automake --copy
autoconf
autoheader
automake --gnu --add-missing --copy
)
if [ -n "$SKIP_SUBMODULE" ]; then
echo "Skipping submodule setup"
else
echo "Setting up submodules"
git submodule init
git submodule update
fi
echo "Bootstrap complete. Quick build instructions:"
echo "./configure ...."
Autotools
Autotoolsの入力ファイルと出力ファイル
http://www.fireproject.jp/feature/automake/basic/autotools.html
###"aclocal": No such file or directoryの対処法
https://qiita.com/DQNEO/items/11d6056547cab0632901
Homebrewではautomakeにaclocalが入っている。
$ brew install automake
configure
$ ./configure --enable-ftdi
##configureのログ
https://researchmap.jp/jo9jhe69b-2000107/#_2000107
#make
$ make
... snip ...
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../../.. -I../../../../src -I../../../../src -I../../../../src/helper -DPKGDATADIR=\"/usr/local/share/openocd\" -DBINDIR=\"/usr/local/bin\" -I../../../../jimtcl -I../../../../jimtcl -I../../../../src/jtag/drivers -isystem /usr/local/Cellar/libusb/1.0.21/include/libusb-1.0 -g -O2 -Wall -Wstrict-prototypes -Wformat-security -Wshadow -Wextra -Wno-unused-parameter -Wbad-function-cast -Wcast-align -Wredundant-decls -Werror -MT ublast2_access_libusb.lo -MD -MP -MF .deps/ublast2_access_libusb.Tpo -c ublast2_access_libusb.c -o ublast2_access_libusb.o
ublast2_access_libusb.c:77:6: error: comparison of array 'data' equal to a null pointer is always false [-Werror,-Wtautological-pointer-compare]
if (data == NULL)
^~~~ ~~~~
1 error generated.
The tools versions are here. libusb 1.0.21, autoconf 2.69, automake 1.15.1, libtool 2.4.6.1, pkg-config 0.29.2, texinfo 6.5, libftdi 1.4, make 3.8.1, gcc 9.0.0,
gcc7.3.0
I change make 3.8.1 to 4.2.2.1 and gcc 9.0.0 to 7.3.0.
$ brew install gcc7
$ brew install make
$ ln -s gcc-7 gcc
gccにシンボリックリンクし、PATHを切る。
$ ./bootstrap
2度目だからlogが短いのかは未調査。
$ ./configure --enable-ftdi
記録
$ make
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../src -I../../../src -I../../../src/helper -DPKGDATADIR=\"/usr/local/share/openocd\" -DBINDIR=\"/usr/local/bin\" -I../../../jimtcl -I../../../jimtcl -isystem /usr/local/Cellar/libusb/1.0.21/include/libusb-1.0 -g -O2 -Wall -Wstrict-prototypes -Wformat-security -Wshadow -Wextra -Wno-unused-parameter -Wbad-function-cast -Wcast-align -Wredundant-decls -Werror -MT libocdjtagdrivers_la-ftdi.lo -MD -MP -MF .deps/libocdjtagdrivers_la-ftdi.Tpo -c ftdi.c -o libocdjtagdrivers_la-ftdi.o
ftdi.c: In function 'ftdi_handle_set_signal_command':
ftdi.c:791:6:error: this statement may fall through [-Werror=implicit-fallthrough=]
if (CMD_ARGV[1][1] == '\0') {
^
ftdi.c:795:2:note: here
default:
^~~~~~~
cc1: all warnings being treated as errors
gcc6
$ brew install gcc6
$ ln -s gcc-6 gcc
gccにシンボリックリンクし、PATHを切る。
$ ./bootstrap
+ aclocal
+ glibtoolize --automake --copy
+ autoconf
+ autoheader
+ automake --gnu --add-missing --copy
Makefile.am:23: warning: wildcard $(srcdir: non-POSIX variable name
Makefile.am:23: (probably a GNU make extension)
Setting up submodules
Bootstrap complete. Quick build instructions:
./configure ....
2度目だからだと思うけど、なんでこんなに短いのかは未調査。
$ ./configure --enable-ftdi
記録
https://researchmap.jp/joj34fkr0-2000107/#_2000107
$make
最後の仕上げ。
sudo make install
Password:
Making install in jimtcl
make[1]: Entering directory '/Users/administrator/work/openocd-armv8/jimtcl'
* snip *
付録 dockerで作業
$ sudo apt-get install automake
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
autoconf autotools-dev libsigsegv2 m4
提案パッケージ:
autoconf-archive gnu-standards autoconf-doc libtool gettext
以下のパッケージが新たにインストールされます:
autoconf automake autotools-dev libsigsegv2 m4
アップグレード: 0 個、新規インストール: 5 個、削除: 0 個、保留: 0 個。
1,079 kB のアーカイブを取得する必要があります。
この操作後に追加で 3,998 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libsigsegv2 amd64 2.10-4 [14.1 kB]
取得:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 m4 amd64 1.4.17-5 [195 kB]
取得:3 http://archive.ubuntu.com/ubuntu xenial/main amd64 autoconf all 2.69-9 [321 kB]
取得:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 autotools-dev all 20150820.1 [39.8 kB]
取得:5 http://archive.ubuntu.com/ubuntu xenial/main amd64 automake all 1:1.15-4ubuntu1 [510 kB]
1,079 kB を 6秒 で取得しました (162 kB)
debconf: delaying package configuration, since apt-utils is not installed
以前に未選択のパッケージ libsigsegv2:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 35685 個のファイルとディレクトリがインストールされています。)
.../libsigsegv2_2.10-4_amd64.deb を展開する準備をしています ...
libsigsegv2:amd64 (2.10-4) を展開しています...
以前に未選択のパッケージ m4 を選択しています。
.../archives/m4_1.4.17-5_amd64.deb を展開する準備をしています ...
m4 (1.4.17-5) を展開しています...
以前に未選択のパッケージ autoconf を選択しています。
.../autoconf_2.69-9_all.deb を展開する準備をしています ...
autoconf (2.69-9) を展開しています...
以前に未選択のパッケージ autotools-dev を選択しています。
.../autotools-dev_20150820.1_all.deb を展開する準備をしています ...
autotools-dev (20150820.1) を展開しています...
以前に未選択のパッケージ automake を選択しています。
.../automake_1%3a1.15-4ubuntu1_all.deb を展開する準備をしています ...
automake (1:1.15-4ubuntu1) を展開しています...
man-db (2.7.5-1) のトリガを処理しています ...
libsigsegv2:amd64 (2.10-4) を設定しています ...
m4 (1.4.17-5) を設定しています ...
autoconf (2.69-9) を設定しています ...
autotools-dev (20150820.1) を設定しています ...
automake (1:1.15-4ubuntu1) を設定しています ...
update-alternatives: /usr/bin/automake (automake) を提供するために自動モードで /usr/bin/automake-1.15 を使います
libc-bin (2.23-0ubuntu10) のトリガを処理しています ...
$ git clone https://github.com/daniel-k/openocd.git openocd-armv8
Cloning into 'openocd-armv8'...
remote: Counting objects: 51261, done.
Receiving objects: 100% (51261/51261), 11.44 MiB | 41.00 KiB/s, done.
remote: Total 51261 (delta 0), reused 0 (delta 0), pack-reused 51261
Resolving deltas: 100% (42162/42162), done.
Checking connectivity... done.
$ sudo apt-get install libusb-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
libusb-dev
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
29.9 kB のアーカイブを取得する必要があります。
この操作後に追加で 231 kB のディスク容量が消費されます。
取得:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libusb-dev amd64 2:0.1.12-28 [29.9 kB]
29.9 kB を 0秒 で取得しました (35.1 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
以前に未選択のパッケージ libusb-dev を選択しています。
(データベースを読み込んでいます ... 現在 35978 個のファイルとディレクトリがインストールされています。)
.../libusb-dev_2%3a0.1.12-28_amd64.deb を展開する準備をしています ...
libusb-dev (2:0.1.12-28) を展開しています...
man-db (2.7.5-1) のトリガを処理しています ...
libusb-dev (2:0.1.12-28) を設定しています ...
詳細の履歴は
https://researchmap.jp/jokwx728e-2000107/#_2000107
$ ./bootstrap
* snip *
$ ./configure --enable-ftdi
* snip *
bootstrap, configureの記録
https://researchmap.jp/jodhbzwom-2000107/#_2000107
$ make
$ sudo make install
makeの記録
https://researchmap.jp/joq6udnvg-2000107/#_2000107
make installの記録
https://researchmap.jp/joc3pfsdn-2000107/#_2000107
#参考文献/URL
AVR/ARM Cross Toolchain for OS X
http://www.ethernut.de/en/documents/cross-toolchain-osx.html
OpenOCD and Ethernut 3
http://www.ethernut.de/en/hardware/enut3/openocd.html
[OpenOCD-user] Problems with openocd-0.6.1 on darwin.
https://sourceforge.net/p/openocd/mailman/message/30392592/
openocd-mingw-w64-build-scripts/build-openocd-osx.sh
https://github.com/artynet/openocd-mingw-w64-build-scripts/blob/master/build-openocd-osx.sh
How can I debug Raspberry pi using ARM-USB-TINY-H on Macintosh
https://stackoverflow.com/questions/48822464/how-can-i-debug-raspberry-pi-using-arm-usb-tiny-h-on-macintosh
UbuntuでUSBリブラリー(libusb-1.0.21)
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14171566049
Re: [OpenOCD-user] Ubuntu and libusb
https://sourceforge.net/p/openocd/mailman/message/34727364/
最後までおよみいただきありがとうございました。
いいね、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon and follow me for your happy life.