matlab和iar,IAR下的问题种种

这几天用IAR写c程序在CC2430上跑,晕死,很多限制,列举几个。看有没有人碰到了解决了的,告诉偶一下啊,不胜感激。

本文出处: http://ht2411.cublog.cn

(1)在子函数中用switch语句不管用。比如我写了这么一个子函数,将if-else换成switch就不能在cc2430上运行了。如果用if-else就可以。真郁闷,没有天理啊。。。。。

void sendData(int type, double data)

{

int len;

memset(Txdata,'\0',DATA_SIZE);

/*  switch(type)

{

case 1:

Txdata[0] = '1';

break;

case 2:

Txdata[0] = '2';

break;

case 3:

Txdata[0] = '3';

break;

case 4:

Txdata[0] = '4';

break;

default:

Txdata[0] = '9';

}*/

if(type==1)

Txdata[0] = '1';

else if(type==2)

Txdata[0] = '2';

else if(type==3)

Txdata[0] = '3';

else if(type==4)

Txdata[0] = '4';

else Txdata[0] = '5';

len = ftos(Txdata+1,data);

UartTX_Send_String(Txdata,len+1);

}

(2)我在main函数中声明double类型的数据,只能出现4个数字才能显示出来。也就是你可以声明:

double a=1.234, 12.34, 123.4 等等,但是如果你声明1.2345就不行了。晕死。

(3)如果你声明的变量太多了肯定会造成堆栈溢出的,这个时候可以调整IAR的配置。彪悍的配置如:

General Option->Target->Code model选择banked,

General Option->Code bank->Register:0xC7,Bank:0x2900,Bank end:0xffff.

General Option->Stack/Heap->Stack size->IDATA:0xC0,PDATA:0x80,XDATA:0x300, Heap sizes->XDATA:0x00,Far:0x000, Huge:0x000

阅读(4077) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值