Например TDA7294

Форум РадиоКот • Просмотр темы - Вопрос по стэку компилятора для atmega128.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб дек 20, 2025 16:16:29

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Вопрос по стэку компилятора для atmega128.
СообщениеДобавлено: Чт авг 12, 2021 10:52:53 
Это не хвост, это антенна
Аватар пользователя

Карма: 17
Рейтинг сообщений: 227
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1443
Рейтинг сообщения: 0
Разобрался как работать с внешней SDRAM, + как сказать компилятору ее размер (до 64КБ).
Заморока теперь такая - При старте программы, в адресах близ 4352 (то есть на дне ВНУТРЕННЕЙ SDRAM) располагается используемая область. Очевидно это "стек" программы. Если задаем массив - граница программы приближается к стеку. При большом размере массива, например -
byte Buffer[8192] ;
компиляция идет без ошибок и алармов, но программа сбоит. Очевидно происходит наползание области программы на стек.
Вопрос - как вынести стек за пределы внутренней ОЗУ - во внешнюю SDRAM ? Очевидно какой-то директивой компилятора ??? Какую строчку надо добавлять в скетч ? С уважением.
ПС. С программированием на Си знаком только через Ардуино ИДЕ.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по стэку компилятора для atmega128.
СообщениеДобавлено: Сб авг 14, 2021 01:02:10 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15302
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Стек у АВРок (как и у большинства микроконтроллеров) аппаратно привязан к внутреннему ОЗУ.
Изменить размещение равноценно отказу от команд PUSH и POP.
Теоретически это возможно - периодическая выемка части содержимого стека во внешнее ОЗУ (под ассемблером к примеру)...
Однако это уже вопрос компиляторосторения или вариант встроенной операционной системы (с потерей быстродействия).
Как вариант - или разработчик добавит функционал в компилятор своими библиотеками или когда-нибудь кто из гуру в том вопросе своего чего напишет...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по стэку компилятора для atmega128.
СообщениеДобавлено: Сб авг 14, 2021 01:33:29 
Это не хвост, это антенна
Аватар пользователя

Карма: 17
Рейтинг сообщений: 227
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1443
Рейтинг сообщения: 0
Если я правильно понимаю ДШ, 16-разрядный регистр SP (stack pointer SPH + SPL) должен быть принудительно установлен на любой адрес больше 60H. Это и будет дно стека. 16 разрядов как раз и есть 64КБ. Так что никакой аппаратной привязки к дну внутренней памяти в АТмеге128 - нету.
Просто эта процедура начальной инициации регистров процессора выполняется на первых тактах работы программы, ДО загрузки библиотек, процедур и прерываний. Она скрыта компилятором от глаз программиста ЯВУ как автоматическая рутинная операция. Должна быть задействована какая-то директива компилятору.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по стэку компилятора для atmega128.
СообщениеДобавлено: Сб авг 14, 2021 14:05:24 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15302
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Ощибка - указатель стека может адресовать только внутреннее ОЗУ МК.
У каждого соответственно его размерам.
На применение указателя стека с операциями во внешнем ОЗУ МК не рассчитаны (ибо таковое в подавляющем большинстве случаев физически отсутствует).
Насчет двубайтового формата SP - ОЗУ в том же 128м - 4 килобайта - это диапазон от 0х0000 до 0x0FFF - однобайтовым указателем тут никак не обойдешся.
8)


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Вопрос по стэку компилятора для atmega128.
СообщениеДобавлено: Сб авг 14, 2021 15:05:31 
Это не хвост, это антенна
Аватар пользователя

Карма: 17
Рейтинг сообщений: 227
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1443
Рейтинг сообщения: 0
Даташит вроде говорит иное.
Хорошо - как заставить компилятор организовать стек во внешней памяти ? Чтобы "стандартный" стек не разрывал внутреннее и внешнее пространство. Хрен его знает как он это сделает - может быть без использования SP ?!


Вложения:
External Stack.png [70.7 KiB]
Скачиваний: 153
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по стэку компилятора для atmega128.
СообщениеДобавлено: Вс авг 15, 2021 10:01:37 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15302
Откуда: ДОНЕЦК
Рейтинг сообщения: 1
В таком случае у компилятора должны быть предусмотрены соответствующие ключи управления для конкретных микроконтроллеров.
Тип МК, размер подключаемой внешней памяти и указание на размещение в ней стека.
Настройка регистров управления внешним ОЗУ останется на совести программиста.
Это разве что спецы по настройкам компилятора Си подскажут...
:dont_know:
Если под ассемблером - вчитываться в управление внешним ОЗУ надо да выставить настройку соответствующих регистров управления. Разметка пространства - творчество автора программы, но с учетом всех имеющихся и в программе и в физическом распределении ресурсов особенностей.
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по стэку компилятора для atmega128.
СообщениеДобавлено: Вс авг 15, 2021 22:10:35 
Это не хвост, это антенна
Аватар пользователя

Карма: 17
Рейтинг сообщений: 227
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1443
Рейтинг сообщения: 0
В таком случае у компилятора должны быть предусмотрены соответствующие ключи управления для конкретных микроконтроллеров.
Тип МК, размер подключаемой внешней памяти и указание на размещение в ней стека.
Настройка регистров управления внешним ОЗУ останется на совести программиста.
:dont_know:

:roll:
1. В этом и заключается мой вопрос. Какую строчку надо вписать в скетч, чтобы компилятор создал стек в нужном месте, в том числе - во внешней памяти.
2. Настроить регистры на управление внешней памятью - не проблема. Все настраивается и работает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по стэку компилятора для atmega128.
СообщениеДобавлено: Пн авг 16, 2021 09:13:16 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15302
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Не совсем так...
От настроек регистров управления будут зависеть свойства ОЗУ соответствующих областей...
а это, в свою очередь, должно быть (вероятно) как-то указано компилятору.
Вобчемсс... Ждем участия/комметариев ГУРУ по Си...
8)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y