GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
がじぇるね岡宮です。
RL78/G13のボードとしてGR-KURUMI、GR-COTTON、GR-ADZUKIの3つがありますが、これらのライブラリをマージしようと思います。
★3/13を目途にご要望や修正点などを締め切り、その後検証して3月末にWebコンパイラに反映、順次IDE for GRへ適用したいと思います。
■概要
ライブラリについて、これまで多くのご意見やご提案があり、それぞれを独立してライブラリアップデートを図っていましたが、マージすることでメンテナンス性の向上と、見やすさ・分かりやすさを向上するために、ファイル構成変更をArduinoや既存のGR-SAKURAと同様にしたいと思います。
・マージについて
__RL78_G13__ をRL78/G13のGRボード共通マクロとして定義。コンパイルオプションで指定。ちなみにArduinoでは__AVR_ATmega1280__という感じ。
ボードごとにGRKURUMI, GRADZUKIなどコンパイルオプションを付加することで、切り分けを行う。(テスト版ではまだ付加しておらず、GR-ADZUKIで動作確認してます)
・ファイル構成変更
・GR-SAKURAと同様に以下の構成に変更
Arduino\cores\
\libraries (階層変更なし)
\rl78\ (portableフォルダを廃止してrl78直下に変更)
・主な変更
・RLduino78_mcu_depend.hや、RLduino78_basic.cpp、RLduino78_timer.cなど、独自にArduinoライブラリが形成されていたものを以下のファイルに移植。
ただし、関数の中身変更は改善事項を除いて基本的に実施しません。比較的RL78ライブラリは安定しているためです。(microsの検証ですごい苦労したのがトラウマです)
\Arduino.h (標準ライブラリに広くインクルードされるヘッダ)
\pins_arduino.h (ボードごとのピンに関するヘッダ)
\wiring_private.h (wiring**や、W**などのArduino基本ライブラリから参照されるヘッダ)
\wiring.c (millis()やdelay())
\wiring_digital.c (digital系)
\wiring_analog.c (analog系)
\wiring_pulse.c (pulse系)
\wiring_shift.c (shift系)
\WMath.cpp (算数)
\WInterrupts.c (外部割込み)
\Tone.cpp (Tone関係)
\utilities.cpp (GRで独自のもの。例えば省電力やattachIntervalTimerとか)
\rl78\specific_instructions.h (Fujitaさんが作ってくれた高速化やお役立ち)
■その他
・標準以外のArduinoのライブラリでよく使われるdigitalPinToPortなどを実装
・RTOS用の記述は削除(動作検証できておらず、あまり使用した事例もみないため。)
・attachMicroIntervalTimer、MsTimer2の時間ずれ不具合は反映しました(Fujitaさんありがとうございます!)
・makeでarによるアーカイブ化してから、リンクするとなぜか不要なものがリンクされてしまうため、適用保留としてます。
■テストファイル
・makefile
※make用ですが、ActivePerlを組み込んでC:\Program Files (x86)\KPITにGNURL78v14.03-ELFをコピーし、コマンドプロンプトでbuild実行してもOKです。ちなみに.batを実行してもOKで、これがWebコンパイラのビルド実体でもあります。
・e2studio用
インポートしてビルドできます。
■ご意見、要望などまとめ
-mcpu=g13 -mmul=noneを指定
以下で分ける
#if __RL78__ /* 全ボード全RL78共通 */ #if GRKURUMI /* GR-KURUMI 固有 */ #elif GRCOTTON /* GR-COTTON 固有 */ #elif GRADZUKI /* GR-ADZUKI 固有 */ #endif #if __RL78_G13__ /* RL78/G13 固有 */ #elif __RL78_G14__ /* RL78/G14 固有 */ #elif __RL78_G10__ /* RL78/G10 固有 */ #endif #endif
MsTimer2は標準ではないので、librariesフォルダに入れる
GR-SAKURAのピンマップの件 も放置だし期待薄ですね。
https://japan.renesasrulz.com/gr_user_forum_japanese/f/web_compiler/4722/thread
webコンパイラでファイルが消えたという人放ったらかしとかあり得んわ。
> このスレは見落としてました。
先月豊洲で直接この話してんのに今頃何言ってんだ。
> こちらとしても課題に対しては取り組んでいますが、人手の関係で全ての事柄に同時対処することは困難のため、都度影響度合いを見ながら対処していることご理解ください。
人手が足りないなら社内外でボランティアを募る等やり様だろう。
社外の人間からコード提供を受けながらしばらく経ってからの
https://japan.renesasrulz.com/gr_user_forum_japanese/f/gr-adzuki/4493/softwareserial/26854#26854
ダメでしたので、そのままアップさせていただいてます。
なんてふざけた回答はあり得んだろ。問題解決できなければスレッドを継続して問題解決への協力を求めるところだろうに。
コード提供者を蔑ろにしてる自覚があれば「ご理解ください」なんて言葉は出てくる筈はない。
> chobichanさんの方でも確認いただいたので、次版に適用しようと思いますが、問題あれば言ってください。
SoftwareSerial はどこだかのユーザのところでは動作してるので公開する、SD カードの件では問題の現象が確認できたのが手許の一枚だけなので公開するというのも同根と思いますが、ソフトウェアを不特定多数の方々を対象に公開するということに対して、特定個人のところで確認できたから次版に適用しようというのは安易すぎやしませんか。
今回 pinMode() に以下の変更を行っています。
以上の変更により pinMode() と digitalWrite() の挙動が ATmega の載った Arduino のそれに近くなったと思いますが、これが GR-KURUMI 等のそれとして適正な変更かは議論があると思います。従来の pinMode() を使用してポート・レジスタの値を直接セットした後に pinMode(pin, OUTPUT); 等として出力ピンから最初から HIGH 出力をさせていたスケッチがあれば期待した動作となりません。そうしたい場合には pinMode(pin, INPUT_PULLUP); pinMode(pin, OUTPUT); とするか digitalWrite(pin, HIGH); pinMode(pin, OUTPUT); とする等変更が必要となります。pinMode() は基本的な関数なので影響はそれなりにある可能性は考えられます。
ライブラリ等を含むソフトウェアの公開に当たっては
等の対策はよくあることと思いますが、がじぇるねは
ということが平気で行われているので混乱は避けられない気がします。
web コンパイラのファイルが消えましたという報告があれば
japan.renesasrulz.com/.../thread
結局ユーザからの連絡があったかなかったに関わらずなんらかのリアクションを返す、
拡張コネクタでのアナログ入力がうまくできずピンマップに間違いがあったとわかれば
https://japan.renesasrulz.com/gr_user_forum_japanese/f/gr-sakura/4706/analogread
ピンマップを修正するだけではなくて
http://gadget.renesas.com/ja/reference/sakura/index.html
修正したことを該当のフォーラムで報告するのは当たり前のことと思うんですけどね、そういうの含めて情報公開に消極的ですね。