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関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
もしかして配列サイズの上限が有ります?。
chime03.c:8:21: error: size of variable 'mp3_file' is too large
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] = {}; ^
ありがとうございます。
PROGMEMに相当するものって無いんですかね?
私も同じようなことして嵌っています。
ちょっと試してみたところ、188kB の連続するデータをリンクしてプログラム中から参照することができました。リンクするライブラリにもよりますが 200kB くらいまでのデータなら可能な感じです。以下に試した方法を書きます。
/*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() { }
#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_*/
#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); }