2016年03月02日

Vim: きょ驚愕のSpacemacs !? 2016

以前 Emacs+Evilを発見したが,さらに強力にVimっぽくなったのが
Spacemacsの様だ。

調査中。

以下の方のページを参考にインストールしてみたが,最後のHelmの自動設定の当たりでインストールエラーが出て,「このままだとダメっぽい」というメッセージが出てしまった。
orz
Vimも秘伝のタレも飲み込むEmacsの超強力ディストリビューションSpacemacsまとめ
http://qiita.com/ryosukes/items/d0ec5094a9d3d636f7bb
Windows10, Emacs 23.x 。
一応,Spacemacsは起動したのでちょっと使ってみる。
以下 調査中。
Linuxで試したほうが良いのかも。
orz
プログラマーズ雑記帳さんのページ
Emacs (24.5 以上) の Windows へのインストール
http://yohshiy.blog.fc2.com/blog-entry-295.html
を参考に,
http://ftp.gnu.org/pub/gnu/emacs/windows/
からEmacs24.5をインストールしたらエラーはなくなった。
但し,日本語入力がATOKなんだけど,入力中のインライン表示ができない。
orz
orz
posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(0) | Vim | このブログの読者になる | 更新情報をチェックする

2016年02月26日

Arduino/Genuino 101 の追加メモ 2016/02

Arduino/Genuino 101 の追加メモ 2016/02
前回,コンパイルができないと書いていたが,
つい最近Genuino101(=Arduino101)のコンパイラとライブラリのダウンロードができたので
コンパイルだけやってみた時のメモ。
使用OSはWindows10。

* ダウンロードと設定
(1) Arduino1.6.7をダウンロード
    https://www.arduino.cc/en/Main/Software
    適当に解凍する。
(2) arduino.exeでIDEを起動,
(3) 「ツール」-「マイコンボード」で「ボードマネージャ」で「Intel Curie Boards by Intel version」を
    探して「More info」をクリックでインストールする。
(4) 「ツール」-「マイコンボード」で 「Arduino 101」を選択して適当にBlink.ino等をコンパイルする。

* コンパイル結果ファイル群を得る
(1) AruinoIDEを終了します。これ大事。
(2) 以下の一行をエクプローラのアドレスバーにコピペしてエンターキーを押すと,
    %UserProfile%\AppData\Local\Arduino15\preferences.txt
    が編集可能になるので以下の一行をどこでもいいので追加します。
    build.path=build
    保存して終了します。
(3) ArduinoIDEを起動してもう一度Blink.ino等をコンパイルします。
(4) すると,arduino.exeがあるフォルダ直下に「build」フォルダができて,
    *.bin, *.elf, *.hex, *.map など
    おもしろそうなものが一式生成されています。:D

* 逆アセンブラファイルを得る
elfファイルがあるのでobjdumpにかけてみるとシンボル情報がstripされていて
もうひとつインパクトがないので,
以下に示す「arc-asm-list.bat」というファイルをarduino.exeと同じフォルダに置いてダブルクリックします。
すると同じフォルダに例えば「ARC-blink.ino.lst」という逆アセンブラファイルが得られます。
asm-list-arduino-v02-201602.zip
arc-asm-list.bat   --- Arduino101/Genuino101用(ARCマイコン用)
arm-asm-list.bat   --- ArduinoDue/Zero用(ARMマイコン用)
avr-asm-list.bat   --- ArduinoUNO/etc.用(AVRマイコン用)
の3つがパックされています。
例えばそれぞれ識別子としてリストファイルの先頭にARC-,ARM-,AVR-が付加されます。

 >arc-asm-list.bat
[ファイル名]

ELF file name = "build\blink.ino.elf"
Scketch  name = blink.ino
List file name= blink.ino.lst

[再リンク中...]

""C:\Users\[user]\AppData\Local\Arduino15\packages\Intel\tools\arc-elf32\1.6.4+1.0/bin/arc-elf32-gcc" -nostartfiles -nodefaultlibs -nostdlib -static -Wl,-X -Wl,-N -Wl,-mARCv2EM -Wl,-marcelf -Wl,--gc-sections "-TC:\Users\[user]\AppData\Local\Arduino15\packages\Intel\hardware\arc32\1.0.4\variants\arduino_101/linker_scripts/flash.ld" "-Wl,-Map,build/blink.ino.map" -o "build/blink.ino.elf" "-Lbuild" "-LC:\Users\[user]\AppData\Local\Arduino15\packages\Intel\hardware\arc32\1.0.4\variants\arduino_101" -Wl,--whole-archive "-larc32drv_arduino101" -Wl,--no-whole-archive -Wl,--start-group "-larc32drv_arduino101" -lc -lm -lgcc "build\sketch\blink.ino.cpp.o" "build\core\variant.cpp.o" "build/core\core.a""

[リストファイルを生成]

"C:\Users\[user]\AppData\Local\Arduino15\packages\Intel\tools\arc-elf32\1.6.4+1.0/bin\arc-elf32-objdump -h -dS  "build\blink.ino.elf" > "blink.ino.lst""

[サイズ情報]
   text    data     bss     dec     hex filename
  14644    3172   12672   30488    7718 build\Blink.ino.elf

[終了]
これがARCコアの逆アセンブルリスト。
 void variantAdcInit(void)
{
400373a0:    fc 1c c8 b6                 st.a       fp,[sp,-4]
400373a4:    9b 43                       mov_s      fp,sp
    uint32_t creg;
    uint32_t saved;

    /* read creg slave to get current Power Mode */
    creg = READ_ARC_REG(AR_IO_CREG_SLV0_OBSR);
400373a6:    2a 20 80 0f 01 80 80 80     lr         r0,[0x80018080]

    /* perform power up to "Normal mode w/o calibration" cycle if not already there */
    if( (creg & ADC_MODE_MASK) != ADC_NORMAL_WO_CALIB){
400373ae:    c2 b8                       bmsk_s     r0,r0,2
400373b0:    35 08 11 01                 brne       r0,4,400373e4 

        interrupt_unlock(saved);
        /* Poll CREG Slave 0 for Power Mode status = requested status */
        while ( ((creg = READ_ARC_REG(AR_IO_CREG_SLV0_OBSR)) & 0x8) == 0);
    }

    WRITE_ARC_REG(ADC_CLK_ENABLE | ADC_INT_DSB, ADC_CTRL);
400373b4:    c3 40 01 80 03 50           mov_s      r0,0x80015003
400373ba:    2b 26 00 70 00 00 04 0f     sr         0xf04,[r0]
    WRITE_ARC_REG(ADC_CONFIG_SETUP, ADC_SET);
400373c2:    c3 40 01 80 00 50           mov_s      r0,0x80015000
400373c8:    2b 26 00 70 00 00 0b 00     sr         11,[r0]
    WRITE_ARC_REG(ADC_CLOCK_RATIO &ADC_CLK_RATIO_MASK, ADC_DIVSEQSTAT);
400373d0:    c3 40 01 80 01 50           mov_s      r0,0x80015001
400373d6:    2b 26 00 70 00 00 20 00     sr         32,[r0]

}
400373de:    e0 7f                       j_s.d      [blink]
400373e0:    04 14 1b 34                 ld.ab      fp,[sp,4]
* コンパイラやライブラリのありか 以下をエクプローラのアドレスバーにコピペしてエンターキーを押すと, %UserProfile%\AppData\Local\Arduino15\packages\Intel そのなかに必要なものが一式ある感じです。 リンカスクリプトやスタートアップコードやライブリコード等,必要そうなものがあり, ライセンスはLGPLやBSDだったりします。 * あれ? Intel i386じゃないの?! で,どうも勘違いしていたようで, Aruino101でユーザがコンパイル/アップロードして使うマイコンは ARCプロセッサ でした。 (OO) http://www.synopsys.com/jp2/IP/ProcessorIP/ARCProcessors/Pages/default.aspx https://en.wikipedia.org/wiki/ARC_%28processor%29 * コードサイズがデカイ? 以前使っていた多倍長演算のベンチマークコードがあって,これをAruduino UNOで コンパイルすると Flash 4980バイトでした。 これをArduino101でコンパイルすると, Flash 57Kバイトでした。 いじめでしょうか? orz orz リストファイルをみると浮動小数演算とprintf関連のライブラリがくっついてきて結構大きくなった感じ。 それでもまだ130KBバイト以上残っているので気にしないことにしようかな。 xD ちなみにprint文をカットしてみると,
 [サイズ情報]
   text    data     bss     dec     hex filename
  15988    3168   12744   31900    7c9c build\bench_muls.ino.elf
57KB - 16KB = 41KB というこでprint系のオーバヘッドは約40KBでした。 Arduino UNOに比べれば自由人 !! * 正味のコードサイズ なんとARCコアはコードサイズがデカイ。ARMの4倍以上デカイ。 可変長命令なのでこんなものなのか? まぁFlash192KBあるからよしとしよう :D 実行速度はキャッシュが8KBあるし,クロック32MHzなので32MIPS強くらいあるかもしれない。
setup()とloop()が空っぽ テストコード 正味のコードサイズ
Arduino UNO500バイト2516バイト2016バイト
Arduino Zero8196バイト8788バイト592バイト
Arduino Due11116バイト11700バイト584バイト
Aruino 10116724バイト19148バイト2424バイト
この表のテストコードはprint文なしです。 * Intel i386コア? i386がホストマイコンということなんだけど どこで出てくるんだろう? xD
posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(2) | duino系 | このブログの読者になる | 更新情報をチェックする

2016年02月06日

USB Type-C ケーブルについてのメモ 2016

PCを破壊する恐るべきType-CのUSBケーブルがちまたにあふれかえる現状にGoogleエンジニアが怒りのAmazonレビューを連載中
http://gigazine.net/news/20160203-google-engineer-review-type-c-cable/

GoogleのエンジニアがUSB Type-C対応ケーブルを片っ端から品質レビュー、まともに動くのがどれなのか判明
http://gigazine.net/news/20151106-usb-type-c/

今のところType-Cとは縁がないけど,
メモするのだった。
posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(0) | PC関連 | このブログの読者になる | 更新情報をチェックする

2016年02月03日

Arduino/Genuino 101 のメモ 2016/02

Arduino/Genuino 101 のメモ 2016/02
Arduino/Genuino 101 の追加メモ 2016/02

arduino.ccから「Arduino/Genuino 101」というボードが出たらしい。
https://www.arduino.cc/en/Main/ArduinoBoard101
    回路図
    https://www.arduino.cc/en/uploads/Main/Arduino101Schematic.pdf
2015年に発表されていたらしい。
先月末にRSコンポーネンツから発売開始の案内が来ていた。
Arduno/Genuino 101
@4748円

arduino.cc的には「Arduino Uno」の後継という位置づけらしい。
あれ? Leonardoはどうした?
と思って調べてみると既に退役(Retired)してしまった様だ。
https://www.arduino.cc/en/Main/Products
Unoより後に出たのにね。
というか28pin DIPというのがミソだったわけだから当然の消滅なのか。

で,101,
2015年に起きたArduinoの内紛のため,
アメリカ国内では「Arduino 101」,
それ以外の国々では「Genuino 101」という名称らしい。

* Arduino / Genuino 101は CPUが Intel i386 + ARC になった
CPUなのかMCUなのかMPUなのかの表現は置くとして, :D
Intel CurieモジュールというSoCモジュールの中に
Intel QUARK SE (i386) 
    http://www.intel.com/content/www/us/en/embedded/products/quark/mcu/se-soc/quark-se-soc-product-brief.html
    https://ja.wikipedia.org/wiki/Intel_Quark#Intel_Quark_SE
    ブロック図
        http://www.cnx-software.com/2015/11/06/intel-unveils-three-new-micro-controllers-for-iot-quark-d1000-quark-d2000-and-quark-se/
というホスト(メイン)プロセッサと
ARCというサブプロセッサ及び
BLE,加速度センサ,ジャイロセンサモジュールを内蔵している。
RTCも内蔵。
Intel QUARK SE (i386):
    32bit 32MHz動作
    Flash 192KB (ユーザが使えるらしい)
    8KBの命令キャッシュ
    浮動小数のコプロはなし
ARC プロセッサ:
    https://en.wikipedia.org/wiki/ARC_%28processor%29
    32bit 32MHz動作
    Flash 192KB
    浮動小数のコプロあり
    8KBの命令キャッシュ
SRAM:
    トータル80KB内蔵されているがユーザが使えるのは24KBの様だ。
パターンマッチング・アクセラレータ:
    パターン認識をハードウエアで行うための,
    128入力を持つニューロン素子が128個内蔵されているようだが
    この機能がArdunio側でどうサポートされているかは不明。
その他:
    (1) DACはない。 orz
    (2) I2Sあり。ボード仕様として使えるかどうかは不明。 
    (3) DMAあり。
    (4) USB 1.1 デバイス機能あり。

* リアルタイムOS ViperOS
2016/02時点ではほとんど使えないが, 2016/03ごろに正式搭載(デフォルトで)となる様だ。
Intel Edisonでも使われているらしい。

* Genuino 101でハローワールド!
Say Hello to Genuino 101!
http://www.rs-online.com/designspark/electronics/jpn/blog/say-hello-to-genuino-101

* 日本ではまだ使えない Genuino 101 ボード (2016/02時点)
まだ,技適が通ってない様なので日本国内のホビーユースの使用はできません。
じゃあ,コンパイルだけでも,と思ってGenuino 101対応済みのIDE,
ArduinoIDE v1.6.7を入手したものの,
国別情報を見ているのか「Genuino 101」関連のライブラリは全く出現しませんでした。
orz
orz
ひどすぎないか?
orz

* NDAの壁
Intel Quark, Curieの詳細なデータシート等は
秘密保持契約(NDA)をIntelと結ばないと入手できない様だ。
orz
orz
orz
Intel Edisonもそうだったらしい。

て,いうか,
Arduino/Genuino 101は
「エントリー向けモデル」で,Unoの後継なので
「データシートよこせ」
という人向けではないのです。
orz

遠い目


米ドルで$30なので秋月のズバリ価格で
税込み4250円くらいなら記念に xD 買ってみる手もなくはない。。。


* 内蔵電源レギュレータ容量は1500mA
これは強力。

posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(0) | duino系 | このブログの読者になる | 更新情報をチェックする

2016年01月18日

TOPPERS/ASP STM32F4バージョン出る 2016/01

TOPPERS/ASP STM32F4バージョンが発表された様だ。
https://www.toppers.jp/asp-d-download.html#arm_m4
まだ,発見したばかりなので詳細は不明なものの,
上のページを見ると,
STM32F4-Discovery
Nucleo-F401RE
STM32F429ボード
に対応している様だ。
所有しているNucleo-F411REはF401REとして動作するので試してみようかな。

FPU対応はどうなのかよく分からない。
(ドキュメントに対応済みと書いてありました)

以下 READMEから抜粋。

TOPPERS/ASP Kernel(Release 1.9.2)STM32F4
Toyohashi Open Platform for Embedded Real-Time Systems/
Advanced Standard Profile Kernel

TOPPERS/ASP STM32F4は以下の4つのボードのGCCの開発環境に対応します.
本パッケージは個別パッケージであるため、TOPPERS/ASPカーネルターゲット
非依存部パッケージasp-1.9.2.tar.gzと組み合わせて使用してください.
(1)STM社 STM32F4 Discoveryボード
Chip:STM32F407VGT6
(2)Olimex社STM32-E407ボード
Chip:STM32F407ZGT6
(3)日昇テクノロジ社のstm32f429ボード
Chip:STM32F429
(4)STM社STM32F401 Nucleoボード
Chip:STM32F401RET6

ASPの実行形態は以下の2つをサポートします.
実行形態は、コンパイル時の変数DBGENVの設定で変更ができます.
Makefileの設定で変更ができます.

(1)RAM実行:ROMモニタ(rommon)で起動したボードに、UARTを用いて
ASPの実行形式(srec)をダウンロードして実行する形態
rommonのFLASH ROM書込みファイルはtools/rommonに置いてあります.
DBGENVが設定されない場合、またはRAMが設定の場合、この形態のビルドを行います.

(2)ROM実行:FLASH ROMに書き込んで実行する形態
DBGENVにROMが設定の場合、この形態のビルドを行います.

STM社STM32F401 Nucleoボードに関しては、TrueSTUDIOのプロジェクトファイルを
tools/TrueSTUDIOに用意しています.
これにより、直接TrueSTUDIOを用いてビルドが可能です.
実行形態はROM実行に固定です.

* TOPPERS ASP Arduino M0 Proバージョン
話変わって。
http://dev.toppers.jp/trac_user/contrib/wiki/rtos_arduino
Arduinoのライブラリが使えるTOPPERS/ASPだそうです。
これは興味深い。

でもArduino M0 Pro持ってる人はそんなに多くない気もする。
持ってないし。:D
posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(0) | TOPPERS / RTOS | このブログの読者になる | 更新情報をチェックする