Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
05.12.2005, 12:55
|
|
Прописка
Регистрация: 11.01.2005
Сообщений: 196
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Как уменьшить прошивку кода написанного на С?
Вот попробовал написать программку на С, которая с COM портом общается, команды распознает и отвечает. Подключил библиотеку stdio.h и у меня сразу забивается 60% МК (tn2313).
На АСМе я написал всю прогу рабочего устройства и у меня 53% забито. Во внутренностях С не очень соображаю, поэтому вот такой вопрос. В stdio.h хранятся прототипы функций, а где сами функции. Как-нить можно уменьшит этот код, мне же не нужны все функции которые там описаны. Пробовал это дело в codevison 1.24.5. Облазил в нем все в поисках Delete unused code (dead code), опции с выбором конечного кода (Release) ничего такого не нашел.
|
|
|
|
05.12.2005, 14:30
|
|
Временная регистрация
Регистрация: 10.12.2004
Сообщений: 70
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
Гы.. Дык при линковке вроде подлинковываются тока те функции которые ты юзал, а не все подряд...
|
|
|
|
05.12.2005, 15:26
|
|
Прописка
Регистрация: 11.01.2005
Сообщений: 196
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Сообщение от AlexSVC
|
Гы.. Дык при линковке вроде подлинковываются тока те функции которые ты юзал, а не все подряд...
|
Нда.. немного ошибся. Подключил, но не использую ничего так же 14%... Подключаю delay.h и исполбзую функцию delaym_ms, уже 20%, подключаю stdio.h и использую printf.. сразу до 60%. Взял и написал сам тот же вывод, и у меня занято всего 30% и прием еще тут же поместился. В общем понял все Не поместится в tiny достаточная функциональность из стандартных библиотек С, или я не разобрался с тем как это сделать... А у меня выработалась жажда компактности кода при написании прог под tiny.
|
|
|
|
05.12.2005, 16:41
|
|
tiny2k
Гость
|
2K
Не смешите,на 2к писать с помощью С.
От 8к и выше! Потому как особенность С всегда состояла в выигрыше на больших объемах.
|
|
|
|
05.12.2005, 17:01
|
|
Прописка
Регистрация: 11.01.2005
Сообщений: 196
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: 2K
Сообщение от tiny2k
|
Не смешите,на 2к писать с помощью С.
От 8к и выше! Потому как особенность С всегда состояла в выигрыше на больших объемах.
|
Я в С сильно не разбираюсь, это был мой первый опыт. Теперь и сам понимаю, что нужно много программной памяти.
|
|
|
|
05.12.2005, 19:03
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,381
Сказал спасибо: 1,962
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: 2K
Сообщение от tiny2k
|
Не смешите,на 2к писать с помощью С.
От 8к и выше!
|
Извините, но вы неправы. И на 2к С очнь хорошо работает.
А в том случеае надо бвло просто написать СВОЙ прием- передачу. Займет это от силы 1к. Всякие printf и прочие извраты хороши для PC, а для МК можно все упростить
|
|
|
|
05.12.2005, 21:13
|
|
Прописка
Регистрация: 11.01.2005
Сообщений: 196
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: 2K
Сообщение от nml
|
Извините, но вы неправы. И на 2к С очнь хорошо работает.
|
Ну конечно работает Вопрос в том возможно ли впихнуть все то что хочется на С.
Сообщение от nml
|
А в том случеае надо бвло просто написать СВОЙ прием- передачу. Займет это от силы 1к. Всякие printf и прочие извраты хороши для PC, а для МК можно все упростить
|
А библиотеки которые идут с codevision разве под PC? Я надеялся на то что они оптимизированы под МК.
Ну а если все такого типа извраты писать самому, тогда объясните мне, пожалуйста, прелести написания кода на С. Те же стандартные функции и заготовки я могу написать на АСМе и потом ими пользоваться. Разве что какие-нить вычисления мне быстрее будет сделать на С.
|
|
|
|
05.12.2005, 21:38
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,381
Сказал спасибо: 1,962
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: 2K
Сообщение от graham
|
Ну а если все такого типа извраты писать самому, тогда объясните мне, пожалуйста, прелести написания кода на С. Те же стандартные функции и заготовки я могу написать на АСМе и потом ими пользоваться.
|
Ну на С или на асме - это кому как нравится. Просто тот же прием в кольцевой буфер на С - процедура займет слов этак 40. Ну и слов 30 - чтение из буфера. А может и меньше - особо не смотрел. Помню что мизер.
А хочется "стандартно" - будьте готовы к паре килобайт на этот стандарт.
Лично я предпочитаю написать свое.
Цитата:
|
› Разве что какие-нить вычисления мне быстрее
будет сделать на С.
|
И не просто быстрее, а на порядок быстрее.
|
|
|
|
15.12.2005, 23:42
|
|
Супер-эксперт
Гость
|
Я пишу исключительно на ассемблере, и программы мои на ассемблере аж от 2 до 6.5 раза меньше чем на С. Вопрос на размышление - почему такая разница ??? Во первых многие не до конца разбирают документацию на микроконтроллер. Во вторых компиляторы генерируют весьма громоздкий код. В третьих плохое знание как ассемблера, так и на С можно написать весьма громоздкий код, и даже хуже чем мог сгенерировать на С. В четвертых - не продуманный план реализации библиотеки и излишняя универсальность делает код также громоздким.
-------------------------------------------------
|
|
|
|
16.12.2005, 11:14
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,381
Сказал спасибо: 1,962
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Сообщение от Супер-эксперт
|
Я пишу исключительно на ассемблере, и программы мои на ассемблере аж от 2 до 6.5 раза меньше чем на С. Вопрос на размышление - почему такая разница ???
|
До недвних пор я тоже писал исключительноа на асме (ну и Algorithm Builder - то же асм). Связано это было с дикой человеческой инерционностью. Еще в те времена, когда я только переходил с 8048 на 51 процессор (год этак 93-94) попался в руки какой-то компилятор для 51 процессора. Естественно - поэкспериментировал. И ужаснулся - там построенный код был настолько дубовым, что я компилятор этот затер и в течение многих лет одно лишь упоминание о ЯВУ вызывало отвращение - ведь 51 процессор был тогда единственно доступным, производительность оставляла желать лучшего и потому призодилось каждый такт экономить.
А не так давно посоветовали умные люди посмотреть на IAR. Посмотрел. И остался очень доволен. Местами код - просто песня. Ну, конечно, лишнее есть, но совсем не смертельно. И код программы вовсе не увеличивается в разы. От силы - 1.5. Но скорость разработки - вот тут действительно в разы меняется (ну, ессно, когда освоишь).
Так что советую обратить внимание на этот компилятор, если религиозные принципы не запрещают вам пользоваться скоммунизженным софтом
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:22.
|
|