Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Fatal Error[e89]: Too much object code produced (more than 0x1000 bytes) for this package
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
CAHTA_1939
что за нафиг?
микруха msp430f149

у меня в файле находится 4 массива
Код
const char ... [8][124];

и функция для обрашения к одному из массивов...

так вот, если я компилю , когда функция обрашается к одному из первых 2ух массивов, то все ОК, а если компилю с обрашением к 3ему или дальше, то выдает ощибку...

помогите плиз
заранее спасибо!
rezident
Может я чего-то не понимаю но 4 массива по 8*124=992 байта это уже 3968 байт. А у 149 только 2кБайт Flash.
CAHTA_1939
Цитата(rezident @ Sep 19 2007, 18:43) *
Может я чего-то не понимаю но 4 массива по 8*124=992 байта это уже 3968 байт. А у 149 только 2кБайт Flash.


но я же его сделал как const. он разве не во Флеше должен сохранять?

но тогда. почему ошибка не вываливается когда я обрашаюсь к первым 2ум массивам?

ошибчка! 8*128 массивы =)

при линковке с print_arr(krevedko); или print_arr(logomai); данной ошибки нет, а при
print_arr(baba); или print_arr(logomai2); ошибка возникает =((

_mass.h:
Код
#ifndef __MASS_H
#define __MASS_H

//128x64 pixel
const char krevedko[8][128]={};
const char logomai[8][128]={};
const char baba[8][128]={};
const char logomai2[8][128]={};
#endif


функция для работы с массивами...
Код
void print_arr(const char (*ptr)[128])
{    
   char *ptr_p;
   ptr_p=(char *) ptr;
  
   int p;                            
   int c;                            

   for(p=0; p<8; p++)                  
   {  
      for(c=0; c<64; c++)              
      {
         WriteDataL(*ptr_p++);
      }
      for(c=64; c<128; c++)            
      {
         WriteDataR(*ptr_p++);
      }
}
}


понять не пому в чем трабла?

может IAR не дает такой объем скомпилить? в About написаноо IAR Embedded Workbench IDE
rezident
У меня тоже ошибка, 2кБ не Flash, а ОЗУ.
Какая именно у вас версия?
CAHTA_1939
Цитата(rezident @ Sep 19 2007, 19:08) *
У меня тоже ошибка, 2кБ не Flash, а ОЗУ.
Какая именно у вас версия?


Код
IAR Assembler for MSP430
V3.42A/W32 (3.42.1.9)
C:\Program Files\IAR Systems\Embedded Workbench 4.0\430\bin\a430.exe
07.12.2006 10:18:04, 651264 bytes

IAR C/C++ Compiler for MSP430
V3.42A/W32 [Kickstart] (3.42.1.3)
C:\Program Files\IAR Systems\Embedded Workbench 4.0\430\bin\icc430.exe
07.12.2006 14:39:24, 6164480 bytes



если const тоже записывается в ОЗУ, тогда как массивы данных оставить во Флеше? мне их даже изменять то не надо, на то я и const поставил...
rezident
Я не очень большой знаток Си, но у меня вызывает сомнение аргумент вызова функции print_arr
const char (*ptr)[128] это случайно не массив указателей?
CAHTA_1939
Цитата(rezident @ Sep 19 2007, 19:29) *
Я не очень большой знаток Си, но у меня вызывает сомнение аргумент вызова функции print_arr
const char (*ptr)[128] это случайно не массив указателей?


это указатель на массив. взял из книжки...

причиной ощибки была Kickstart версия IAR'а ... вот только не пойму, почему 0х1000 byte , ограничение же стоит на 4Кбайта ... странно короче, или я чтото не догоняю...

установил Evaluation версию и трабла ушла =)
zltigo
Цитата(CAHTA_1939 @ Sep 19 2007, 18:54) *
я чтото не догоняю...

Шестандцатиричную арифметику, очевидно sad.gif
CAHTA_1939
так const хранится где? во флеше?
SanvaldYV
Цитата(CAHTA_1939 @ Sep 19 2007, 20:31) *
так const хранится где? во флеше?


Хранится то во флэш, но ограничение компилятора в кикстарт версии IAR на размер кода 4Кб (0x1000=4096), вот он и не давал компилить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.