Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 05.12.2005, 12:55   #1
graham
Прописка
 
Регистрация: 11.01.2005
Сообщений: 196
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
graham на пути к лучшему
По умолчанию Как уменьшить прошивку кода написанного на С?

Вот попробовал написать программку на С, которая с COM портом общается, команды распознает и отвечает. Подключил библиотеку stdio.h и у меня сразу забивается 60% МК (tn2313).
На АСМе я написал всю прогу рабочего устройства и у меня 53% забито. Во внутренностях С не очень соображаю, поэтому вот такой вопрос. В stdio.h хранятся прототипы функций, а где сами функции. Как-нить можно уменьшит этот код, мне же не нужны все функции которые там описаны. Пробовал это дело в codevison 1.24.5. Облазил в нем все в поисках Delete unused code (dead code), опции с выбором конечного кода (Release) ничего такого не нашел.
Реклама:
graham вне форума  
Непрочитано 05.12.2005, 14:30   #2
AlexSVC
Временная регистрация
 
Регистрация: 10.12.2004
Сообщений: 70
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
AlexSVC на пути к лучшему
По умолчанию

Гы.. Дык при линковке вроде подлинковываются тока те функции которые ты юзал, а не все подряд...
AlexSVC вне форума  
Непрочитано 05.12.2005, 15:26   #3
graham
Прописка
 
Регистрация: 11.01.2005
Сообщений: 196
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
graham на пути к лучшему
По умолчанию

Сообщение от AlexSVC
Гы.. Дык при линковке вроде подлинковываются тока те функции которые ты юзал, а не все подряд...
Нда.. немного ошибся. Подключил, но не использую ничего так же 14%... Подключаю delay.h и исполбзую функцию delaym_ms, уже 20%, подключаю stdio.h и использую printf.. сразу до 60%. Взял и написал сам тот же вывод, и у меня занято всего 30% и прием еще тут же поместился. В общем понял все Не поместится в tiny достаточная функциональность из стандартных библиотек С, или я не разобрался с тем как это сделать... А у меня выработалась жажда компактности кода при написании прог под tiny.
graham вне форума  
Непрочитано 05.12.2005, 16:41   #4
tiny2k
Гость
 
Сообщений: n/a
По умолчанию 2K

Не смешите,на 2к писать с помощью С.
От 8к и выше! Потому как особенность С всегда состояла в выигрыше на больших объемах.
 
Непрочитано 05.12.2005, 17:01   #5
graham
Прописка
 
Регистрация: 11.01.2005
Сообщений: 196
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
graham на пути к лучшему
По умолчанию Re: 2K

Сообщение от tiny2k
Не смешите,на 2к писать с помощью С.
От 8к и выше! Потому как особенность С всегда состояла в выигрыше на больших объемах.
Я в С сильно не разбираюсь, это был мой первый опыт. Теперь и сам понимаю, что нужно много программной памяти.
graham вне форума  
Непрочитано 05.12.2005, 19:03   #6
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: 2K

Сообщение от tiny2k
Не смешите,на 2к писать с помощью С.
От 8к и выше!
Извините, но вы неправы. И на 2к С очнь хорошо работает.
А в том случеае надо бвло просто написать СВОЙ прием- передачу. Займет это от силы 1к. Всякие printf и прочие извраты хороши для PC, а для МК можно все упростить
nml вне форума  
Непрочитано 05.12.2005, 21:13   #7
graham
Прописка
 
Регистрация: 11.01.2005
Сообщений: 196
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
graham на пути к лучшему
По умолчанию Re: 2K

Сообщение от nml
Извините, но вы неправы. И на 2к С очнь хорошо работает.
Ну конечно работает Вопрос в том возможно ли впихнуть все то что хочется на С.
Сообщение от nml
А в том случеае надо бвло просто написать СВОЙ прием- передачу. Займет это от силы 1к. Всякие printf и прочие извраты хороши для PC, а для МК можно все упростить
А библиотеки которые идут с codevision разве под PC? Я надеялся на то что они оптимизированы под МК.
Ну а если все такого типа извраты писать самому, тогда объясните мне, пожалуйста, прелести написания кода на С. Те же стандартные функции и заготовки я могу написать на АСМе и потом ими пользоваться. Разве что какие-нить вычисления мне быстрее будет сделать на С.
graham вне форума  
Непрочитано 05.12.2005, 21:38   #8
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: 2K

Сообщение от graham
Ну а если все такого типа извраты писать самому, тогда объясните мне, пожалуйста, прелести написания кода на С. Те же стандартные функции и заготовки я могу написать на АСМе и потом ими пользоваться.
Ну на С или на асме - это кому как нравится. Просто тот же прием в кольцевой буфер на С - процедура займет слов этак 40. Ну и слов 30 - чтение из буфера. А может и меньше - особо не смотрел. Помню что мизер.

А хочется "стандартно" - будьте готовы к паре килобайт на этот стандарт.

Лично я предпочитаю написать свое.
Цитата:
› Разве что какие-нить вычисления мне быстрее
будет сделать на С.
И не просто быстрее, а на порядок быстрее.
nml вне форума  
Непрочитано 15.12.2005, 23:42   #9
Супер-эксперт
Гость
 
Сообщений: n/a
По умолчанию

Я пишу исключительно на ассемблере, и программы мои на ассемблере аж от 2 до 6.5 раза меньше чем на С. Вопрос на размышление - почему такая разница ??? Во первых многие не до конца разбирают документацию на микроконтроллер. Во вторых компиляторы генерируют весьма громоздкий код. В третьих плохое знание как ассемблера, так и на С можно написать весьма громоздкий код, и даже хуже чем мог сгенерировать на С. В четвертых - не продуманный план реализации библиотеки и излишняя универсальность делает код также громоздким.
-------------------------------------------------
 
Непрочитано 16.12.2005, 11:14   #10
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от Супер-эксперт
Я пишу исключительно на ассемблере, и программы мои на ассемблере аж от 2 до 6.5 раза меньше чем на С. Вопрос на размышление - почему такая разница ???
До недвних пор я тоже писал исключительноа на асме (ну и Algorithm Builder - то же асм). Связано это было с дикой человеческой инерционностью. Еще в те времена, когда я только переходил с 8048 на 51 процессор (год этак 93-94) попался в руки какой-то компилятор для 51 процессора. Естественно - поэкспериментировал. И ужаснулся - там построенный код был настолько дубовым, что я компилятор этот затер и в течение многих лет одно лишь упоминание о ЯВУ вызывало отвращение - ведь 51 процессор был тогда единственно доступным, производительность оставляла желать лучшего и потому призодилось каждый такт экономить.

А не так давно посоветовали умные люди посмотреть на IAR. Посмотрел. И остался очень доволен. Местами код - просто песня. Ну, конечно, лишнее есть, но совсем не смертельно. И код программы вовсе не увеличивается в разы. От силы - 1.5. Но скорость разработки - вот тут действительно в разы меняется (ну, ессно, когда освоишь).

Так что советую обратить внимание на этот компилятор, если религиозные принципы не запрещают вам пользоваться скоммунизженным софтом
nml вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать из cof/hex файл-прошивку srec? code-by Микроконтроллеры, АЦП, память и т.д 4 26.05.2009 23:39
Как сделать вызов ассемблерного кода из си-шной программы? vly67 Микроконтроллеры, АЦП, память и т.д 0 07.05.2008 11:32
Как уменьшить размер памяти под стек? greafuger Микроконтроллеры, АЦП, память и т.д 1 03.04.2008 08:23
Как оформлять в КД прошивку к микросхемам byeloruss Делимся опытом 1 27.06.2007 11:42
[Решено] Уменьшить пульсации Breef Источники питания и свет 8 03.09.2004 06:26


Часовой пояс GMT +4, время: 12:19.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot