реклама на сайте
подробности

 
 
> Обращение к верхнему 1кб ОЗУ pic18f2550. Как?
Roman_V
сообщение Mar 31 2008, 12:29
Сообщение #1


Участник
*

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



Привет! Забил 1 кб ОЗУ, теперь Hitech PICC ругается что нету ОЗУ. Но у ПИКа есть еще 1 кб. Как к нему обратиться из C? USB модуль отключен, в даташите сказано что это ОЗУ мне доступно. На асме не пробовал, но через регистр выбора банка вроде все понятно. А как быть с С? Ведь там просто описываешь массив и все. Си сам заботится о выборе банков. Спасибо за помощь!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Roman_V
сообщение Apr 4 2008, 06:22
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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 байт неплохо. Спасибо!
Прикрепленные файлы
Прикрепленный файл  temp5.rar ( 510 байт ) Кол-во скачиваний: 28
 
Go to the top of the page
 
+Quote Post
Ilya_A
сообщение Apr 4 2008, 07:45
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 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){} // Необходимо объявить хотябы одну фиктивную функию


Так должно работать! wink.gif


Вот прочитайте:

http://www.htsoft.com/support/faq.html#faq97
Go to the top of the page
 
+Quote Post
Галстук
сообщение Apr 4 2008, 08:01
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 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)?
Go to the top of the page
 
+Quote Post
Ilya_A
сообщение Apr 4 2008, 09:46
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 1-12-05
Из: Иркутск
Пользователь №: 11 630



Цитата(Галстук @ Apr 4 2008, 16:01) *
Значит ли это, что если объявить переменную far, то можно уже не заботиться о длинах массивов и разбиении на модули, потому что линкер будет ее совать в какой-то bigbss (или bigdata)?


Проверять надо...

Кстати сейчас специально открыл проект, в котором, в свое время сталкивался с такой проблемой, вернул все объявления в один файл. и компилятор не сругался!!! 07.gif Все откомпилировалось нормально....

P.S. пробывал на PICC18 9.50 PL3
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.0143 секунд с 7
ELECTRONIX ©2004-2016