Форум РадиоКот • Просмотр темы - Большой размер прошивки после компиляции
Сообщения без ответов | Активные темы
Страница 2 из 2
[ Сообщений: 34 ]
,
Автор
Сообщение
HHIMERA
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Пт фев 15, 2013 12:27:51
Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34Сообщений: 4583Откуда: ЮВ
Рейтинг сообщения: 0
Kavka писал(а):
А если нету makefile-а? Здравствуте грабли!?
Настраивал прямо в 4-ой студии... и нет никаких граблей...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Вернуться наверх
Реклама
Kavka
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Пт фев 15, 2013 13:27:06
Мудрый кот
Карма: 24
Рейтинг сообщений: 286
Зарегистрирован: Чт июн 10, 2010 08:55:35Сообщений: 1810Откуда: Сибирские Афины
Рейтинг сообщения: 0
Я об этом строчкой выше написал.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Вернуться наверх
Реклама
dem66
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Пт фев 15, 2013 19:09:24
Встал на лапы
Зарегистрирован: Ср окт 26, 2011 13:38:13Сообщений: 141
Рейтинг сообщения: 0
Ну откомпилировал я с помощью мейк файла, результат 9,8Кб
Код:
TARGET = tar F_CPU = 10000000 CSRC = freq.c MCU_TARGET = atmega8 MCU = atmega8 ASRC = OPTIMIZE = -Os -mcall-prologues CC = avr-gcc DEFS = LIBS = -lm DEBUG = dwarf-2 OBJCOPY = avr-objcopy CFLAGS = -g -mmcu=$(MCU) -Wall -Wstrict-prototypes #---------- all: freq.hex #---------- freq.hex : freq.out $(OBJCOPY) -R .eeprom -O ihex freq.out freq.hex freq.out : freq.o $(CC) $(CFLAGS) -o freq.out -Wl,-Map,freq.map freq.o freq.o : freq.c $(CC) $(CFLAGS) -Os -c freq.c #---------- clean: rm -f *.o *.map *.out #----------
_________________ Это не хвост, это антенна
Вернуться наверх
shads
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Пт фев 15, 2013 20:02:49
Опытный кот
Карма: 8
Рейтинг сообщений: 106
Зарегистрирован: Ср фев 22, 2012 01:25:21Сообщений: 882
Рейтинг сообщения: 0
Какой смысл приводить размер файла HEX ?????
Можно же в человеческом виде инфу давать, как то так:
Цитата:
Program: 3592 bytes (43.8% Full) Data: 270 bytes (26.4% Full)
Вернуться наверх
Реклама
urry
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Пт фев 15, 2013 20:03:10
Сверлит текстолит когтями
Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48Сообщений: 1262Откуда: Винница
Рейтинг сообщения: 0
неплохо было бы еще его запустить пы сы Я сдаюсь, меня победили.
Вложения:
kkot.zip [17 KiB]
Скачиваний: 135
Вернуться наверх
Реклама
dem66
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Пт фев 15, 2013 20:40:46
Встал на лапы
Зарегистрирован: Ср окт 26, 2011 13:38:13Сообщений: 141
Рейтинг сообщения: 0
Код:
bash-4.1$ make all rm -rf *.o tar.elf *.eps *.bak *.a rm -rf *.lst *.map rm -rf tar.hex avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=atmega8 -c -o main.o main.c main.c: In function 'SetFreq': main.c:17: warning: statement with no effect avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=atmega8 -Wl,-Map,tar.map -o tar.elf main.o -lm avr-objdump -h -S tar.elf > tar.lst avr-objcopy -j .text -j .data -O ihex tar.elf tar.hex avr-size -C --mcu=atmega8 tar.elf avr-size: invalid option -- 'C' Usage: avr-size [option(s)] [file(s)] Displays the sizes of sections inside binary files If no input file(s) are specified, a.out is assumed The options are: -A|-B --format={sysv|berkeley} Select output style (default is berkeley) -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex -t --totals Display the total sizes (Berkeley only) --common Display total size for *COM* syms --target=<bfdname> Set the binary file format @<file> Read options from <file> -h --help Display this information -v --version Display the program's version avr-size: supported targets: elf32-avr elf32-little elf32-big srec symbolsrec tekhex binary ihex make: *** [size] Ошибка 1
Это из вашего же архива, вот такие дела
_________________ Это не хвост, это антенна
Вернуться наверх
Реклама
Kavka
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Пт фев 15, 2013 20:55:15
Мудрый кот
Карма: 24
Рейтинг сообщений: 286
Зарегистрирован: Чт июн 10, 2010 08:55:35Сообщений: 1810Откуда: Сибирские Афины
Рейтинг сообщения: 0
Код:
avr-size -C --mcu=atmega8 tar.elf
Уберите "-C" отсюда. И попробуйте ещё раз.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Вернуться наверх
dem66
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Пт фев 15, 2013 21:02:48
Встал на лапы
Зарегистрирован: Ср окт 26, 2011 13:38:13Сообщений: 141
Рейтинг сообщения: 0
Убрал, бестолку.
Код:
bash-4.1$ make all rm -rf *.o tar.elf *.eps *.bak *.a rm -rf *.lst *.map rm -rf tar.hex avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=atmega8 -c -o main.o main.c avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=atmega8 -Wl,-Map,tar.map -o tar.elf main.o -lm avr-objdump -h -S tar.elf > tar.lst avr-objcopy -j .text -j .data -O ihex tar.elf tar.hex avr-size --mcu=atmega8 tar.elf avr-size: unrecognized option '--mcu=atmega8' Usage: avr-size [option(s)] [file(s)] Displays the sizes of sections inside binary files If no input file(s) are specified, a.out is assumed The options are: -A|-B --format={sysv|berkeley} Select output style (default is berkeley) -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex -t --totals Display the total sizes (Berkeley only) --common Display total size for *COM* syms --target=<bfdname> Set the binary file format @<file> Read options from <file> -h --help Display this information -v --version Display the program's version avr-size: supported targets: elf32-avr elf32-little elf32-big srec symbolsrec tekhex binary ihex make: *** [size] Ошибка 1
Кстати вот немного подправленый вариант прошивки.
Спойлер Код:
#define F_CPU 10000000UL #define TIK 0.0000001 #include <stdio.h> #include <avr/io.h> int timer0; int timer1; int presc; int SetFreq(char set){ float tik = (float)presc * TIK; float period = (256.0-(float)timer0)*tik; float freq = (1.0/period)/2.0; freq = freq+10.0; int temp = (int)(256.0-(((1.0/freq)/tik)/2.0)); if(temp>0 && temp<=256){ timer0 = temp; } return 1; } int main(void){ timer0 = 256-161; timer1 = 999; presc = 256; SetFreq('1'); while(1) { //_delay_ms(500); } }
_________________ Это не хвост, это антенна
Вернуться наверх
Kavka
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Пт фев 15, 2013 21:09:27
Мудрый кот
Карма: 24
Рейтинг сообщений: 286
Зарегистрирован: Чт июн 10, 2010 08:55:35Сообщений: 1810Откуда: Сибирские Афины
Рейтинг сообщения: 0
Елки-палки, вы что, совсем не разбираетесь чего оно ругается?
(смайлик чуть не забыл)
Уберите ещё "--mcu=atmega8"
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Вернуться наверх
Реклама
dem66
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Пт фев 15, 2013 21:43:01
Встал на лапы
Зарегистрирован: Ср окт 26, 2011 13:38:13Сообщений: 141
Рейтинг сообщения: 0
Все отображается.
Немного преписал прошивку
Спойлер Код:
#define F_CPU 10000000UL #define TIK 0.0000001 #include <stdio.h> #include <avr/io.h> #include <avr/interrupt.h> int timer0; int timer1; int presc; int SetFreq(char set){ float tik = presc * TIK; float freq = (1/((256-timer0)*tik))/2; freq = freq+10; int temp = (int)(256-(((1/freq)/tik)/2)); if(temp>0 && temp<=256){ timer0 = temp; //printf("%d", temp); //puts("\r\n"); } return 1; } int main(void){ timer0 = 256-161; timer1 = 999; presc = 256; SetFreq('1'); while(1) { //_delay_ms(500); } }
Код:
text data bss dec hex filename 1316 0 6 1322 52a tar.elf
Что еще можно сделать с теми вычислениями, те формулы что писали выше немного не те
_________________ Это не хвост, это антенна
Вернуться наверх
Kavka
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Сб фев 16, 2013 14:52:53
Мудрый кот
Карма: 24
Рейтинг сообщений: 286
Зарегистрирован: Чт июн 10, 2010 08:55:35Сообщений: 1810Откуда: Сибирские Афины
Рейтинг сообщения: 0
Рад за вас, что получилось. А что, Ser60 ошибся в своих выкладках?
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Вернуться наверх
HHIMERA
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Сб фев 16, 2013 15:50:41
Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34Сообщений: 4583Откуда: ЮВ
Рейтинг сообщения: 0
Вернуться наверх
dem66
Заголовок сообщения: Re: Большой размер прошивки после компиляции
Добавлено: Сб фев 16, 2013 16:02:58
Встал на лапы
Зарегистрирован: Ср окт 26, 2011 13:38:13Сообщений: 141
Рейтинг сообщения: 0
та чтото там с temp и freq непонятно.
Ну например
Цитата:
2. Формулу для temp int temp = (int)(256.0-(((1.0/freq)/tik)/2.0)); можно переписать в виде temp = 256 - (tik/freq)/2
int temp = (int)(256-(((1/120)/0.0000257)/2)) = 93.872892348
а он пишет 256 - (0.0000257/120)/2 = 255.999999893
93 и 255 разные вещи.
Ну или я чегото не понимаю
_________________ Это не хвост, это антенна
Вернуться наверх
Страница 2 из 2
[ Сообщений: 34 ]
,
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения