なんとかなるさね

マイコンをネタにブログを始めてみました


スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--   blog-entry-   category: スポンサー広告

go page top

Arduino IDE|GadgetRenesas基板用IDE4GR 1.6.5(のようなもの)を作るには? 考え直し中(9) 

すみません。後のエントリでEEPROMライブラリとPicalicoFreeライブラリはLGPLのライセンス違反(というか
LGPLとするのに必要な条件をそもそも満たしていない)ような気もしてきましたので、ファイルの公開をやめ
ます。また後で考え直してみます。(2016/05/07)


ちょうどIDE4GR 0.7.0がルネサスから公開されましたので、これのダウンロード用zipファイルと以前の幾つか
のエントリ(750, 753)以降分かって来たことを組み合わせて、KURUMI基板用のArduino IDEのボードパッケージ
(Windows専用)を作ってみました。 また、その中で使用しているダウンロード用zipファイルにはe2 studio用
スケッチ環境としてe2 studioのワークスペースにインポートする為に必要なファイルを含めるようにしました。
(ただし、逆に幾つかのヘッダファイルとライブラリファイルを除外してあり、Arduino IDEのボードパッケージ
では小細工して手間を掛けることなく補われるように出来たのですが、e2 studio用スケッチ環境では小細工が
出来なかったので必要に応じて手作業で補ってやる必要があって、ちょっと中途半端なものになっていますが。)

パッケージ情報定義ファイルのURL:

http://mon80.web.fc2.com/blogdata/blog-entry-758/package_GadgetRenesas_Kurumi_trial_index.json

内容:

{
  "packages": [
    {
      "name": "GadgetRenesas_t",
      "maintainer": "MON-80",
      "websiteURL": "http://japan.renesasrulz.com/gr_user_forum_japanese/default.aspx",
      "email": "",
      "help": {
        "online": "http://japan.renesasrulz.com/gr_user_forum_japanese/b/weblog2/default.aspx"
      },
      "platforms": [
        {
          "name": "GadgetRenesas KURUMI Boards (16-bit RL78 MCU) // packaging trial",
          "architecture": "kurumi",
          "version": "1.12.0-20160421",
          "category": "GadgetRenesas",
          "help": {
            "online": "http://gadget.renesas.com/ja/reference/kurumi/index.html"
          },
          "url": "http://mon80.web.fc2.com/blogdata/blog-entry-758/gr_platform_kurumi_v1.12.0.20160421.zip",
          "archiveFileName": "gr_platform_kurumi_v1.12.0.20160421.zip",
          "checksum": "SHA-256:5933BFA8547DE7E5976E33C9CA9AFB71FD68CCE5F6088F7ACDA74D15385C1B97",
          "size": "546644",
          "boards": [
            {
              "name": "GR-KURUMI"
            }
          ],
          "toolsDependencies": [
            {
              "packager": "GadgetRenesas_t",
              "name": "ide4gr",
              "version": "0.7.0"
            },
            {
              "packager": "GadgetRenesas_t",
              "name": "kurumi_sketch",
              "version": "1.12.0"
            }
          ]
        }
      ],
      "tools": [
        {
          "name": "ide4gr",
          "version": "0.7.0",
          "systems": [
            {
              "host": "i686-mingw32",
              "url": "http://gadget.renesas.com/ja/product/software/ide4gr-0.7.0-windows.zip",
              "archiveFileName": "ide4gr-0.7.0-windows.zip",
              "checksum": "SHA-256:78184F59A0A60F2F571987CAE3E32C4590635F4A23697CFC3A89271494B0DD16",
              "size": "191051751"
            }
          ]
        },
        {
          "name": "kurumi_sketch",
          "version": "1.12.0",
          "systems": [
            {
              "host": "i686-mingw32",
              "url": "http://japan.renesasrulz.com/cfs-file.ashx/__key/telligent-evolution-components-attachments/13-03-00-00-00-00-02-30/kurumi_5F00_sketch.zip",
              "archiveFileName": "kurumi_sketch_v112_e2studio.zip",
              "checksum": "SHA-256:7CBE90BBCCD9D9A0C876F02855F2FBB43570D39F81D53016D34FC4A148798D31",
              "size": "333499"
            }
          ]
        }
      ]
    }
  ]
}

このボードパッケージをインストールした後のボードマネージャとマイコンボードメニューは以下の通りでした。






また、このボードパッケージをインストールした後のフォルダ構成は以下の通りでした。



パッケージ情報定義ファイルのURLはArduino IDEのメニュー[ファイル]→[環境設定]で開くダイアログで指定
することが出来ます。なお、Arduino IDE 1.6.5/1.6.8でビルドを試してみた時の画面は以下の通りでした。










このボードパッケージで使用している以下のダウンロード用zipファイルを解凍したものはe2 studio用スケッチ
環境としてe2 studioのワークスペースにインポートしてe2 studio上でビルドすることが出来ます。

zipファイルのURL:

http://mon80.web.fc2.com/blogdata/blog-entry-758/gr_platform_kurumi_v1.12.0.20160421.zip

ただし、以下のファイルを除外(というか小細工用のファイルで代替)してありますので、EEPROMライブラリと
PicalicoFreeライブラリはビルド出来ません。その為、e2 studioのプロジェクト設定でこの2つのライブラリを
ビルドから除外するようにしてあります。(ですが、以下のファイルをルネサス提供のファイルで上書きすれば、
ビルドから除外する設定を解除するだけでビルド出来るようにしてあります。)

libraries\EEPROM\utility\pfdl.a
libraries\EEPROM\utility\pfdl.h
libraries\EEPROM\utility\pfdl_types.h
libraries\PicalicoFree\utility\picalicoFree.a
libraries\PicalicoFree\utility\picalicoFree.h



追記 : メモ

IDE4GR製品ページ (ちょうど0.7.0 Windows/Macが公開されたところでした)
http://gadget.renesas.com/ja/product/ide4gr.html

GR-KURUMI e2studio(V4)用スケッチ環境 (現在はV1.12です)
http://japan.renesasrulz.com/gr_user_forum_japanese/m/mediagallery/230.aspx

追記 : メモ

この後やりたいこと

* SAKURA基板スケッチ環境とKAEDE基板スケッチ環境
 (COTTON基板はe2 studio用スケッチ環境が無い?)
* プリビルドコアライブラリを使用するやり方
 (出来ればexception_handler.cppもvector_table.cも
 interrupt_handlers.cもリコンパイルしないように)
* クルミ行燈のサンプルを含める(でもライブラリ無しサンプルを含めるには?)
* 以前のエントリのArduino IDEをサクラ色にするファイルを含める
* 1年半ほど放置してしまっている昔のエントリの続きと合流

追記 : メモ

GR-SAKURAⅡ / GR-KURUMI - 若松通商
http://wakamatsu.mobi/eccube/html/products/list.php?category_id=577

GR-KAEDE / GR-PEACH / GR-COTTON - 秋月電子通商
http://akizukidenshi.com/catalog/c/cgr/

追記 : メモ

GR-SAKURAは出荷実績3万個だそうです。GR-SAKURAⅡは、『内蔵RAMが128KBから256KBへ倍増』だそう
で、『もっともっと活用したいあなた』や『mRubyや.Net MFをポーティングなさるかた』には朗報とのこと。

GR-SAKURAⅡ-FULL商品説明 - 若松通商
http://wakamatsu.mobi/eccube/html/products/detail.php?product_id=12010658

GR-SAKURAⅡ商品説明(ピンヘッダー/コネクタ/ジャック/ソケットの実装有無が間違っている?) - 若松通商
http://wakamatsu.mobi/eccube/html/products/detail.php?product_id=12010659

GR-SAKURAはRSオンラインからの購入になりますが、税別のGR-SAKURAⅡはそれとほぼ同価格のようです。

RSオンライン Weekly Top 100 Bestsellers (毎週火曜日更新) (先週は38位と84位だったようです)
http://jp.rs-online.com/web/generalDisplay.html?id=promotions/topsellers

他方、これくらい内蔵RAMがあるなら、プログラムを内蔵RAMにダウンロードしてのGDBSTUB+ソフトウェア
ブレークによるデバッグにも余裕が出来そうです。

GDB stub for bare-metal Renesas RX target - GitHub
https://github.com/msalov/rx-gdb-stub/

追記 : 雑感

GitHub上のmbed 2.0ライブラリソースをtools側フォルダ下にダウンロードする良い手はあるかな? (ひとまず
どうやってビルドするかということは脇へ置いておくとして。)

もしビルドする手もあったら、以前のエントリで気付いたEclipse Marsの(プレビュー版)Arduino C++ IDEから
mbed 2.0ライブラリソースを使うことが出来るようになるということでもあるのかな?

追記 : メモ

mbed 2.0ライブラリのソースコードは以下にあります。

mbed SDK : mbed libraries and tools (Classic) - GitHub

master
https://github.com/mbedmicro/mbed/
https://github.com/mbedmicro/mbed/archive/master.zip

releases
https://github.com/mbedmicro/mbed/releases/

mbed lib revision 119
https://github.com/mbedmicro/mbed/tree/mbed_lib_rev119/
https://github.com/mbedmicro/mbed/archive/mbed_lib_rev119.zip

mbed lib revision 118
https://github.com/mbedmicro/mbed/tree/mbed_lib_rev118/
https://github.com/mbedmicro/mbed/archive/mbed_lib_rev118.zip



ちなみに、Arduino IDEは以下のURLからARM-NONE-EABI GCCをダウンロードするようになっていました。

ARM-NONE-EABI GCC archive files for Arduino IDE in package_index.json

      "tools": [
        {
          "name": "arm-none-eabi-gcc",
          "version": "4.8.3-2014q1",
          "systems": [
            {
              "host": "arm-linux-gnueabihf",
              "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
              "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
              "checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845",
              "size": "44423906"
            },
            {
              "host": "i686-mingw32",
              "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
              "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
              "checksum": "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2",
              "size": "84537449"
            },
            {
              "host": "x86_64-apple-darwin",
              "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz",
              "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz",
              "checksum": "SHA-256:3598acf21600f17a8e4a4e8e193dc422b894dc09384759b270b2ece5facb59c2",
              "size": "52518522"
            },
            {
              "host": "x86_64-pc-linux-gnu",
              "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz",
              "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz",
              "checksum": "SHA-256:d23f6626148396d6ec42a5b4d928955a703e0757829195fa71a939e5b86eecf6",
              "size": "51395093"
            },
            {
              "host": "i686-pc-linux-gnu",
              "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz",
              "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz",
              "checksum": "SHA-256:ba1994235f69c526c564f65343f22ddbc9822b2ea8c5ee07dd79d89f6ace2498",
              "size": "51029223"
            }
          ]
        },

追記 : メモ

ビルドする手段の可能性として、とりあえず、以下のようなものが思い付きはするのですけれど、、、
(コマンドライン上でビルドする手段はもちろんのこととして。)

* cores\コアID\下へOSのシンボリックリンクやEclipseの'リンクされたフォルダ'でリンクフォルダを作る
* makefileを使ってArduino IDEやEclipseのビルド前コマンド実行機能でmakeする

ですが、後になってよくよく考えてみると、ライブラリをビルドするのに使われたソースコードが全てバイナリ
形式のライブラリの再配布を認めていた場合には、それを再配布すれば良いので話は簡単になりそうです。ただ、
そうなっていないソースコード(例えばPEACH基板のUSB周りとか)もあり、その場合には、簡単になりません。

ちなみに、PEACH基板のUSB周りのソースのライセンスの文面はPFDLライブラリのソースのものと同じでした。

追記 : メモ

PEACH基板のUSB周りのソースのライセンスの文面には以下のURLへのリンクが記載されているのですが、更に
後になってよくよくリンク先の文面を読むと、『Open Source Codeと一緒に、あるいはOpen Source Codeに
組み込まれて、提供されている場合は、そのOpen Source Codeのライセンス条項が優先される』ということが
書かれているように読めました。

ソースに記載されたURL
http://www.renesas.com/disclaimer

アクセスすると以下のウェブページが表示されます
http://www.renesas.com/disclaimers/disclaimer20.htm

該当箇所: 2-(4)の次のセンテンスから

ひょっとすると、Linuxカーネルソースとして提供されていればGPL Ver2、mbed SDKソースとして提供されて
いればApache 2.0、Arduino core/librariesソースとして提供されていればLGPL、に従うということなのかも
知れません。(ちなみに、それらを提供することが出来るのは、Renesas、またはRenesasから許諾を得た団体、
だけだと思います。)

例えば、mbed SDKの場合、以下のウェブページにApache 2.0であることが記載されていました。

https://github.com/mbedmicro/mbed/blob/master/README.md

『The mbed Software Development Kit (SDK) is a C/C++
microcontroller software platform relied upon
by tens of thousands of developers to build projects fast.

The SDK is licensed under the permissive Apache 2.0 licence,
so you can use it in both commercial and personal projects
with confidence.』

また、Arduino core/librariesの場合、以下のウェブページにLGPLであることが記載されていました。(なお、
GitHub上の今のフォルダ構成では'core'サブフォルダは'arduino-core'サブフォルダになるかと思います。)

https://github.com/arduino/Arduino/blob/master/license.txt

『this file includes licensing information for parts of arduino.

first, the gnu general public license, which covers the main body
of the processing/arduino code (in general, all the stuff inside the 'app'
and 'core' subfolders).

next, the gnu lesser general public license that covers the arduino core
and libraries
.』

追記 : メモ

なお、disclaimer20.htmの文面と同じ文面(ただし会社の住所と効力が発生する操作が異なります)は、以下の
ウェブページにも記載されていました。

About LICENSE - ARM mbed >> Renesas >> Wiki
https://developer.mbed.org/teams/Renesas/wiki/About-LICENSE

効力が発生する操作ですが、一方は同意ボタン、もう一方はダウンロードまたはインポート、という違いでした。

http://www.renesas.com/disclaimers/disclaimer20.htm の記載

『is effective from the date on which you click "I AGREE."』
『BY CLICKING ON THE "AGREE" BUTTON BELOW, YOU ACKNOWLEDGE THAT』

https://developer.mbed.org/teams/Renesas/wiki/About-LICENSE の記載

『is effective from the date on which you download or import.』
(もう一方は対応するパラグラフ自体がありませんでした。)

追記 : 雑感

よくよく考えてみると、disclaimer20.htmの方は、この文言のある画面、あるいはこのURLリンクのある画面に
対してAgreeボタン(同意ボタン)を押したことが無い場合、効力が発生しないのかな? でも、GPLやLGPLなどは、
ライセンスの詳細を知っていなくても、また同意に相当する行為を行っていなくても、効力が発生していますし。

関連記事

2016/04/22   blog-entry-758   category: Arduino Lib & CrossGCC

go page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。