Перейти к содержанию
    

Fatal Error[e89]: Too much object code produced (more than 0x1000 bytes) for this package

что за нафиг?

микруха msp430f149

 

у меня в файле находится 4 массива

const char ... [8][124];

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

 

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

 

помогите плиз

заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может я чего-то не понимаю но 4 массива по 8*124=992 байта это уже 3968 байт. А у 149 только 2кБайт Flash.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может я чего-то не понимаю но 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

Изменено пользователем CAHTA_1939

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня тоже ошибка, 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 поставил...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не очень большой знаток Си, но у меня вызывает сомнение аргумент вызова функции print_arr

const char (*ptr)[128] это случайно не массив указателей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не очень большой знаток Си, но у меня вызывает сомнение аргумент вызова функции print_arr

const char (*ptr)[128] это случайно не массив указателей?

 

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

 

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

 

установил Evaluation версию и трабла ушла =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так const хранится где? во флеше?

 

Хранится то во флэш, но ограничение компилятора в кикстарт версии IAR на размер кода 4Кб (0x1000=4096), вот он и не давал компилить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...