打印

求教,关于ADS里面MAIN函数~~ 不优先执行

[复制链接]
2684|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linfeng286|  楼主 | 2008-3-12 21:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下:
  我用ADS里点调试 
他就从 myUart_SendByte 先开始执行了
也就是说 把哪个函数放在前面他就先执行哪个~~
才不管 应该从MAIN 开始执行呢 
怎么回事呢?



#include "2410addr.h"

void myUart_SendByte(char ch)
{

        if(ch=='\n')
        {
            while(!(rUTRSTAT0 & 0x2));//µÈ´ý£¬Ö±µ½·¢ËÍ»º³åÇøΪ¿Õ
            //Delay(10);    //³¬¼¶ÖжϵÄÏìÓ¦ËٶȽÏÂý 
            WrUTXH0('\r');//·¢Ëͻسµ·û
        }
        while(!(rUTRSTAT0 & 0x2)); //µÈ´ý£¬Ö±µ½·¢ËÍ»º³åÇøΪ¿Õ
        //Delay(10);
        WrUTXH0(ch);//·¢ËÍ×Ö·û
       }





void myUart_Send (char *str)
{
    while (*str)
{    
myUart_SendByte(*str++);
}

}    





int Main()
{

rGPHCON = 0xa0; //GPH2,GPH3 ÉèÖóɠTXD0,RXD0
rGPHUP =0x0c; //GPH2,GPH3 ÉÏÀ­µç×èʹÄÜ
rULCON0 = 0x03; //8N1(8¸öÊý¾Ý룬ÎÞЧÑé룬1¸öֹͣλ)
rUCON0 = 0x05;  //²éѯģʽ
rUFCON0 = 0x0;  //²»Ê¹ÓÃFIFO
rUMCON0 = 0x0;  //²»Ê¹ÓÃÁ÷¿ØÖÆ
rUBRDIV0 = 26;  //²¨ÌØÂÊΪ115200


 while(1)
 {
 while( ! (rUTRSTAT0 & 0x2) );
    myUart_Send("my OK\n");
}
}

相关下载

相关帖子

沙发
阿南| | 2008-3-13 12:51 | 只看该作者

点右键,用混合模式查看反汇编代码是否正确

当RAM不可用时,装载的代码没有成功时,也会出现这种情况,也就是说你执行的代码是假的,单步时会一直顺序的往下走

使用特权

评论回复
板凳
xhtxzxw| | 2008-3-13 13:44 | 只看该作者

嘿嘿

你的初始化代码里(一般都是汇编写的)要指定一下main()函数作为起点啊!

使用特权

评论回复
地板
linfeng286|  楼主 | 2008-3-13 15:13 | 只看该作者

关于MAIN启动

我没有初始化函数啊。
因为我找到的都是超级复杂的m

有没有简单的 只是 

使用特权

评论回复
5
linfeng286|  楼主 | 2008-3-13 15:13 | 只看该作者

RE

为什么一定要制定 从哪启动呢?
难道编译器不知道 从MAIN开始执行么?

使用特权

评论回复
6
dld2| | 2008-3-13 15:20 | 只看该作者

糊鲁巴涂

C程序执行前,必须有初始化代码。
处理器是从0地址开始执行的,然后初始化,然后调用main()。

使用特权

评论回复
7
linfeng286|  楼主 | 2008-3-13 16:19 | 只看该作者

RE

谁有启动代码 给我一个?

使用特权

评论回复
8
xhtxzxw| | 2008-3-13 22:16 | 只看该作者

嘿嘿

绝对绝对不象你在DOS或者WINDOWS系统下用C写程序!!!!
因为你现在是“裸奔”,没有操作系统支持,所以你的程序除了要有main()函数,还必须有初始化代码,而且即使你有初始化代码,也不能保证初始化以后就能跑到你的main()里来,你必须在初始化代码里执行完所有的初始化以后用b指令(跳转指令)跳到main()里来。所以你甚至可以不用main()做你的主函数名,呵呵,一般的写法应该是:
           EXTERN    main
                  ... ...                    //底层初始化代码
        ldr    r0,  =main
                  bx    r0               //这就跳到你的main()了,实际上你想往哪儿跳就往哪儿跳,只是记得前面EXTERN ??要给出声明
                  ... ...                   //如果你的main()里没有死循环,就有可能回这里了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

52

帖子

0

粉丝