![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
トランジスタ技術 2005年4月号の付録基板R8C/Tiny[Renesas]
を使ってマイコンのお勉強をしてます。
4月号のアセンブラでのCPU制御はできたのですが
5月号からC言語でソースを書くことになっており
第1章の単にLEDを点灯させるプログラムでエラーが
出てしまい困っております。
コンパイルまではできるのですが、いざ実行しようとすると
M16C R8C FoUSB/UART ウィンドウが出てきて
『指定したアドレス値が範囲外です。(6601)』
と怒られます。
指定した領域がメモリの範囲外であることは分かるのですが
いつ・どこでアドレスを指定しているのでしょうか?
具体的な対処方法、またはエラーの追いかけ方が知りたいです。
どうかよろしく御願いいたします。
//Cソース
#include "sfr_r815.h"
void set_IO(void);
void main (void)
{
set_IO();
while(1) {
if (p1_7 == 0) p1_1 = 0;//SW1がONならLED1点灯
else p1_1 = 1;
if (p1_1 == 0) p1_2 = 0;//SW2がONならLED2点灯
else p1_2 = 1;
}
}
void set_IO()
{
drr1 = 1;
drr2 = 1;
pd1_1 = 1;
pd1_2 = 1;
p1_1 = 1;
p1_2 = 1;
}
No.2ベストアンサー
- 回答日時:
同じ開発環境を持っていないので断定的なことはいえないのですが
リンカーでのセクションの指定がまずいのでしょう。
御回答ありがとうございます。
おかげさまで動くようになりました。
ご指摘頂いたとおり、リンカが上手くできていなかったようです。
よく見ると、参考書のWorkSpaceと私のとが違っていました。
ちなみに開発環境はHEW4でした。ありがとうございました。
No.1
- 回答日時:
>指定した領域がメモリの範囲外であることは分かるのですが
>いつ・どこでアドレスを指定しているのでしょうか?
怪しいのは、"p1_1"とか"p1_2"ではないでしょうか。
コメントを見る限り、LEDの物理アドレスを格納している変数に見えますので、p1_1はポインタ変数ではないですか?
であるならば、LED点灯をしたい場合は"*p1_1=1"としなければならないはずです。
>具体的な対処方法、またはエラーの追いかけ方が知りたいです。
>どうかよろしく御願いいたします。
シングルステップまたはブレイクポイントを設定してどのラインでエラーが発生しているか見ればいいのでは?
御回答ありがとうございました。
動くようになりました。
ご指摘頂いたp1_1変数はヘッダファイル中で以下のように定義されていました。
よく理解できませんでしたが、勉強しなおしてみます。
ありがとうございました。
<<sfr_r815.h>>
#pragma ADDRESS p1_addr 00E1H /* Port P1 register */
union byte_def p1_addr;
#define p1 p1_addr.byte
#define p1_0 p1_addr.bit.b0 /* Port P10 bit */
#define p1_1 p1_addr.bit.b1 /* Port P11 bit */
#define p1_2 p1_addr.bit.b2 /* Port P12 bit */
#define p1_3 p1_addr.bit.b3 /* Port P13 bit */
#define p1_4 p1_addr.bit.b4 /* Port P14 bit */
#define p1_5 p1_addr.bit.b5 /* Port P15 bit */
#define p1_6 p1_addr.bit.b6 /* Port P16 bit */
#define p1_7 p1_addr.bit.b7 /* Port P17 bit */
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Microsoft ASP LEDで電光掲示板に「A B C D E」と表示したいのですが・・・ 1 2023/07/04 07:37
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- C言語・C++・C# プログラムの時、フローチャートはどうなりますか?図でお願いします。 int main(void) { 1 2022/10/01 22:45
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
- C言語・C++・C# プログラミングのペーパーテスト 実行結果がどのように表示されるか答えよ #include <stdi 1 2022/07/09 14:27
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
ビルド失敗 指定されたファイ...
-
HEWを使用しているのですが、こ...
-
Excelのエラーで困ってます。
-
FORTRAN Legacy Extension
-
フォームの作成中にエラーが発...
-
visual C++ でビルドの中止がで...
-
RightとLeft関数のライブ...
-
コンパイルできません。
-
Visual Studioのstrcpy_sについて
-
Debug Assertion Failed
-
Fortran コンパイルエラーについて
-
バッチからsqlplusの接続エラー...
-
type
-
subまたはfunctionが定義されて...
-
ユーザフォーム開くとエラーになる
-
visualstudioでコンパイルでき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
Excelのエラーで困ってます。
-
Handlesについて
-
HEWを使用しているのですが、こ...
-
バッチからsqlplusの接続エラー...
-
デバッグ中のエラーのことで教...
-
VB2008で定数に色の設定をした...
-
コンパイルできません。
-
sys/time.hのインクルードがで...
-
multiple definitionというエラー
-
HANDLEの宣言でのエラー
-
BC30002: 型 'ListItem' が定義...
-
visual C++ でビルドの中止がで...
-
RightとLeft関数のライブ...
-
ビルド失敗 指定されたファイ...
-
Visual Studioのstrcpy_sについて
-
エクセルでマクロを実行すると...
おすすめ情報