完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
int main(void)
{ volatile unsigned int *pGPFCON = (volatile unsigned int *)0x56000050; volatile unsigned int *pGPFDAT = (volatile unsigned int *)0x56000054; int val = 0; /* val:0b000 ,0b111 */ int tmp; /* 设置GPFCON让GPF4/5/6配置为输出引脚 */ *pGPFCON &= ~((3<<8) | (3<<10) |(3<<12)); *pGPFCON |= ((1<<8) | (1<<10) | (1<<12)); /* 循环点亮 */ while(1) { tmp = ~val; tmp &= 7; *pGPFDAT &= ~(7<<4); *pGPFDAT |= (tmp<<4); delay(100000); val++; if(val == 8 ) val = 0; } return 0; } .text.global _start _start: /* 关闭看门狗 */ ldr r0, = 0x53000000 ldr r1, = 0 str r1, [r0] /* 设置内存:sp栈 */ /* 分辨是nor/nand启动 * 写到0地址,再读出来 * 如果得到0,表示0地址上的内容被修改了,它对应ram,这就是nand启动 * 否则就是nor启动 */ mov r1, #0 ldr r0, [r1] /* 读出原来的值备份 */ str r1, [r1] /* 0->[0] */ ldr r2, [r1] /* r2 = [0] */ cmp r1 ,r2 /* r1==r2?如果相等表明是nand启动 */ ldr sp , = 0x40000000+4096 /* 先假设是nor启动 */ moveq sp, #4096 /* nand启动 */ streq r0, [r1] /* 恢复原来的值 */ //ldr sp , =4096 /* nand启动 */// ldr sp , = 0x40000000+4096 /* nor启动 */ bl main halt: b halt 代码都没问题 但是就是烧录出来的效果不对 烧录出来是所有灯直接亮 |
|
相关推荐
2个回答
|
|
开发板开关设置为Nand启动了吗,之前我把开关打向Nor启动灯就一直亮
|
|
|
|
设置了,找到原因了谢谢
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2160 浏览 6 评论
1968 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4523 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 22:50 , Processed in 0.668915 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号