Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 29.05.2018, 10:04   #1
ДимычЪ
Senior Member
 
Аватар для ДимычЪ
 
Регистрация: 08.01.2010
Возраст: 32
Сообщений: 117
Вес репутации: 109/42
ДимычЪ will become famous soon enoughДимычЪ will become famous soon enough
По умолчанию Объединить банки ОЗУ в PIC16F15325

Привет, подскажите как объединить RAM, чтоб можно было разместить массив в 192 байта (например), т.к. при свободных 754 байтах ругается на 192 байтный массив.

Давно делал объединение через линкер файл для PIC18, но для них есть эти файлы в папке компилятора, а для 16х нет, может кто знает где почитать как создать такой файл или как по другому объяснить компилятору, что я от него хочу?
ДимычЪ вне форума   Ответить с цитированием
Старый 29.05.2018, 11:01   #2
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 34
Сообщений: 1,429
Вес репутации: 2632/86
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

Не в курсе как это через линкер сделать. Но делал когда-то для получение большого массива на 16F688:

Код:
unsigned char arr1[128];
unsigned char arr2[128];

setValue(unsigned char value, unsigned char index)
{
    if(index < 128)
        arr1[index] = value;
    else
        arr2[index - 128] = value;
}
Рак вне форума   Ответить с цитированием
Старый 29.05.2018, 11:36   #3
ДимычЪ
Senior Member
 
Аватар для ДимычЪ
 
Регистрация: 08.01.2010
Возраст: 32
Сообщений: 117
Вес репутации: 109/42
ДимычЪ will become famous soon enoughДимычЪ will become famous soon enough
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

отбой... не даёт объявить внутри функции, если это сделать за её пределами, то хавает...

посмотрел ещё внутрь lkr файлов в новом XC8, там пусто, нет никакого описания банков, как ранее...
ДимычЪ вне форума   Ответить с цитированием
Старый 30.05.2018, 21:05   #4
siarzhuk
Senior Member
 
Аватар для siarzhuk
 
Регистрация: 08.11.2014
Возраст: 50
Сообщений: 190
Вес репутации: 1617/39
siarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant future
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

Цитата:
Сообщение от ДимычЪ Посмотреть сообщение
отбой... не даёт объявить внутри функции, если это сделать за её пределами, то хавает...
Объявляемое внутри функции - размещается на стеке (локально). Глобально объявляемое - в "RAM". Если очень хочется "спрятать" этот массив в функции - объявите его со static - тогда он будет размещён в "RAM" но доступен только в этой функции. Но - имейте ввиду, что данные в этом буфере сохраняются между вызовами функции (блок то глобальный по сути) - в отличие от не-static данных объявленых в функции - в которых при каждом входе мусор.
siarzhuk вне форума   Ответить с цитированием
Старый 30.05.2018, 23:08   #5
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,455
Вес репутации: 4677/101
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

siarzhuk
в xc8 прекомпилированный стек.

в pic14/16 нет хороших способов. архитектурой не предусмотрено.
besogon вне форума   Ответить с цитированием
Старый 30.05.2018, 23:52   #6
siarzhuk
Senior Member
 
Аватар для siarzhuk
 
Регистрация: 08.11.2014
Возраст: 50
Сообщений: 190
Вес репутации: 1617/39
siarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant futuresiarzhuk has a brilliant future
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

Цитата:
Сообщение от besogon Посмотреть сообщение
siarzhuk
в xc8 прекомпилированный стек.
Да, каюсь - занесло в каноничную модель меня как обычно.
А чем ограничен лимит для размера локальных объектов при прекомпилированном стеке?
Вспомнил вот своё-же вопрошание: http://www.microchip.su/showthread.p...986#post213986 - оказалось стек прерывания там.
siarzhuk вне форума   Ответить с цитированием
Старый 31.05.2018, 00:39   #7
ДимычЪ
Senior Member
 
Аватар для ДимычЪ
 
Регистрация: 08.01.2010
Возраст: 32
Сообщений: 117
Вес репутации: 109/42
ДимычЪ will become famous soon enoughДимычЪ will become famous soon enough
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

интересно почему в новой версии компилятора все файлы линкера для pic18 пустые
ДимычЪ вне форума   Ответить с цитированием
Старый 31.05.2018, 08:08   #8
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,455
Вес репутации: 4677/101
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

ДимычЪ
поробуйте откатиться - раньше работало..
besogon вне форума   Ответить с цитированием
Старый 31.05.2018, 10:36   #9
ДимычЪ
Senior Member
 
Аватар для ДимычЪ
 
Регистрация: 08.01.2010
Возраст: 32
Сообщений: 117
Вес репутации: 109/42
ДимычЪ will become famous soon enoughДимычЪ will become famous soon enough
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

Не, вот как раз раньше не работало, только через объединение банков, даже при определении глобальной переменной, подозреваю что новая версия сама это делает автоматом.
ДимычЪ вне форума   Ответить с цитированием
Старый 31.05.2018, 11:09   #10
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,336
Вес репутации: 4234/123
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

Вообще то в 4-х и 5-ти значных сериях PIC16 имеется доступ к линейному адресному пространству.
Это указатель 0х2000 и далее. В этом диапазоне следуют подряд все фрагментированные участки ОЗУ общего назначения, кроме расшаренных во все банки.
А с адреса 0х8000 видны все младшие байты программного флеша (доступ к константам).
Марк вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по SMS. Снова. fol Общетехнические вопросы 18 20.10.2008 02:10


Часовой пояс GMT +3, время: 08:49.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot