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

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

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

Ответ
 
Опции темы Опции просмотра
Старый 29.05.2018, 10:04   #1
ДимычЪ
Senior Member
 
Аватар для ДимычЪ
 
Регистрация: 08.01.2010
Возраст: 31
Сообщений: 117
Вес репутации: 109/35
ДимычЪ 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
Адрес: Кременчуг
Возраст: 32
Сообщений: 1,326
Вес репутации: 2246/75
Рак 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
Возраст: 31
Сообщений: 117
Вес репутации: 109/35
ДимычЪ 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
Возраст: 48
Сообщений: 158
Вес репутации: 1161/27
siarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud of
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

Цитата:
Сообщение от ДимычЪ Посмотреть сообщение
отбой... не даёт объявить внутри функции, если это сделать за её пределами, то хавает...
Объявляемое внутри функции - размещается на стеке (локально). Глобально объявляемое - в "RAM". Если очень хочется "спрятать" этот массив в функции - объявите его со static - тогда он будет размещён в "RAM" но доступен только в этой функции. Но - имейте ввиду, что данные в этом буфере сохраняются между вызовами функции (блок то глобальный по сути) - в отличие от не-static данных объявленых в функции - в которых при каждом входе мусор.
siarzhuk вне форума   Ответить с цитированием
Старый 30.05.2018, 23:08   #5
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 1,926
Вес репутации: 3528/78
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
Возраст: 48
Сообщений: 158
Вес репутации: 1161/27
siarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud of
По умолчанию 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
Возраст: 31
Сообщений: 117
Вес репутации: 109/35
ДимычЪ 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
Возраст: 32
Сообщений: 1,926
Вес репутации: 3528/78
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
Возраст: 31
Сообщений: 117
Вес репутации: 109/35
ДимычЪ will become famous soon enoughДимычЪ will become famous soon enough
По умолчанию Re: Объединить банки ОЗУ в PIC16F15325

Не, вот как раз раньше не работало, только через объединение банков, даже при определении глобальной переменной, подозреваю что новая версия сама это делает автоматом.
ДимычЪ вне форума   Ответить с цитированием
Старый 31.05.2018, 11:09   #10
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 59
Сообщений: 2,374
Вес репутации: 3125/96
Марк 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, время: 07:19.


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