Renesas Community
Renesas Community
  • User
    Join or sign in
  • Site
  • Search Community
  • User
  • Renesas Engineering Community
  • FAQ
  • HELP
  • More
  • Cancel
がじぇっとるねさすコミュニティ
がじぇっとるねさすコミュニティ
GR-KURUMI フォーラム gr-kurumiのwebコンパイラの配列サイズ制限
  • Forums
  • Files
  • がじぇっとるねさす ゆーざー会 - Wiki
  • Tags
  • More
  • Cancel
  • New

 

 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関連

 女子美コラボ

 その他

 ※プロデューサミーティング中

 作り方使い方資料

 イベント関連

 作品記事

 体験記事

 その他

 

 ライブラリ

 ツール

 その他・過去ファイル

  • Replies 4 replies
  • Subscribers 281 subscribers
  • Views 5019 views
  • Users 0 members are here
Options
  • Share
  • More
  • Cancel
Related Tags
  • Arduino Pro-mini
  • E1
  • GPS
  • GR-ADZUKI
  • GR-COTTON
  • GR-KURUMI
  • GR-KURUMI 書き込み
  • gr-sakura
  • Guthub
  • I2c
  • JPEG
  • Kirin
  • PMT
  • RL78 レジスタバンク
  • rx
  • S/Wシリアル
  • sd card
  • Serial2
  • WDT
  • webコンパイラ
  • xbee
  • コンパイル
  • シリコンマイク
  • 誤差補正
  • 音源
Related

gr-kurumiのwebコンパイラの配列サイズ制限

@chobichan
@chobichan over 9 years ago

もしかして配列サイズの上限が有ります?。

chime03.c:8:21: error: size of variable 'mp3_file' is too large

  • Reply
  • Cancel
  • Cancel
Parents
  • fujita nozomu
    fujita nozomu over 9 years ago

    32KB以上はダメな感じですね。


    /*GR-KURUMI Sketch Template Version: V1.04*/
    #include <RLduino78.h>
    
    const uint8_t array1x32767[32767] = {};
    const uint8_t array1x32768[32768] = {};
    const uint16_t array2x16383[16383] = {};
    const uint16_t array2x16384[16384] = {};
    const uint32_t array4x8191[8191] = {};
    const uint32_t array4x8192[8192] = {};
    
    void setup()
    {
    }
    
    void loop()
    {
    }
    

    gr_sketch.cpp:5:33: warning: integer overflow in expression [-Woverflow]
     const uint8_t array1x32768[32768] = {};
                                     ^
    gr_sketch.cpp:5:33: error: overflow in array dimension
    gr_sketch.cpp:5:33: error: size of array 'array1x32768' is too large
    gr_sketch.cpp:7:34: error: size of array 'array2x16384' is too large
     const uint16_t array2x16384[16384] = {};
                                      ^
    gr_sketch.cpp:9:32: error: size of array 'array4x8192' is too large
     const uint32_t array4x8192[8192] = {};
                                    ^
    
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • @chobichan
    @chobichan over 9 years ago in reply to fujita nozomu

    ありがとうございます。

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Eguchi Kazuyuki
    Eguchi Kazuyuki over 8 years ago in reply to @chobichan

    PROGMEMに相当するものって無いんですかね?

    私も同じようなことして嵌っています。

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • fujita nozomu
    fujita nozomu over 8 years ago in reply to Eguchi Kazuyuki

    ちょっと試してみたところ、188kB の連続するデータをリンクしてプログラム中から参照することができました。リンクするライブラリにもよりますが 200kB くらいまでのデータなら可能な感じです。以下に試した方法を書きます。

    • Webコンパイラにて、GR-KURUMI_Sketch_V1.04.zip をテンプレートとして新規プロジェクトを作成する。
    • gr_sketch.cpp を開き、以下の内容をコピペする
      /*GR-KURUMI Sketch Template Version: V1.04*/
      #include <RLduino78.h>
      #include "data.h"
      
      HardwareSerial& serial = Serial;
      
      void setup()
      {
          serial.begin(9600);
          char c;
          unsigned long i = 0; 
          while ((c = readText(i++)) != '\0') {
              serial.print(c);
          }
      }
      
      void loop()
      {
      }
      
    • プロジェクトの下に data.h を新規ファイルで作成して開き、以下の内容をコピペする
      #ifndef _DATA_H_
      #define _DATA_H_
      
      #include <RLduino78.h>
      
      #ifdef __cplusplus
      extern "C" {
      #endif
      
      uint8_t readText(unsigned long index);
      
      #ifdef __cplusplus
      }
      #endif
      
      #endif/*_DATA_H_*/
      
    • プロジェクトの下に data.c を新規ファイルで作成して開き、以下の内容をコピペする
      #include "data.h"
      #include <RLduino78.h>
      
      #define IncBin(label, file) \
      extern const uint8_t __far label[]; \
      __asm ( \
          "\t.section .text." #label "\n" \
          "\t.global\t_" #label "\n" \
          "_" #label ":\n" \
          "\t.incbin\t" #file "\n" \
          "\t.byte\t0\n" \
      );
      
      IncBin(gakumonno_susume, "gakumonno_susume.txt");
      
      uint8_t readText(unsigned long index)
      {
          return *(const __far uint8_t*)((unsigned long)gakumonno_susume + index);
      }
      
    • 青空文庫 より 『学問のすすめ』:新字新仮名 の「テキストファイル(ルビあり)」のアーカイブ(47061_ruby_28378.zip)をダウンロードし適当なフォルダに展開した後、中のファイル(gakumonno_susume.txt)をプロジェクトに「アップロード」で追加する(コピペ不可)
    • 「ビルド実行」をクリックし、ビルドを行う
    • ビルドが成功すると(1回目はなんでか失敗するかも)、約 237kB の kurumi_sketch.bin が生成される。ローカルへダウンロードの後、好みの方法で GR-KURUMI に書き込む
    • GR-KURUMI の Serial に 9600bps、シフトJIS でテキストが出力されるので、Tera Term かなんかを接続して出力を確認する

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
Reply
  • fujita nozomu
    fujita nozomu over 8 years ago in reply to Eguchi Kazuyuki

    ちょっと試してみたところ、188kB の連続するデータをリンクしてプログラム中から参照することができました。リンクするライブラリにもよりますが 200kB くらいまでのデータなら可能な感じです。以下に試した方法を書きます。

    • Webコンパイラにて、GR-KURUMI_Sketch_V1.04.zip をテンプレートとして新規プロジェクトを作成する。
    • gr_sketch.cpp を開き、以下の内容をコピペする
      /*GR-KURUMI Sketch Template Version: V1.04*/
      #include <RLduino78.h>
      #include "data.h"
      
      HardwareSerial& serial = Serial;
      
      void setup()
      {
          serial.begin(9600);
          char c;
          unsigned long i = 0; 
          while ((c = readText(i++)) != '\0') {
              serial.print(c);
          }
      }
      
      void loop()
      {
      }
      
    • プロジェクトの下に data.h を新規ファイルで作成して開き、以下の内容をコピペする
      #ifndef _DATA_H_
      #define _DATA_H_
      
      #include <RLduino78.h>
      
      #ifdef __cplusplus
      extern "C" {
      #endif
      
      uint8_t readText(unsigned long index);
      
      #ifdef __cplusplus
      }
      #endif
      
      #endif/*_DATA_H_*/
      
    • プロジェクトの下に data.c を新規ファイルで作成して開き、以下の内容をコピペする
      #include "data.h"
      #include <RLduino78.h>
      
      #define IncBin(label, file) \
      extern const uint8_t __far label[]; \
      __asm ( \
          "\t.section .text." #label "\n" \
          "\t.global\t_" #label "\n" \
          "_" #label ":\n" \
          "\t.incbin\t" #file "\n" \
          "\t.byte\t0\n" \
      );
      
      IncBin(gakumonno_susume, "gakumonno_susume.txt");
      
      uint8_t readText(unsigned long index)
      {
          return *(const __far uint8_t*)((unsigned long)gakumonno_susume + index);
      }
      
    • 青空文庫 より 『学問のすすめ』:新字新仮名 の「テキストファイル(ルビあり)」のアーカイブ(47061_ruby_28378.zip)をダウンロードし適当なフォルダに展開した後、中のファイル(gakumonno_susume.txt)をプロジェクトに「アップロード」で追加する(コピペ不可)
    • 「ビルド実行」をクリックし、ビルドを行う
    • ビルドが成功すると(1回目はなんでか失敗するかも)、約 237kB の kurumi_sketch.bin が生成される。ローカルへダウンロードの後、好みの方法で GR-KURUMI に書き込む
    • GR-KURUMI の Serial に 9600bps、シフトJIS でテキストが出力されるので、Tera Term かなんかを接続して出力を確認する

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
Children
No Data
サイト使用条件
プライバシーポリシー
お問い合わせ
© 2010-2022 Renesas Electronics Corporation. All rights reserved.