|
|
 |
Ответов
|
Apr 4 2008, 06:22
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 1-11-06
Пользователь №: 21 854

|
что то я замучался с этой фигней. прочитал об моей проблеме. рекомендуют разбивать прогу на модули. вот разбил. посмотрите плиз правильно или нет. Но все равно та же ошибка. MPlab 7.20. В проекте 2 файла: "temp5.c" и "p1.c". компилю- Can't find 0x6BC words for psect bigbss in segment BIGRAM Мне надо иметь два массива по 512 байт, 140 байт и 85 байт. Остальное это переменные всякие, но объемом не больше памяти. По поводу версии компилятора разные слухи. кто-то говорит что 9.50 хуже и старые проги будут не компиляться, кто-то наоборот. фиг знает. Мне бы отлаженый пример программки на основе моего примера с описанием ныжных мне массивов. Было бы здорово! P.S. уже правда для текущего проекта обошелся меньшей памятью, т.к. оптимизировал, но для будущего надо с FAT работать, а там бы иметь 2 массива по 512 байт неплохо. Спасибо!
|
|
|
|
|
Apr 4 2008, 07:45
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 1-12-05
Из: Иркутск
Пользователь №: 11 630

|
Цитата(Roman_V @ Apr 4 2008, 14:22)  что то я замучался с этой фигней. прочитал об моей проблеме. рекомендуют разбивать прогу на модули. вот разбил. посмотрите плиз правильно или нет. Но все равно та же ошибка. MPlab 7.20. В проекте 2 файла: "temp5.c" и "p1.c". компилю- Can't find 0x6BC words for psect bigbss in segment BIGRAM Мне надо иметь два массива по 512 байт, 140 байт и 85 байт. Остальное это переменные всякие, но объемом не больше памяти. По поводу версии компилятора разные слухи. кто-то говорит что 9.50 хуже и старые проги будут не компиляться, кто-то наоборот. фиг знает. Мне бы отлаженый пример программки на основе моего примера с описанием ныжных мне массивов. Было бы здорово! P.S. уже правда для текущего проекта обошелся меньшей памятью, т.к. оптимизировал, но для будущего надо с FAT работать, а там бы иметь 2 массива по 512 байт неплохо. Спасибо! Нужно сделать так: Бъем прогу на 3 модуля: temp5.c : Код #include <pic18.h> //#include <pic18f4550.h> <<--- это совсем ненужно
void MyProc(void);
unsigned char i[700]; extern char m1[512],m2[512]; //прописываем внешние массивы
void main(void){ int y; for(y=0;y<700;y++) i[y]=9; MyProc(); }
void MyProc(void){ int i; for(i=0;i<512;i++){ m1[i]=2; m2[i]=3; } return; } И еще 2 файла: file1.c : Код char m1[512]; void func1(void){} // Необходимо объявить хотябы одну фиктивную функию file2.c : Код char m2[512]; void func2(void){} // Необходимо объявить хотябы одну фиктивную функию Так должно работать!  Вот прочитайте: http://www.htsoft.com/support/faq.html#faq97
|
|
|
|
|
Apr 4 2008, 08:01
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 5-12-05
Из: Москва, Россия
Пользователь №: 11 818

|
Цитата(Илья @ Apr 4 2008, 11:45)  Спасибо за ссылку. Действительно, надо хоть иногда читать документацию. Вот там еще пишут: Non-near variables that are not placed into the bss or data psects are placed in the bigbss and bigdata psects. Значит ли это, что если объявить переменную far, то можно уже не заботиться о длинах массивов и разбиении на модули, потому что линкер будет ее совать в какой-то bigbss (или bigdata)?
|
|
|
|
|
Apr 4 2008, 09:46
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 1-12-05
Из: Иркутск
Пользователь №: 11 630

|
Цитата(Галстук @ Apr 4 2008, 16:01)  Значит ли это, что если объявить переменную far, то можно уже не заботиться о длинах массивов и разбиении на модули, потому что линкер будет ее совать в какой-то bigbss (или bigdata)? Проверять надо... Кстати сейчас специально открыл проект, в котором, в свое время сталкивался с такой проблемой, вернул все объявления в один файл. и компилятор не сругался!!!  Все откомпилировалось нормально.... P.S. пробывал на PICC18 9.50 PL3
|
|
|
|
Сообщений в этой теме
Roman_V Обращение к верхнему 1кб ОЗУ pic18f2550. Как? Mar 31 2008, 12:29 dac а чем "верхнее" озу отличается от обычно... Apr 1 2008, 05:37 Roman_V глобально описаны
char buf1[140],buf2[85];
char ... Apr 1 2008, 05:46 Alex B._ Цитата(Roman_V @ Apr 1 2008, 08:46) В свя... Apr 1 2008, 06:46  Roman_V никогда не подключал. Сейчас попробовал и не получ... Apr 1 2008, 08:26   dac для пик18ф4523
объявлены два массива по 700 байт,... Apr 2 2008, 15:03    Roman_V Ну у меня все еще 8.35PL3 стоит. Искал сейчас и ни... Apr 3 2008, 15:03     dac Цитата(Roman_V @ Apr 3 2008, 19:03) Ну у ... Apr 3 2008, 15:40 Roman_V Спасибо за подробности! Но я попробовал и не р... Apr 4 2008, 09:55 Илья Цитата(Roman_V @ Apr 4 2008, 17:55) Спаси... Apr 4 2008, 10:15 Roman_V там блин пароль стоит. не пускает... Apr 4 2008, 10:23 Илья Цитата(Roman_V @ Apr 4 2008, 18:23) там б... Apr 4 2008, 10:27 Roman_V Классный пароль! спасибо! Apr 4 2008, 10:30 Илья Цитата(Roman_V @ Apr 4 2008, 18:30) Класс... Apr 4 2008, 10:34 Roman_V Поставил, попробовал. Тоже самое:
Error[491] : c... Apr 4 2008, 10:47 Илья Цитата(Roman_V @ Apr 4 2008, 18:47) еще с... Apr 4 2008, 10:49 dac еще раз повоторюсь - ставьте 9,50пл3 в 8,35 был эт... Apr 4 2008, 10:53 dac файл picc-18.ini
Код[18F2550]
MAKE=MICROC... Apr 4 2008, 11:11 Roman_V вот проект MPlab что я сделал. Может подключаю фай... Apr 4 2008, 11:00 Roman_V прописал - скомпилялось. НО! дело в том что ко... Apr 4 2008, 11:15 dac и еще в даташите в главе по организации памяти нап... Apr 4 2008, 11:21 Илья Цитата(dac @ Apr 4 2008, 19:21) и еще в д... Apr 4 2008, 11:27 Roman_V В даташите сказано что пользоваться этим ОЗУ можно... Apr 4 2008, 11:26 Roman_V пробовал PIC18F4520 - тоже самое
Error[491] : ca... Apr 4 2008, 12:22 Галстук Цитата(Roman_V @ Apr 4 2008, 16:22) сравн... Apr 4 2008, 13:08
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|