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関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
PCはmac、ボードはGR-COTTONです/Applications/IDE4GR.app/Contents/Java/hardware/arduino/rl78g13
のWString.cppに記載してあるchar toupper(char c)関数がバグっているかもしれません
(String::toUpperCaseから呼ばれている)
toUpperCaseの結果がおかしいので
{'a', 'b', 'c', 'd', 'e', 'f'}に対してWString.cppに記載してあるtoupperを呼び出してみたところ
¿ À Á Â Ã Ä
とそれぞれ変換されました。
下記がWString.cppに記載してあるコードになります(バグっているようには見えないのですが、、、、)
char toupper(char c) { if (c >= 'a' && c <= 'z') { return (c - 'a' - 'A'); } else { return c; }}
ちなみに、(恐らく)ctype.hのtoupperであれば正常な結果になります
下記がWString.cppに記載してあるコードになります(バグっているようには見えないのですが、、、、) char toupper(char c) { if (c >= 'a' && c <= 'z') { return (c - 'a' - 'A'); } else { return c; } }
char toupper(char c) { if (c >= 'a' && c <= 'z') { return (c - 'a' - 'A'); } else { return c; } }
下記でないとおかしい感じですね。
char toupper(char c) { if (c >= 'a' && c <= 'z') { return (c - 'a' + 'A'); } else { return c; } }
こんにちは。NoMaYです。突然失礼します。ところで、GR-KURUMI/GR-COTTONのEEPROMライブラリはルネサス製のソース非公開のバイナリ形式ライブラリを使用しているので、うかつにArduinoからLGPLの最新のEEPROMライブラリのコードを持ってくるとGPL違反になっちゃいますよね?(現状は、いわゆるクリーンルーム方式みたいなやり方で、インターフェイスだけ合わせて中身はフルスクラッチしたルネサスオリジナルコードだと思いますので、GPL違反にならないのだろうと思っていますが、、、)
> ところで、GR-KURUMI/GR-COTTONのEEPROMライブラリはルネサス製のソース非公開のバイナリ形式ライブラリを使用しているので、うかつにArduinoからLGPLの最新のEEPROMライブラリのコードを持ってくるとGPL違反になっちゃいますよね?
GPL 違反になるのは GPL/LGPL のライブラリとルネサス製 EEPROM ライブラリをリンクし作成したバイナリを公開/販売等をした場合では?
> うかつにArduinoからLGPLの最新のEEPROMライブラリのコードを持ってくると
こゝ↑は絶対的な条件ではないと思います。
そうでした、そうでした。定番中の定番のGPL違反の早トチリというか突っ込みどころでしたね。
こういうことですね。(元のスレッドの内容からの脱線が大きくなってしまって申し訳ありません。)現状:→GPLのコードをリンクしていなければEEPROMライブラリをリンクしたバイナリを配布してもGPL/LGPL違反にならないもしもArduinoから最新のEEPROMライブラリのコードを持ってきてEEPROMライブラリを新しくしてしまうと:→GPLのコードをリンクしていなくてもEEPROMライブラリをリンクしたバイナリを配布することはLGPL違反になる
以上の話と関係あるかは不明ですが、例えばルネサスさんが公開されている『データフラッシュライブラリ Type04』に添付されている ソフトウェアのご使用条件.pdf にある
4.禁止事項
(1)お客様は、本プログラムのうちオブジェクトコード形式で提供された部分につき、リバースアセンブル、リバースコンパイル、リバースエンジニアリング、改変等をすることはできません。
こういった使用条件とは GPL/LGPL は相容れない可能性はあります。