max232 发表于 2008-3-29 16:13:21

iar编译器用C写程序怎样才能使程序占用最小的堆栈空间(CSTACK)??

小弟用12864作菜单显示,因水平有限,只会用类似于下面格式来写:
       
        void lcd_display_menu(void)
        {
          switch(flag)
          {
          case 0:
                        lcd_desplay_sth(.....);
                        break;
                case 1:
                        lcd_desplay_sth(.....);
                        break;
                        .....
          }
        }
       
        这样,菜单一多堆栈就不够用了,又得增加,现已达到0x50,如果程序再多,可能又得加.......
       
        请问:将程序写成何种形式其占堆栈会比较少呢?

max232 发表于 2008-3-29 21:06:33

没人回答...难道没人碰到和我一样的问题吗

三春虫 发表于 2012-12-4 11:51:45

我也遇到这个问题,还没解决{:sad:}

HoldMyARM 发表于 2012-12-4 13:17:56

不开中断,不调用子程序,少用局部变量
页: [1]
查看完整版本: iar编译器用C写程序怎样才能使程序占用最小的堆栈空间(CSTACK)??