Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
21.09.2009, 19:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Использование HI - TECH для PIC контроллеров
Сообщение от kison
|
А какая разница - одна она или нет? Что меняется с точки зрения компилятора?
|
А ежели обьявить масивы в разных банках а потом их обьединить союзом? или так не покатит?
|
|
|
|
21.09.2009, 20:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Использование HI - TECH для PIC контроллеров
Проблема видимо вообще не в объявлении. Можно не объявлять массив совсем, а просто подразумевать его наличие в двух последовательно расположенных банках. Вопрос скорее в том, как эффективно организовать доступ через указатель к такому массиву. Я тут посмотрел instruction set по диагонали и не понял как реализовать косвенную адресацию в этом случае. По абсолютному адресу доступна вся память, но это не годится в данном случае. Или старший байт указателя это всегда BSR? Как тогда быть если нужно два указателя? Это наиболее часто встречающийся случай, например при копировании массивов.
|
|
|
|
21.09.2009, 20:02
|
|
Вид на жительство
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
|
Re: Использование HI - TECH для PIC контроллеров
Сообщение от kison
|
А какая разница - одна она или нет? Что меняется с точки зрения компилятора?
|
Почитать описание компилятора полезно.
По умолчанию размер сегмента 0xFF, вот он и говорит что данные не помещаются в сегмент, измените пожалуйста. Но если читать лень то можно объявить переменную в отдельном файле таким образом сегмент данных связанный с этой переменной/файлом увеличиться автоматически.
|
|
|
|
21.09.2009, 20:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Использование HI - TECH для PIC контроллеров
Сообщение от kison
|
А как действовать если размер под переменную превышает размер банка? В реализациях FAT практически всегда требуется буфер в 512 байт с линейной адресацией через указатель.
|
А если обьявить несколько масивов в разных банках, а потом их обьединить союзом? такое получится?
|
|
|
|
21.09.2009, 20:35
|
|
Вид на жительство
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
|
Re: Использование HI - TECH для PIC контроллеров
Сообщение от picavr
|
А если обьявить несколько масивов в разных банках, а потом их объединить союзом? такое получится?
|
Весь союз можно и нужно объявить в одном файле, поскольку это неделимая единица и все переменные входящие в союз отображаются на один массив памяти.
|
|
|
|
21.09.2009, 21:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Re: Использование HI - TECH для PIC контроллеров
Ну никогда не пробовал... Нужно в форумах все-таки сидеть, интересные мысли звучат...объединить банки в линкере - это пошло и просто, конечно...
|
|
|
|
21.09.2009, 23:32
|
|
Вид на жительство
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
|
Re: Использование HI - TECH для PIC контроллеров
|
|
|
|
22.09.2009, 19:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Использование HI - TECH для PIC контроллеров
Сообщение от urry
|
объединить банки в линкере - это пошло и просто, конечно...
|
А ПЛИЗ... поподробнее... моно? .... может пригодится...
|
|
|
|
22.09.2009, 20:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Re: Использование HI - TECH для PIC контроллеров
Я как бы спутал с МСС ![Улыбка](images/smilies/icon_smile.gif) - для меня раз пик18 - так сразу микрочиповский компилятор.
Пример - объединение банков - было
Код:
|
DATABANK NAME=gpr0 START=0x80 END=0xFF
DATABANK NAME=gpr1 START=0x100 END=0x1FF |
Стало
Код:
|
DATABANK NAME=gpr START=0x80 END=0x1FF
SECTION NAME=VARS RAM=gpr |
и в программе
Код:
|
#pragma udata VARS
char array[0x100]; |
Можно также не только объединять, но и разбивать код по нужным областям памяти.
Здесь было http://www.microchip.su/showthread.p...ED%EA%E5%F0%E0
Последний раз редактировалось urry; 22.09.2009 в 20:17.
|
|
|
|
22.09.2009, 20:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Использование HI - TECH для PIC контроллеров
Сообщение от urry
|
Я как бы спутал с МСС - для меня раз пик18 - так сразу микрочиповский компилятор.
|
просто я пока только начал ваять на Си... в этой кухне ещё не варился..
а для асемблера 10-16 правил файлы линкера ... та всё достаточно просто...
а для hitech picc16 ... аналогично?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:10.
|
|