Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 3123»
Модератор форума: ivan_fd 
Форум Picbasic.ru » Программирование МК » PicBasicPro » У кого короче код? (Кто лучше экономит ресурсы МК?)
У кого короче код?
deskjet Дата: Вс, 15.08.2010, 12:21  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Проведя сравнение размеров кодов PICSimulatorIDE и BascomAVR обнаружил, что BascomAVR генерирует код размер которого в 1,5
раза больше кода PICSimulatorIDE при полной идентичности выполняемых действий на уровне BASIC.
В качестве тестовой использовалась программа типа A+B=C, Portn=C и др.
А как дела с другими компиляторами?


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
ЯНДЕКС Дата: 15.08.2010
DAlexV Дата: Вс, 15.08.2010, 15:46  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Тема уже поднималась, но заглохла.
http://www.picbasic.ru/forum/19-266-1
Quote (deskjet)
Проведя сравнение размеров кодов PICSimulatorIDE и BascomAVR обнаружил, что BascomAVR генерирует код размер которого в 1,5

Для того чтобы действительно сравнивать компиляторы нужно применять один и тот же проц. тогда все будет объективно. А сравнивать 2 абсолютно разных проца нет смысла.


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
deskjet Дата: Вс, 15.08.2010, 16:14  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Очепяточка вышла: я использовал AVRSimulatorIDE и BascomAVR а процессор atmega8,
после этого мой интерес к BascomAVR понизился.
А вот PICBasic с PICSimulatorIDE ктонибудь сравнивал?
А фишербазик как в этом плане?

PS: когда я тестировал PIC877 и atmega16 PICSimulatorIDE и AVRSimulatorIDE соответственно, то разница в
размере кода составила десятые доли процента в пользу atmega16 при заполнении flash памяти контроллеров на 20%


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430

Сообщение отредактировал deskjet - Вс, 15.08.2010, 16:23
DAlexV Дата: Вс, 15.08.2010, 16:48  |                                                                                                                Сообщение # 4
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (deskjet)
А вот PICBasic с PICSimulatorIDE ктонибудь сравнивал? А фишербазик как в этом плане?

Да вот и мне интересно "у кого короче ..."
Давай сравним. Допустим камень у нас будет 18F452 т.к. рыба заточена только под 18 линейку.
Выкладывай прогу. Давай компильнем и посмотрим


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
deskjet Дата: Вс, 15.08.2010, 17:05  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

У меня пока не установлены ни рыба ни PICBasicPro, нет времени, а программа может быть простой, например
[code]
dim a as byte
dim b as byte
dim c as byte
dim q as byte

a=%00000111
b=%00001111

trisb=%00000000

for q= 0 to 200
c=0
c=a+b
portb=c
next q

for q= 0 to 200
c=0
c=a+b
portb=c
next q

for q= 0 to 200
c=0
c=a+b
portb=c
next q

for q= 0 to 200
c=0
c=a+b
portb=c
next q

и т.д. до заполнения сколь-нибудь значительного объема памяти мк


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430

Сообщение отредактировал deskjet - Вс, 15.08.2010, 17:06
DAlexV Дата: Вс, 15.08.2010, 17:26  |                                                                                                                Сообщение # 6
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Пожалуйста получите.
HEX весит 461 байт
Время прохождения программы видно на рисунке

Все файлы в архиве
Остальные барсики у меня то же не установлены
Прикрепления: 0387599.jpg(155Kb) · 2132921.rar(150Kb)


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
deskjet Дата: Вс, 15.08.2010, 18:05  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

У меня intel HEX для PIC16F877 @20MHz получился 513 байт.
Вообще я имел в виду, что программа должна занимать, минимум, процентов 20-30 памяти мк
для объективности.

файл pic877 exampl: при компиляции 63,8% памяти мк занято, intel hex имеет размер 28,7 КБ (29 477 байт),
контроллер - PIC16F877 @20MHz
(PICSimulatorIDE)

Прикрепления: pic877_exampl.txt(13Kb)


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430

Сообщение отредактировал deskjet - Вс, 15.08.2010, 18:10
DAlexV Дата: Вс, 15.08.2010, 18:42  |                                                                                                                Сообщение # 8
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

еще раз повторюсь
Quote (DAlexV)
т.к. рыба заточена только под 18 линейку.

Рыба не работает с 16 линейкой
Quote (deskjet)
Вообще я имел в виду, что программа должна занимать, минимум, процентов 20-30 памяти мк для объективности.

Да не вопрос. Если есть готовая программа под данный размер, скидывай, переделаю и скомпилирую, а там видно будет.

Жду предложений


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
deskjet Дата: Вс, 15.08.2010, 19:03  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Пожалуйста, PIC18F452 @20MHz, используемая flash память 27,0%, intel hex имеет размер 24,4 КБ (25 051 байт)
(PICSimulatorIDE)
Прилагаю файл тхт для самостоятельной компиляции фишербазиком
Прикрепления: pic18f452_examp.txt(13Kb)


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
DAlexV Дата: Вс, 15.08.2010, 19:36  |                                                                                                                Сообщение # 10
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (deskjet)
PIC18F452 @20MHz, используемая flash память

У меня получилось 18,3%
Hex весит 16.5Kb
Время прохода программы 116.72 ms
Если бы не было WaitUs 100 прошла бы быстрее
Следующий шаг. LCD 16*2
В первой строке "Hello World"
Во второй "PicBasic.ru"
Прикрепления: Test_1.rar(45Kb)


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)

Сообщение отредактировал DAlexV - Пн, 16.08.2010, 19:21
DAlexV Дата: Вс, 15.08.2010, 20:08  |                                                                                                                Сообщение # 11
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Выкладываю свои результаты:
Использование проца 1,59%
Hex весит 1,53Kb
Время прохода программы 164.06ms
Фото и файлы прилагаю
Прикрепления: 8093210.jpg(195Kb) · LCD.rar(162Kb)


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
ivan_fd Дата: Вс, 15.08.2010, 22:48  |                                                                                                                Сообщение # 12
Группа: Модераторы
Ранг:  Специалист
Сообщений: 899
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Мои результаты. Компилятор Протон.
Процессор 18F452
Использование Flash 0,95%
Памяти данных 0,59%
HEX весит 993 байт.
Время прохода программы 22.111мс

Прикрепления: LCD.zip(48Kb) · 9258181.gif(16Kb)


Меня все время преследуют умные мысли...но я быстрее!!!
DAlexV Дата: Пн, 16.08.2010, 08:34  |                                                                                                                Сообщение # 13
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

У нас появился новый претиндент на победу. ivan_fd, а как насчет проги из 9 поста.
Прокомпилируй пожалуйста и выложи результаты.


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
deskjet Дата: Пн, 16.08.2010, 09:27  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

А мне что компилировать на PICSimulatorIDE? Нужен файл тхт для вставки в окно базик редактора.
Следует избегать уникальных для каждой среды инструкций типа LCD.WriteAT


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
ivan_fd Дата: Пн, 16.08.2010, 10:54  |                                                                                                                Сообщение # 15
Группа: Модераторы
Ранг:  Специалист
Сообщений: 899
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Quote (deskjet)
А мне что компилировать на PICSimulatorIDE? Нужен файл тхт для вставки в окно базик редактора.

У PICSimulatorIDE есть процедуры для вывода на LCD? Если есть то их и используйте. Я же в Прготон не засунул файл
DAlexV, а сам переписал под Протон.

Quote (DAlexV)
Время прохода программы 11.72ms

Вы ошиблись, время 116.72!

На коде из поста №9 Протон выдал такие результаты:

Сначала просто скомпилировал код ->
Использование Flash 20,73%
Памяти данных 0,39%
HEX весит 19222 байт.
Время прохода программы 132.84мс

Потом включил первый уровень оптимизации ->
Использование Flash 18,26%
Памяти данных 0,39%
HEX весит 16939 байт.
Время прохода программы 116.72мс

Прикрепления: KOD_SIZE.zip(81Kb)


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Пн, 16.08.2010, 10:55
Форум Picbasic.ru » Программирование МК » PicBasicPro » У кого короче код? (Кто лучше экономит ресурсы МК?)
Страница 1 из 3123»
Поиск: