完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人照着视频做了MMU试验,发现灯没有闪烁起来,是熄灭的。用的板子是TQ2440,leds.c内容简单修改如下,其他文件内容都没有变的,高手帮看看问题处在哪里?
#define GPBCON (*(volatile unsigned long *)0xA0000010) // 物理地址0x56000010 #define GPBDAT (*(volatile unsigned long *)0xA0000014) // 物理地址0x56000014 #define GPB5_out (1<<(5*2)) #define GPB6_out (1<<(6*2)) #define GPB7_out (1<<(7*2)) #define GPB8_out (1<<(8*2)) /* * wait函数加上“static inline”是有原因的, * 这样可以使得编译leds.c时,wait嵌入main中,编译结果中只有main一个函数。 * 于是在连接时,main函数的地址就是由连接文件指定的运行时装载地址。 * 而连接文件mmu.lds中,指定了leds.o的运行时装载地址为0xB4004000, * 这样,head.S中的“ldr pc, =0xB4004000”就是跳去执行main函数。 */ static inline void wait(volatile unsigned long dly) { for(; dly > 0; dly--); } int main(void) { unsigned long i = 0; GPBCON = GPB5_out|GPB6_out|GPB7_out|GPB8_out; // 将LED1,2,4对应的GPF4/5/6三个引脚设为输出 while(1){ wait(3000000); GPBDAT = (~(i<<5)); // 根据i的值,点亮LED1,2,4 if(++i == 16) i = 0; } return 0; } |
|
相关推荐
3个回答
|
|
得把全部程序贴出来,才行。这样看不出来。
|
|
|
|
|
|
|
|
问题应该不是出在这个程序里,不知道你解决了没有,我这个实验也没有成功
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2181 浏览 6 评论
1983 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4541 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 17:27 , Processed in 1.003872 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号