博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
arm裸机驱动错误总结
阅读量:4449 次
发布时间:2019-06-07

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

 

错误001:

 

从上图画红线部分可知错误是:arm-linux-gcc -o &@ start.S -c 

         正确写法:arm-linux-gcc -o $@ start.S -c

在Makefile文件中:buzzer.bin: start.o main.o buzzer.o

buzzer.bin: start.o main.o buzzer.o
    arm-linux-ld -Ttext 0x20000000 -o buzzer.elf $^
    arm-linux-objcopy -O binary buzzer.elf buzzer.bin
    arm-linux-objdump -D buzzer.elf > buzzer_elf.dis
%.o : %.S
    #arm-linux-gcc -o &@ $< -c //错在这
    arm-linux-gcc -o $@ $< -c
%.o : %.c
    arm-linux-gcc -o $@ $< -c
clean:
    rm *.o *.elf *.bin *dis *.exe -f

 

错误002:

  led-buzzer-button裸机程序开发时:使汇编与C语言汇合编程时,程序能编译成功,当下载到mini210开发板上时,蜂鸣器不响,led也也不点亮;

  原因是:设置堆栈地址有问题,代码如下:

  .global _start

_start:
    //关闭看门狗
    
    ldr r0, =0xE2700000    //0xE270000
    mov r1, #0
    str r1, [r0]
    //设置栈,以便调用c函数
    ldr sp, =0xD0037D80  //=0x40000000  

              //栈地址0x40000000可能已经被占用,所以改成0xD0037D80

    //调用main
    bl main
halt:
    b halt

    

转载于:https://www.cnblogs.com/minglicnblogs/p/3653829.html

你可能感兴趣的文章
文件安全复制之 FastCopy
查看>>
强烈推荐美文之《从此刻起,我要》
查看>>
MYSQL中数据类型介绍
查看>>
评估软件上线标准
查看>>
敏捷开发流程
查看>>
APP兼容性测试(三)测试方案设计
查看>>
leetcode 412. Fizz Buzz
查看>>
对Netflix Ribbon的Loadbalancer类源码设计合理性的一点质疑
查看>>
关于日历的算法
查看>>
[QT编程]QT实现的一个渐隐渐显窗体
查看>>
在Web工程中引入Jquery插件报错解决方案
查看>>
大学总结之影响我最深的十本书
查看>>
用myEclipse连接数据源生成动态数据报表
查看>>
[myeclipse]@override报错问题
查看>>
자주 쓰이는 정규표현식
查看>>
超简单的listview单选模式SingleMode(自定义listview item)
查看>>
vue-11-路由嵌套-参数传递-路由高亮
查看>>
HDU 1199 - Color the Ball 离散化
查看>>
[SCOI2005]骑士精神
查看>>
Hibernate原理解析-Hibernate中实体的状态
查看>>