- 积分
- 21
贡献9
飞刀0 FD
注册时间2011-11-1
在线时间11 小时
扫一扫,手机访问本帖
|
硬件平台:FL2440
PC机:Windows xp
开发环境:ADS1.2编译器,AXD调试器,H-JTAG,DNW终端
连接线:Wiggler JTAG调试线,RS232串口,USB下载线
目前在进行裸机实验,
1、先编写一个汇编程序init.s,如下
AREA |DATA|,CODE,READONLY
ENTRY
ldr r13, =0x1000
IMPORT ledmain
b ledmain
END
2、然后写一个比较简单的点亮led的c语言程序ledmain.c
#define GPBCON (*(volatile unsigned long *) 0x56000010)
#define GPBDAT (*(volatile unsigned long *) 0x56000014)
int ledmain(void)//主函数
{
GPBCON = (1<<(5*2));//将led0配置为输出
GPBDAT &= ~(1<<5);//将GPBDAT第5位设置为低电平,即点亮led
return 0;
}
3、然后通过ads1.2、axd进行编译调试成功,并且fl2440的led0被点亮
问题描述:当我在ledmain.c程序中加入一个延迟子函数delay,但是程序不能直接进入主函数中
自己解决方法:
1、看ads1.2编译器的配置,没有问题,是按照资料中的配置要求进行配置,但是编译时一直出现一个warning,如下:
warning : L6319W: Ignoring -first command. Cannot find section init.o(init)
但是前面只有一个int ledmain(void)函数时,程序正确运行,led0被成功点亮
注:ads1.2的DebugRel Setting中的ARM Linker,Layout,Object/Symbol加入init.o,Section中加入init
2、axd的目标芯片设置为s3c2440中芯片ARM920T,相关配置应该也没有问题
3、我把子函数去掉,将相关延迟内容放在ledmain主函数中,led0成功被点亮
两个问题:
1、那个warning:L6319W如何解决?
2、增加子函数后,程序无法进入主函数,如何解决?
希望高手们,能帮我解答一下。。。。谢谢 |
|