Jabus
-
Постов
11 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Сообщения, опубликованные Jabus
-
-
-
-
-
5 часов назад, my504 сказал:
Это ВСЕГО четыре слова. Чтобы они суммировались, нужна вложенность функций.
И таки да, если ОЗУ крошечное, то оно может быстро закончиться. И произойдет это совсем не из-за стека.
ОЗУ нужно выбирать под задачу и используемый язык написания кода.
Ну и учитывать уровень оптимизации, канешна.
если не ошибаюсь стек идет с конца озу и ниже, и если будет 3-4 вложенные функции то 6*4=24 байта, если там будут лежать переменные то он и покоцает.
0 -
void u32_color(uint32_t h){
R_color=*(h+0);
G_color=*(h+1);
B_color=*(h+2);
}18 часов назад, солар сказал:Оставляем на стеке адрес. Остается вопрос - зачем два раза.
Сишную программу можно увидеть?
17 часов назад, my504 сказал:четыре раза pop r0 перед выходом исключают переполнение, выравнивая количество записей-чтений стека.
считай при выполнение каждой такой функции минимум 6 байт в озу,ну а если много таких функций будет? стек может залезть на переменные... в attiny13 такое запросто провернуть, там всего 64 байта.
0 -
-
там таких нет... буду значит переходить в ISIS
0 -
Приспичило мне опять написать про тинкер кад. на сей раз я уже поставил 2 осциллографа, чтобы не писали "а как же ты видешь ты что они ни работают?7??7?".
на первом осциллографе видно как дергает с помощью "sbi, cbi", на втором как с помощью "out".(если прям совсем не понятно через "out" - работает, "sbi, cbi" - нет)
0 -
-
rcall
в AVR
Опубликовано
я предположил т.к. rjmp и jmp переходят по байтам.
но проблемы продолжаются. компилятор что-то делает с командами sts и lds, если рядом дотрагивались до одних и тех же переменных.