$hwstack, $swstack, $framesize
|
|
space | Дата: Понедельник, 14.01.2013, 00:36 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 42
Статус: Offline
| Что это такое? Для чего? На основе чего ставятся те или иные цифры? Код $hwstack = 8 $swstack = 16 $framesize = 16
|
|
| |
exersizze | Дата: Понедельник, 14.01.2013, 01:32 | Сообщение # 2 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Это распределение пространства статической памяти (SRAM) под нужды программы в байтах, так называемый стэк. hwstack - аппаратный стек, он необходим контроллеру чтобы записывать в него адреса того места, откуда прыгнула программа на подпрограмму или функцию. Если проще то так, камень выполняет программу и тут ему нужно уйти на выполнение какой-то подпрограммы (например прерывание), вот чтобы знать куда возвращаться после того как подпрограмма отработана, необходимо место чтобы сохранить этот адрес. При использовании в программе одного Gosub необходимо место в 2 байта. swstack - программный стэк. Практически тоже самое, но хранит переменные (вернее их адреса) чтобы не потерять их после ухода на подпрограмму. Для хранения каждого адреса переменной тоже нужно резервировать по 2 байта. framesize - это размер выделяемой памяти для преобразований строк, их форматирования, подготовку вывода на дисплей по команде LCD или PRINT/INPUT. В общем та область памяти куда буферизируются переменные для последующей обработки.
Как то так, вот хорошая ссылка по этой теме http://www.mcselec.com/index.p....emid=57 с картинками и примерами. Только там все на вражеском языке, неплохо бы если кто-то занялся переводом.
|
|
| |
space | Дата: Вторник, 15.01.2013, 02:11 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 42
Статус: Offline
| exersizze, спасибо если бы знал английский перевел бы) и не спрашивал об этом
И еще вопросик, если в программе не вписывать стэки вообще, то как может повлиять на работу программы при наличие всяких переменных, переходов и т.д.?
|
|
| |
kip96 | Дата: Вторник, 15.01.2013, 12:16 | Сообщение # 4 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Они автоматически пропишутся, те которые стоят в настройках компилятора.
|
|
| |
exersizze | Дата: Среда, 16.01.2013, 03:00 | Сообщение # 5 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Если стэка не хватает, то программа будет работать неккоректно. Лично сталкавался с тем что переменные обнулялись после того как проделывал сложные операции в подпрограммах.
|
|
| |
KoSS_89 | Дата: Среда, 16.01.2013, 22:43 | Сообщение # 6 |
Группа: Проверенные
Сообщений: 53
Статус: Offline
| Спасибо за разъяснение, давно хотел разобратся.
|
|
| |
Sandor | Дата: Четверг, 15.08.2013, 01:50 | Сообщение # 7 |
Группа: Пользователи
Сообщений: 11
Статус: Offline
| Спасибо.
|
|
| |
KoSS_89 | Дата: Четверг, 15.08.2013, 17:29 | Сообщение # 8 |
Группа: Проверенные
Сообщений: 53
Статус: Offline
| А вобще здесь http://bascom.at.ua/load....-1-0-46 целая статья на русском про эти стеки, только нужно зарегестрироваться!
|
|
| |
exersizze | Дата: Пятница, 05.09.2014, 17:51 | Сообщение # 9 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Комментарий к этому "переведу" улыбнул)
|
|
| |
RD3AVJ | Дата: Суббота, 06.09.2014, 20:22 | Сообщение # 10 |
Группа: Свой человек
Сообщений: 175
Статус: Offline
|
|
|
| |