yesful 发表于 2012-2-18 14:34:36

Keil C51程序编译通过了,但不能下载到芯片中去?

最近在玩V9401芯片,内带8052MCU,RTC,LCD驱动模块等~~~但是在写程序的时候遇到很多问题~~~经常在给程序加一两句的时候,程序编译通过了,但是在下载到芯片的时候,经常会下载到百分之几十的时候就下载不进去了。还没找到原因,在此请大家指导~~~
例如:
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_719901GH6UG6.png
(原文件名:下载失败图.png)
出现以上程序,是我在Modbus_Read(uint RegAdd,uint RegNum)函数里加了两条测试语句,让一个灯亮和灭,其它地方没有修改过。
void Modbus_Read(uint RegAdd,uint RegNum)
{
          uchar i;

        P4OD = P4OD|0x02;/**测试用,LED灯亮,2012.2.18**/
                           /**P4OD-->P4输出数据寄存器**/
        Send_Buff = 1;
        Send_Buff = READ;
        Send_Buff = 0x00;
        Send_Buff = RegAdd;
        Send_Buff = 0x00;
        Send_Buff = RegNum;
        CRC16(&Send_Buff,6);
        Send_Buff = CRC16Lo;
         Send_Buff = CRC16Hi;
        Tx_All_Num = 8;
         Tx_Num = 0;
        Rx_Num = 0;
//        ES = 0;
         ExInt2IE = ExInt2IE&0xfd; //串口中断关闭
        for(i=0;i<8;i++)
        {
             SBUF2 = Send_Buff;
             while(!SCON2&0x02);
//            TI=0;
               P4OD = P4OD&0xfd; /**测试用,LED灯灭,2012.2.18**/
内                               /**P4OD-->P4输出数据寄存器**/

               SCON2 = SCON2&0xfd;
        }
//        ES = 1;
         ExInt2IE = ExInt2IE|0x02;//串口中断使能
}
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_719902X27LU3.png
(原文件名:P4端口寄存器.png)
补充:查了下载工具,是没问题的,但是,当我在options for target里,把code rom size 由原来的large:64KB program 改成:compact:2K 64K program后,可以成功下载到芯片中,没想明白什么原因。

Code Rom Size(设置ROM空间的使用)
SMALL模式:只用低于2K的程序空间
COMPACT模式:单个函数的代码量不能超过2K,整个程序可以使用64K的程序空间
LARGE模式:单个函数和整个程序可用全部64K空间

我的理解:LARGE模式对于COMPACT模式,应该是一种包含的关系。能用COMPACT模式,用LARGE模式也可以吧。

lizhoubob 发表于 2012-2-18 15:06:14

是烧写出错,都提示了.看下下载工具哪里不对.

yesful 发表于 2012-2-18 15:25:34

回复【1楼】lizhoubob ooxx
-----------------------------------------------------------------------

之前很多次,出现这种情况后,我把我新增的代码屏蔽掉,然后,再烧写,就成功了,我就以为不是烧写器的问题~~~现在去查看一下下载工具~~~

xiaofeng87 发表于 2012-2-19 14:29:47

换个别的程序试下 看看是不是块有问题了

三国小兵 发表于 2014-6-12 09:15:09

最近也在用V9401,能发点资料吗,厂家给的DEMO太繁琐了
页: [1]
查看完整版本: Keil C51程序编译通过了,但不能下载到芯片中去?