Отговори на тема  [ 4 мнения ] 
Намаляване размера на кода 
Автор Съобщение
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение Намаляване размера на кода
Здравейте

След помощта на съфорумниците успях да подкарам флоат аритметиката. MPLABa все още не успявам да го накарам константите да ги изкарва правилно но поне променливите излизат вярно. И sprintf() работи. Голямо улеснение. Всичко е наред, програмата си работи ОК. Обаче на прототипския процесор. А той е с памет за 8000 инструкци. В момента използвам ≈3500инструкции. Всички оптимизации са включени. Дали ще е възможно да намаля кода на програмата като изключа по някакъв начин функциите които не се използват. Примерно:

Цитат:
...
Warning[520] : function "_calc_dewpoint" is never called
Warning[520] : function "flmul_x" is never called
Warning[520] : function "ftmul_x" is never called
Warning[520] : function "fldiv_x" is never called
Warning[520] : function "ftdiv_x" is never called
Warning[520] : function "altofl" is never called
Warning[520] : function "awtofl" is never called
Warning[520] : function "_s_read_statusreg" is never called
Warning[520] : function "altoft" is never called
Warning[520] : function "lltoft" is never called
Warning[520] : function "_frexp" is never called
Warning[520] : function "_eval_poly" is never called
Warning[520] : function "flsub" is never called
Warning[520] : function "flmul" is never called
Warning[520] : function "fldiv" is never called
Warning[520] : function "_log" is never called
Warning[520] : function "_s_softreset" is never called
Warning[520] : function "fladd_x" is never called
Warning[520] : function "ftadd_x" is never called
Warning[520] : function "_log10" is never called
Warning[520] : function "_calc_dewpoint" is never called
Warning[520] : function "flmul_x" is never called
Warning[520] : function "ftmul_x" is never called
Warning[520] : function "fldiv_x" is never called
Warning[520] : function "ftdiv_x" is never called
Warning[520] : function "altofl" is never called
Warning[520] : function "awtofl" is never called
Warning[520] : function "_s_read_statusreg" is never called
Warning[520] : function "altoft" is never called
Warning[520] : function "lltoft" is never called
Warning[520] : function "_frexp" is never called
Warning[520] : function "_eval_poly" is never called
Warning[520] : function "flsub" is never called
Warning[520] : function "flmul" is never called
Warning[520] : function "fldiv" is never called
Warning[520] : function "_log" is never called
Warning[520] : function "_s_softreset" is never called
Warning[520] : function "fladd_x" is never called
Warning[520] : function "ftadd_x" is never called
Warning[520] : function "_log10" is never called
...


Това ми е началото на програмата:
Код:
#include <htc.h>
#include <stdio.h>
#include <math.h>
#include "delay.c"
#include "delay.h"
#include "s_lcd.h"
#include "sht11.h"


Забелязвам че примерно като изтрия функциите за закъснение от delay.c, който не ползвам, размера на кода намалява. Не знам дали със math.h и stdio.h ще се получи същият ефект. А иначе доста функции не се използват.

Използвам HI-TECH PICC 9.50.
Предварително благодаря на всички отговорили :)


Пон Дек 17, 2007 12:42 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Мар 08, 2006 2:12 pm
Мнения: 2017
Местоположение: Котел
Мнение 
Не съм светило в С-то но предполагам че неизползваните функции не се включват в кода и не се компилират, поне по мои наблюдения, иначе щеше да е тъпо ;)


Пон Дек 17, 2007 9:33 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Апр 04, 2006 5:13 pm
Мнения: 41
Мнение 
Както казва milenjs функциите от библиотеките, които не се използват не се компилират и не трябва да влияят на размера на кода. Моят компилатор не вади дори warning. В случай, че сам съм писал някакви функции и след това не ги извиквам, компилатора предупреждава, но отново не ги компилира.


Пон Дек 17, 2007 5:03 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение 
@lucifer: Надявам се използваш глагола "компилирам" в оригиналното му значение, а не текущото (всеизвестно), иначе твърдението ти е грешно.


Пон Дек 17, 2007 5:31 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни