完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
源文件如附件,程序的目的为使用全局变量来获取按键的值,然后做软件防抖,通过全局变量来改变LED灯的状态。
现在的问题是,如果只是使用局部变量的话,可以达到效果。但是使用全局变量,则灯的状态完全不能改变。 请高手帮忙看一下,是什么原因?谢谢 |
|
相关推荐
1个回答
|
|
这个问题的解决需要看反汇编:
Disassembly of section .data: 00008324 <__data_start>: 8324: 00000001 andeq r0, r0, r1 如上图,8324的地址对应的就是全局变量dgtInBuf的地址,这显示已经超出了片内4K内存的地址。 即这个全局变量无法正确读写。 你需要添加一个key.lds文件,内容如下: SECTIONS { . = 0x00; .text : { *(.text) } .rodata ALIGN(4) : {*(.rodata)} .data ALIGN(4) : { *(.data) } .bss ALIGN(4) : { *(.bss) *(COMMON) } } 然后Makefile改为: key.bin : crt0.S key.c arm-linux-gcc -g -c -o crt0.o crt0.S arm-linux-gcc -g -c -o key.o key.c arm-linux-ld -T key.lds crt0.o key.o -o key_elf arm-linux-objcopy -O binary -S key_elf key.bin arm-linux-objdump -D -m arm key_elf > key.dis clean: rm -f key.dis key.bin key_elf *.o |
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2187 浏览 6 评论
1987 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4545 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 04:44 , Processed in 0.603306 second(s), Total 76, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号