MESC TOOL NEWS:
MESCT-NC77WA-980916D
NC77WA V.5.00 Release 1
ご使用上のお願い
|
この度、77XXシリーズ用Cコンパイラ(アセンブラ・統合化開発環境付き)NC77WA V.5.00 Release 1をご使用される際の注意事項をご連絡致します。本件につきましては誠に申し訳ございませんが、 本資料に示します回避策で対応くださいますようお願い致します。
far型配列に対して正しくアクセスできない場合がある
- 概 要
データサイズが「32Kバイトより大きく、かつ64Kバイト以下」のfar型配列に対して正しくアクセスできない場合があります。
- 発生条件
以下の条件を同時に満たす場合のみ発生します。
- far型配列である。
- 配列の大きさが32Kバイトより大きく、かつ64Kバイト以下である。
- 配列の添字式の型がsigned char, unsigned char, signed int型のいずれかである。
- 配列の先頭から32Kバイトより大きく64Kバイト以内の要素にアクセスする。
- 発生現象
配列の先頭から32Kバイトより大きく64Kバイト以内の要素にアクセスしようとすると、他のアドレスにアクセスしてしまいます。
- 発生例
[Cソースファイル]
-----------------------------------------------------------------------
extern far int arr[20000];
void func(int i)
{
return arr[i];
}
main()
{
int i;
i = func(100); /* arr[100] < 32K の領域なので OK */
i = func(19999); /* 32K < arr[100] <= 64K の領域なので NG */
}
-----------------------------------------------------------------------
- 回避策
配列の添字式を(unsigned int)にキャストしてください。
例) return arr[(unsigned int)i];