fengel_锋 发表于 2011-8-23 10:20:34

裸跑函数声明问题

我自己写的蜂鸣器实验,其中初始化函数:
        AREA |DATA|,CODE,READONLY
        ENTRY
        ldr r13,=0x1000
        IMPORT Main
        b Main
        END

主函数:
#define GPBCON (*(volatile unsigned *)0x56000010)
#define GPBDAT (*(volatile unsigned *)0x56000014)
#define GPBUP (*(volatile unsigned *)0x56000018)

void Main()
{
       
        void Delay(unsigned int);
                GPBUP=0XFFE;       //使能上拉F3-6
        GPBCON=0XFFFFFD;          //将F3-6设为输出口
        while(1)
        {
        GPBDAT=0xfff;
        Delay(40);
        GPBDAT=0xffe;
        Delay(40);
        }
       
       
}
void Delay(unsigned int x )
{
        unsigned int i,j,k;
        for(i=0;i<=x;i++)
        for(j=0;j<=0xff;j++)
        for(k=0;k<=0xff;k++);
}

本人用JTAG在线调试,如果把void Delay(unsigned int);声明语句放在Main函数里面,就能正常听到蜂鸣器声音,如果把它放到Main函数外面,就不能正常工作了,这是为什么呢?还有就是把延时函数全部放在Main函数前面不是就不用声明了吗,为什么那样也不能正常运行?
页: [1]
查看完整版本: 裸跑函数声明问题