Сочувствую! Прямо беда - сплошние C и крутые C++, неудивительно, что объёмы флэша зашкаливают за разумные пределы. Даешь ASM! Сердито, дешево, понятно, предсказуемо.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Неизвестный
19 сентября 2004 г. 00:30
В ответ на:
все равно я С для контроллеров не понимаю, хех...
отправлено m_tee 19 сентября 2004 г. 00:25
Составить ответ
|||
Конференция
|||
Архив
Ответы
два года писал на асме и тоже говорил, пока не попробовал на си, теперь почти всё на си пишу.
—
севастополь
(19.09.2004 00:56,
пустое
)
Дорогой! Это прикладная философия -что понятно, то душе приятно! Я пишу на ASMе по простой причине - нужен автомат, (скелет программы. Что, и на чем будет написана фоновая задача - мне плевать. Поэтому я давно забыл C. Максимум, я пишу в МАТЛАБе алгоритмы, другие транслируют в C, потом правят.
—
Неизвестный
(19.09.2004 01:08,
пустое
)
все равно странно. Давным-давно делал карманный частотомер - так вся программа (ещё для 1816ВЕ35) получилась 2047 байта. Там был программный драйвер для мультиплексного ЖКИ, и расчёт среднеквадратичного отклонения. С плавающей точкой, само собой. А сегодня только начал писать программу на С - уже 1.5 кБ отъедено...
—
m_tee
(19.09.2004 01:04,
пустое
)
Я то-же никак на Ся не могу сесть, но насчет в начале написания прграммы откушено 1,5 КБ == ничего страшного, далее с учетом постепенного скидывания кода библиотек, откусыватья будет все меньше и меньше, а пользовательского программного кода все больше и больше! ;)
—
Make_Pic
(19.09.2004 09:44,
пустое
)
утром обнаружил: MPLAB 6 даже в режиме "Только редактор" (без симулятора) после компиляции загружает в себя отладочный coff-файл в режиме shareExclusive. Ну то есть, если надо загрузить это файл в другой симулятор - закрывай MPLAB. Собака на сене, блин...
—
m_tee
(19.09.2004 14:06,
пустое
)
На C тоже надо уметь писать! Например, типичная ошибка - использование printf() - kak результат +4KB минимум! Тренируйтесь!
—
PicoDev2
(19.09.2004 05:45,
пустое
)
фигня.. замусорил пока 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,
пустое
)
Вы бы ещё что-нибудь портировали. Вместе с библиотеками. Эная таких - рядом седят. Если программная помять меньше 16Кслов, морщат нос - мало!
—
Неизвестный
(19.09.2004 01:12,
пустое
)
Как всегда: сделаешь быстро и плохо - будут помнить, что "плохо". Сделаешь хорошо и медленно - будут помнить, что "медленно". Есть, конечно, вариант "сделать быстро и хорошо и желательно на энтузиазме", но на такое я уже не покупаюсь
—
m_tee
(19.09.2004 01:22,
пустое
)
Есть ещё вариант: Я сдалал бы быстро, а вы сказали, что плохо. Я мог бы сделать хорошо, но вы сказали бы , что долго. Потом вопрос: ну? Как мне делать? Такой подход экономит душевные ресурсы и стимулируетт
—
Неизвестный
(19.09.2004 01:29,
пустое
)
(добавить надо) - на самом деле, С - превосходный язык. Но не там. где каждая микросекунда на счету ИМХО
—
m_tee
(19.09.2004 01:29,
пустое
)
Все зависит от компилятора и умения им пользоваться. После компилятора IAR AVR, например,
—
Bill
(19.09.2004 09:24, 65 байт)
Эх, SM спит. Он бы (наверное) сказал: не умещается программа? Не хватает быстродействия? Так возьмите более продвинутый камень - не экономьте пару баксов на фоне моей зарплаты!
—
Неизвестный
(19.09.2004 01:35,
пустое
)
Не умещается программа? Не хватает быстродействия? Дык возьмите ещё один Итаниум и добавьте его в кластер... :-D
—
m_tee
(19.09.2004 05:57,
пустое
)
Навороченный камень с грузной избыточной программой будет весьма похож на жирную бабищу. Оба в молодости могли бы стать чем-то другим, но уж "что выросло, то выросло"
—
m_tee
(19.09.2004 01:44,
пустое
)
хорших людей и микроконтроллеров должно быть много !
—
DASM
(19.09.2004 12:19,
пустое
)
Во-во! Чтоб не растить телеса, экономьте, и пользуйтесь философией самодисцеплины (да, хоть йогой - если помогает :)
—
Неизвестный
(19.09.2004 01:48,
пустое
)
ХА-ХА-ХА!!! СПИТЕ!
—
(19.09.2004 05:15,
пустое
)
а поспать и вправду не помешало бы. А то хайтек не считает ошибкой отсутствие в не void функции() команды return. А как в результате PIC колбасился !!!
—
m_tee
(19.09.2004 06:16,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru