博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ARM裸机开发(一)LED控制
阅读量:6931 次
发布时间:2019-06-27

本文共 1151 字,大约阅读时间需要 3 分钟。

        以下裸机程序基于GT2440,编译器为arm-linux-gcc-4.4.3。

      程序的功能为:开机上电首先跳转到复位异常处理,在复位异常处理里关闭看门狗,然后执行LED控制程序,程序运行结果为板上4个LED全亮。

led.S文件:

1 @寄存器物理地址宏定义 2 #define WTCON  0x53000000  3 #define GPBCON 0x56000010  4 #define GPBDAT 0x56000014 5 #define GPBUP  0x56000018 6 #define nGPB_OUTPUT ((1<<10)|(1<<12)|(1<<14)|(1<<16)) 7  8 .section .text 9 .global _start10 _start:11     b    reset          @跳到复位异常处理程序12 13 reset:14     bl disable_watchdog @跳到关闭看门狗子程序15     bl control_led      @跳到控制LED子程序16 loop:17     b loop              @死循环18 19 disable_watchdog:20     ldr r0,=WTCON      @加载看门狗寄存器地址21     bic r1,r0,#0x2022     str r1,[r0]        @写入看门狗寄存器23     mov pc,lr          @返回24 25 control_led:26     ldr r0,=GPBCON     @加载IO寄存器地址27     orr r1,r0,#nGPB_OUTPUT28     str r1,[r0]29     ldr r0,=0x0        @输出低电平(LED亮)30     ldr r1,=GPBDAT31     str r0,[r1]32     mov pc,lr          @返回

makefile文件:

1 led.bin:2     arm-linux-gcc -g -c -o led.o led.S3     arm-linux-ld -Ttext 0x00000000 -g led.o -o led_elf4     arm-linux-objcopy -O binary -S led_elf led.bin5     rm -f led_elf led.o6 7 clean:8     rm -f led.bin

在终端下执行make编译生成led.bin二进制文件,通过BIOS烧写到nand flash,从nand flash启动。

 

转载地址:http://wdmjl.baihongyu.com/

你可能感兴趣的文章
Elasticsearch的安装和使用
查看>>
Ajax简介
查看>>
java网络编程笔记
查看>>
结对作业:迷宫小游戏
查看>>
ethereumjs/ethereumjs-icap
查看>>
升级到Windows10
查看>>
转换数据库连接池为hikaricp
查看>>
第二次作业+105032014065
查看>>
KMP算法(C++版)
查看>>
九章算术卷第七 盈不足
查看>>
CCF201403-2 窗口(100分)
查看>>
关于物资管理系统
查看>>
面试题
查看>>
Html5_新标签兼容性问题
查看>>
JavaScript原型,原型链 ? 有什么特点? JavaScript如何实现继承?
查看>>
cookie注入&中转注入笔记
查看>>
java内存
查看>>
实习日记7.28
查看>>
JavaScript测试工具比较: QUnit, Jasmine, and Mocha
查看>>
调试4
查看>>