|
最近在玩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[0] = 1;
Send_Buff[1] = READ;
Send_Buff[2] = 0x00;
Send_Buff[3] = RegAdd;
Send_Buff[4] = 0x00;
Send_Buff[5] = RegNum;
CRC16(&Send_Buff[0],6);
Send_Buff[6] = CRC16Lo;
Send_Buff[7] = 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模式也可以吧。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|