Отговори на тема  [ 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 регистрирани и 320 госта


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

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