免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2343 | 回复: 3
打印 上一主题 下一主题

[其它] mini2440裸奔led失败 求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-15 23:50 |只看该作者 |倒序浏览
用mini2440主板,mini2440提供的 arm-linux-gcc 编译代码 采用mini2440的superboot
裸机程序 download addr 0x30000000
编译通过 下载没有反应 led没有点亮
原来的makefile的连接地址是:-Ttext 0x00000000
我改为 -Ttext 0x30000000

代码如下:
@******************************************************************************
@ File:led_on.S
@ 功能:LED点灯程序,点亮LED1
@******************************************************************************      
            
.text
.global _start
_start:     
            LDR     R0,=0x56000010      @ R0设为GPBCON寄存器。此寄存器
                                        @ 用于选择端口B各引脚的功能:
                                        @ 是输出、是输入、还是其他
            MOV     R1,#0x00000400        
            STR     R1,[R0]             @ 设置GPB5为输出口, 位[10:9]=0b01
            LDR     R0,=0x56000014      @ R0设为GPBDAT寄存器。此寄存器
                                        @ 用于读/写端口B各引脚的数据
            MOV     R1,#0x00000000      @ 此值改为0x00000020,
                                        @ 可让LED1熄灭
            STR     R1,[R0]             @ GPB5输出0,LED1点亮
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 0x30000000 -g led_on.o -o led_on_elf
        arm-linux-objcopy -O binary -S led_on_elf led_on.bin
clean:
        rm -f   led_on.bin led_on_elf *.o

论坛徽章:
0
2 [报告]
发表于 2014-11-16 18:08 |只看该作者
应该是 友善的 superboot 里面开了中断 看门狗 之类的,跳转过去没有关断,
我写入关断代码 放到我的程序的开头 成功点亮 led 了  
有点以前读大学的感觉了 ^_^
@******************************************************************************
@ File:led_on.S
@ 功能:LED点灯程序,点亮LED1
@******************************************************************************                  
.text
.global _start
_start:     
      
            @禁止看门狗定时器     
            LDR R0, =0x53000000  
            LDR R1, =0x0  
            STR R1, [R0]  
         
            @禁止中断  
            LDR R0, =0x4A000008  
            LDR R1, =0xFFFFFFFF  
            STR R1, [R0]  
         
            @禁止SUB中断  
            LDR R0, =0x4A00001C  
            LDR R1, =0x7FFF  
            STR R1, [R0]  
              

            LDR     R0,=0x56000010      @ R0设为GPBCON寄存器。此寄存器
                                        @ 用于选择端口B各引脚的功能:
                                        @ 是输出、是输入、还是其他
            MOV     R1,#0x00000400        
            STR     R1,[R0]             @ 设置GPB5为输出口, 位[10:9]=0b01
            
            LDR     R0,=0x56000014      @ R0设为GPBDAT寄存器。此寄存器
                                        @ 用于读/写端口B各引脚的数据
            MOV     R1,#0x00000000      @ 此值改为0x00000020,
                                        @ 可让LED1熄灭
            STR     R1,[R0]             @ GPB5输出0,LED1点亮
MAIN_LOOP:
            B       MAIN_LOOP

论坛徽章:
0
3 [报告]
发表于 2014-11-22 20:06 |只看该作者
我记得只需要关闭看门狗就可以了

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-09-15 06:20:00
4 [报告]
发表于 2014-12-05 22:16 |只看该作者
领教了,前一月我也在研究友善之臂的家具。有个什么命令,可以把跑马灯关掉了。然后在跑程序。可以一试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP