魏東山研究ノート04--組込みLinux開発ボードLEDを点灯します

開発ボードの回路図LEDの位置合わせを検索

         

 

 

 

 LED8インジケータは、ケーブルインターフェイスです。

 

ここでは、手動のチップを読んで、EINT4 / GPF4に接続されているLED1あるアセンブリコードD10を、制御しよう

 

 

 

 出力ピンをLowのS3C2440を制御するLED1、GPF4が必要点灯所望であれば回路図を見ることができます。

GPFCON = 0x56000050

GPFDAT = 0x56000054

GPFUP = 0x56000058

=========================

出力モードを設定するための直接的組0x56000050 = 0x100のピンGPF4

セット0x56000054 0x00のGPF4出力レベル設定が0であります

0x56000058の0x10が引か内部GPF4を有効にしない設定

ですから、ライトが点灯して変更するように制御することができ、コンパイルは書き方をすべきですか?

まず、あなたがコードをコンパイルできるようにするには、クロスツールチェーンを設定する必要があり、リンクを参照してください。https://jingyan.baidu.com/article/647f01151899607f2148a8f2.htm

 

 

 

 効果を与えるために、ソースは/ etc / profile

 

 

 彼は、それが発効していると述べました。

画像に示すように、あなたはまだ、コマンドプロンプト見つけることができない場合

  

 

 ファイル名を指定して実行アームのlinux-gccの-v、彼らもプロンプトはbash:/usr/local/arm/2.3.6/bin/arm-linux-gcc:そのようなファイルやディレクトリはありません

32ビットライブラリがインストールされていないので、それは、この時点で注意しなければならない、実行はsudo apt-getをインストールlib32ncurses5 lib32z1

 あなたは、バージョン番号、説明、環境OKを表示することができた場合、コマンドを実行した後、再びチェックしてください。

コード:

 。テキスト
.GLOBAL _start
_開始:     
            LDR R0、= 0x56000050 @これは、メモリ操作命令で、最初のアドレスレジスタはR0にロードされます
                                        @ 
                                        @ 
            MOV     R1,#0x00000100      @ 将0x00赋值给R1
            STR     R1,[R0]             @ 内存的反向操作, 将R1的值存到R0地址处. 括号代表类似于取指针
            
            LDR     R0,=0x56000054      @ 同样操作
                                        @ 
            MOV     R1,#0x00000000      @ 
                                        @ 
            STR     R1,[R0]             @ 
MAIN_LOOP:                              @ 死循环
            B       MAIN_LOOP

Makefile

led_on.bin : led_on.S  # 编译的顺序  -- 预处理, 编译, 汇编, 链接
	arm-linux-gcc -g -c -o led_on.o led_on.S # 汇编
	arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf #链接并指定运行地址
	arm-linux-objcopy -O binary -S led_on_elf led_on.bin #将ELF格式的可执行文件转换成二进制文件
clean:
	rm -f   led_on.bin led_on_elf *.o

 

 

 

おすすめ

転載: www.cnblogs.com/cheyihaosky/p/11863764.html