На C тоже надо уметь писать! Например, типичная ошибка - использование printf() - kak результат +4KB минимум! Тренируйтесь!
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
PicoDev2
19 сентября 2004 г. 05:45
В ответ на:
все равно странно. Давным-давно делал карманный частотомер - так вся программа (ещё для 1816ВЕ35) получилась 2047 байта. Там был программный драйвер для мультиплексного ЖКИ, и расчёт среднеквадратичного отклонения. С плавающей точкой, само собой. А сегодня только начал писать программу на С - уже 1.5 кБ отъедено...
отправлено m_tee 19 сентября 2004 г. 01:04
Составить ответ
|||
Конференция
|||
Архив
Ответы
фигня.. замусорил пока 74 кило из 256 свободных, даже не смотрел пока чем именно ;-)
—
DASM
(19.09.2004 11:53,
пустое
)
пойду тоже, дожую остатки памяти
—
m_tee
(19.09.2004 13:49,
пустое
)
хех, о библиотечных функциях вообще речи нету. В программе нет ни одного библиотечного заголовка. Тут дело в компиляторе. Я сталкивался с одним таким - сложение двухбайтных чисел делалось в подпрограмме, причём эти несчастные 4 байта копировались сначала в программный стек, затем в локальные переменные подпрограммы сложения и так же возвращались обратно. Быстродействие было просто охренеть.
—
m_tee
(19.09.2004 06:07,
пустое
)
Так это был не компилятор! это урод какой-то!
—
PicoDev2
(19.09.2004 07:43,
пустое
)
сами вы уроды, самая обычная реентрантная функция. Что еще компилятору по вашему делать ? Может вы будете эту функцию вызывать из прерываний ? А быстродействие.... Нехрен для 8битных тормозных уродцев тогда на С писать, если быстродействие так нужно
—
DASM
(19.09.2004 11:50,
пустое
)
По-нашему, если компилятор хотел реентрантно складывать, ему следовало бы сохранить собственные регистры этой подпрограммы в стеке. А так они при каждом вызове тупо переписываются. Сколько бы ret подряд не было - функция будет отдавать результат последнего сложения. Собственно для устранения последствий этого бага мне приборчик и приносили
—
m_tee
(19.09.2004 13:44,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru