配列とポインタの使い方
ROM領域にあるたくさんのデータの一部をRAMにコピーしたいのですが、うまくいきません。
どこがおかしいのか教えていただけないでしょうか?
(例:int型の10個のデータとchar型の5個のデータをRAMへコピーする)
// ROM領域に置いたテーブル
const int int_table1[10]={1,2,3,4,5,6,7,8,9,0};
const char chr_table1[5]={1,2,3,4,5};
const int int_table2[10]={11,22,33,44,55,66,77,88,99,100};
const char chr_table2[5]={11,22,33,44,55};
// RAM領域
int int_data[10];
char chr_data[5];
// プロトタイプ宣言
void copy_data(int *int_p,char *chr_p);
//メイン処理
|
copy_data(int_table1,chr_table1); // テーブル1をRAMへコピー
|
|
copy_data(int_table2,chr_table2); // テーブル2をRAMへコピー
|
// ROMデータをRAMに転送する関数
void copy_data(*int_p,*chr_p)
{
char i;
for (i=0;i<10;i++) {
int_data[i]=int_p;
int_p++;
}
for (i=0;i<5;i++) {
chr_data[i]=chr_p;
chr_p++;
}
}
コンパイルすると
[Warning(ccom)] assignment from const pointer to non-const pointer
===> copy_data(int_table1,chr_table1); // テーブル1をRAMへコピー
[Error(ccom)] mismatch prototyped parameter type
===> copy_data(int_table1,chr_table1); // テーブル1をRAMへコピー
のワーニング&エラーになります。
どのようにしたらワーニング、エラーを直せますか?
または「こうすればできる」という回答でもOKです。
よろしくお願いします。