Например TDA7294

Форум РадиоКот • Просмотр темы - Большой размер прошивки после компиляции
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт окт 23, 2025 01:54:19

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 34 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Большой размер прошивки после компиляции
СообщениеДобавлено: Пт фев 15, 2013 12:27:51 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
Kavka писал(а):
А если нету makefile-а? Здравствуте грабли!?

Настраивал прямо в 4-ой студии... и нет никаких граблей...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Большой размер прошивки после компиляции
СообщениеДобавлено: Пт фев 15, 2013 13:27:06 
Мудрый кот
Аватар пользователя

Карма: 24
Рейтинг сообщений: 286
Зарегистрирован: Чт июн 10, 2010 08:55:35
Сообщений: 1810
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Я об этом строчкой выше написал.

_________________
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: 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
#----------

_________________
Это не хвост, это антенна


Вернуться наверх
 
Не в сети
 Заголовок сообщения: 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)


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Большой размер прошивки после компиляции
СообщениеДобавлено: Пт фев 15, 2013 20:03:10 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 0
неплохо было бы еще его запустить


пы сы Я сдаюсь, меня победили.


Вложения:
kkot.zip [17 KiB]
Скачиваний: 135
Вернуться наверх
 
Не в сети
 Заголовок сообщения: 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


Это из вашего же архива, вот такие дела :(

_________________
Это не хвост, это антенна


Вернуться наверх
 
Не в сети
 Заголовок сообщения: 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 г.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: 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);
   }
}

_________________
Это не хвост, это антенна


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Большой размер прошивки после компиляции
СообщениеДобавлено: Пт фев 15, 2013 21:09:27 
Мудрый кот
Аватар пользователя

Карма: 24
Рейтинг сообщений: 286
Зарегистрирован: Чт июн 10, 2010 08:55:35
Сообщений: 1810
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Елки-палки, вы что, совсем не разбираетесь чего оно ругается? :) (смайлик чуть не забыл)
Уберите ещё "--mcu=atmega8"

_________________
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: 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


Что еще можно сделать с теми вычислениями, те формулы что писали выше немного не те

_________________
Это не хвост, это антенна


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Большой размер прошивки после компиляции
СообщениеДобавлено: Сб фев 16, 2013 14:52:53 
Мудрый кот
Аватар пользователя

Карма: 24
Рейтинг сообщений: 286
Зарегистрирован: Чт июн 10, 2010 08:55:35
Сообщений: 1810
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Рад за вас, что получилось.

А что, Ser60 ошибся в своих выкладках?

_________________
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Большой размер прошивки после компиляции
СообщениеДобавлено: Сб фев 16, 2013 15:50:41 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
dem66 писал(а):
Что еще можно сделать с теми вычислениями, те формулы что писали выше немного не те

http://www.pic24.ru/doku.php/osa/articl ... out_errors

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: 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 разные вещи.

Ну или я чегото не понимаю

_________________
Это не хвост, это антенна


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Большой размер прошивки после компиляции
СообщениеДобавлено: Сб фев 16, 2013 18:25:35 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 618
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3760
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Да, видать он ошибся. Формула для freq:
freq = tic/(2*(256 - timer0))
и тогда
temp = 256 - 1/(2*freq*tic) = 256 - (256 - timer0) /(tic*tic).
Так что-ли (?) Если опять ошибка, попробуйте сами упростить формулу, минимизировав число делений.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 34 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y