CAHTA_1939 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба что за нафиг? микруха msp430f149 у меня в файле находится 4 массива const char ... [8][124]; и функция для обрашения к одному из массивов... так вот, если я компилю , когда функция обрашается к одному из первых 2ух массивов, то все ОК, а если компилю с обрашением к 3ему или дальше, то выдает ощибку... помогите плиз заранее спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба Может я чего-то не понимаю но 4 массива по 8*124=992 байта это уже 3968 байт. А у 149 только 2кБайт Flash. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CAHTA_1939 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 (изменено) · Жалоба Может я чего-то не понимаю но 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 Изменено 19 сентября, 2007 пользователем CAHTA_1939 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба У меня тоже ошибка, 2кБ не Flash, а ОЗУ. Какая именно у вас версия? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CAHTA_1939 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба У меня тоже ошибка, 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 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба Я не очень большой знаток Си, но у меня вызывает сомнение аргумент вызова функции print_arr const char (*ptr)[128] это случайно не массив указателей? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CAHTA_1939 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба Я не очень большой знаток Си, но у меня вызывает сомнение аргумент вызова функции print_arr const char (*ptr)[128] это случайно не массив указателей? это указатель на массив. взял из книжки... причиной ощибки была Kickstart версия IAR'а ... вот только не пойму, почему 0х1000 byte , ограничение же стоит на 4Кбайта ... странно короче, или я чтото не догоняю... установил Evaluation версию и трабла ушла =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба я чтото не догоняю... Шестандцатиричную арифметику, очевидно :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CAHTA_1939 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба так const хранится где? во флеше? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
YuraFCZ 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба так const хранится где? во флеше? Хранится то во флэш, но ограничение компилятора в кикстарт версии IAR на размер кода 4Кб (0x1000=4096), вот он и не давал компилить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться