当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : led的点亮(c语言)问题。(已解决)
帖子发表于 : 2010-04-11 16:42 
头像

注册: 2009-08-05 17:58
帖子: 37
送出感谢: 0 次
接收感谢: 0 次
crt0.S文件:
@******************************************************************************
@ File:crt0.S
@ 功能:通过它转入C程序
@******************************************************************************

.text
.global _start
_start:
ldr r0, =0x56000010 @ WATCHDOG寄存器地址
mov r1, #0x0
str r1, [r0] @ 写入0,禁止WATCHDOG,否则CPU会不断重启

ldr sp, =1024*4 @ 设置堆栈,注意:不能大于4k, 因为现在可用的内存只有4K
@ nand flash中的代码在复位后会移到内部ram中,此ram只有4K
bl main @ 调用C程序中的main函数
halt_loop:
b halt_loop

led_on_c.c文件:
#define GPBCON (*(volatile unsigned long *)0x56000010)
#define GPBDAT (*(volatile unsigned long *)0x56000014)

int main()
{
GPBCON = 0x00000400; // 设置GPB5为输出口, 位[11:10]=0b01
GPBDAT = 0x00000000; // GPB5输出0,LED1点亮

return 0;
}

Makefile文件:
led_on_c.bin : crt0.S led_on_c.c
arm-linux-gcc -g -c -o crt0.o crt0.S
arm-linux-gcc -g -c -o led_on_c.o led_on_c.c
arm-linux-ld -Ttext 0x00000000 -g crt0.o led_on_c.o -o led_on_c_elf
arm-linux-objcopy -O binary -S led_on_c_elf led_on_c.bin
arm-linux-objdump -D -m arm led_on_c_elf > led_on_c.dis
clean:
rm -f led_on_c.dis led_on_c.bin led_on_c_elf *.o
然后我用vivi的down & run,再使用自带的dnw通过USB下载,下载地址为0x00000000
各位高手能不看看,重点看看dnw下载地址是否正确?还有arm-linux-ld -Ttext 0x00000000 -g crt0.o led_on_c.o -o led_on_c_elf中的代码段开始地址是否正确?谢谢。。。


最后由 爱电脑的菜鸟 编辑于 2010-04-17 13:29,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: led的点亮(c语言)问题,几天都没解决。。。
帖子发表于 : 2010-04-12 11:30 
头像

注册: 2008-02-11 15:46
帖子: 450
送出感谢: 0 次
接收感谢: 0 次
什么情况?什么板子?大哥,说详细点嘛,问题的描述信息要丰富些。


_________________
Google Talk群组,请来<雨云>一番!
主题:UbuntuLinux编程科幻、民主、科学等。
添加 rain-cloud@appspot.com 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH

Twitter:http://twitter.com/nixzhu


页首
 用户资料  
 
3 楼 
 文章标题 : Re: led的点亮(c语言)问题,几天都没解决。。。
帖子发表于 : 2010-04-13 21:57 
头像

注册: 2009-08-05 17:58
帖子: 37
送出感谢: 0 次
接收感谢: 0 次
:em06 谢谢大哥提醒和关注。。。我的是友善之臂的mini2440 情况是通过supervivi的down & run功能下载以上程序运行没有出现结果(灯的亮灭)。能不能帮忙找找原因?谢谢


页首
 用户资料  
 
4 楼 
 文章标题 : Re: led的点亮(c语言)问题,几天都没解决。。。
帖子发表于 : 2010-04-14 13:00 
头像

注册: 2008-02-11 15:46
帖子: 450
送出感谢: 0 次
接收感谢: 0 次
下载地址为0x00000000
可能不对,我以前学过一点ARM,都不是下载到最开始的内存,你看看手册吧。这种板子应该有很详细的手册的,程序是例程吗?按照手册上一步一步来。


_________________
Google Talk群组,请来<雨云>一番!
主题:UbuntuLinux编程科幻、民主、科学等。
添加 rain-cloud@appspot.com 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH

Twitter:http://twitter.com/nixzhu


页首
 用户资料  
 
5 楼 
 文章标题 : Re: led的点亮(c语言)问题,几天都没解决。。。
帖子发表于 : 2010-04-15 0:03 

注册: 2008-10-01 23:27
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
建议lz现在Windows 下用axd 调一下板子的灯看看灯是否好用 然后再看程序(我看好像没啥问题 :em06


接好开发板 jtag
打开axd


processor views > Memory
在Memory Start address 中输入 LED 灯物理地址
修改相对位置数据看看LED是否亮或者灭了


页首
 用户资料  
 
6 楼 
 文章标题 : Re: led的点亮(c语言)问题,几天都没解决。。。
帖子发表于 : 2010-04-17 13:28 
头像

注册: 2009-08-05 17:58
帖子: 37
送出感谢: 0 次
接收感谢: 0 次
:em06 谢谢楼上的几个哥们的解答,问题已经解决了,supervivi的download & run可以直接运行汇编,于是我将crt0.S中bl main 之前的语句去掉,比如说设置堆栈和关于watchdog的语句删除。将代码的起始地址设为0x3000000,将dnw中的下载地址设为0x30000000。问题就解决了。 :em11 继续努力


页首
 用户资料  
 
7 楼 
 文章标题 : Re: led的点亮(c语言)问题。(已解决)
帖子发表于 : 2010-05-03 12:11 
头像

注册: 2007-11-23 12:31
帖子: 192
送出感谢: 0 次
接收感谢: 0 次
内存的起始地址就是0x30000000的,0x00000000那是flash的地址


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译