Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 06.02.2018, 11:31   #26
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 44
Сообщений: 415
Вес репутации: 243/31
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: PIC18F25k80 vs PIC18F26k80.

Цитата:
Сообщение от siarzhuk Посмотреть сообщение
С опциями remove dead code / remove unreachable code уже игрались?
нет. В свойствах проекта не нашел ничего похожего... где оно?
у меня C18 3.47

тупанул.
оптимизации у меня все включены...
но напротив всех пунктов стоит N/A на сером фоне
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 06.02.2018, 12:32   #27
siarzhuk
Senior Member
 
Аватар для siarzhuk
 
Регистрация: 08.11.2014
Возраст: 48
Сообщений: 167
Вес репутации: 1161/30
siarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud of
По умолчанию Re: PIC18F25k80 vs PIC18F26k80.

Цитата:
Сообщение от hfmscan Посмотреть сообщение
но напротив всех пунктов стоит N/A на сером
фоне
Я смотрел по первому попавшемуся в гугле мануалу http://ww1.microchip.com/downloads/e...ide_51288d.pdf - раздел "4.Оптимизации" - там опции командной строки указаны, в крайнем случае можно вручную их прописать если есть такая возможность. Но если серое - возможно ваша версия не поддерживает этого ещё.
siarzhuk вне форума   Ответить с цитированием
Старый 06.02.2018, 12:59   #28
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 44
Сообщений: 415
Вес репутации: 243/31
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: PIC18F25k80 vs PIC18F26k80.

эт я не разобрался в среде, если поставить оптимицию custom то появляются галки и можно разные методы включать\отключать... но вот тем не менее это не особо помогает, т.е. пока модуль не отключишь - все равно содержимое включает...
ладно, фиг с ним, буду писать #ifdef
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 06.02.2018, 13:02   #29
siarzhuk
Senior Member
 
Аватар для siarzhuk
 
Регистрация: 08.11.2014
Возраст: 48
Сообщений: 167
Вес репутации: 1161/30
siarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud of
По умолчанию Re: PIC18F25k80 vs PIC18F26k80.

Цитата:
Сообщение от hfmscan Посмотреть сообщение
т.е. пока модуль не отключишь - все равно содержимое включает... ладно, фиг с ним, буду писать #ifdef
Либо оптимальнее рассортировать функции по разным модулям. :-)
siarzhuk вне форума   Ответить с цитированием
Старый 06.02.2018, 13:06   #30
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 44
Сообщений: 415
Вес репутации: 243/31
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: PIC18F25k80 vs PIC18F26k80.

так ведь так и подучается... условно в модуле 3 функции. я убрал вызовы из основной программы на эти функции и они как бы изолированы... я уверен что если я вместо одного файла С сделаю 3 (под каждую функцию) то это ничего не изменит...
возможно надо как-то с H файлом поиграться, ибо когда создаешь новый H файл, то в шаблоне определены дефайны вот так

Цитата:
/*
* File: unit1.h
* Author: hfmscan
*
* Created on 6 Февраль 2018 г., 14:06
*/

#ifndef UNIT1_H
#define UNIT1_H

#ifdef __cplusplus
extern "C" {
#endif




#ifdef __cplusplus
}
#endif

#endif /* UNIT1_H */

а я все это убиваю и включаю тупо туда объявления функций и все.
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 06.02.2018, 14:47   #31
siarzhuk
Senior Member
 
Аватар для siarzhuk
 
Регистрация: 08.11.2014
Возраст: 48
Сообщений: 167
Вес репутации: 1161/30
siarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud ofsiarzhuk has much to be proud of
По умолчанию Re: PIC18F25k80 vs PIC18F26k80.

Цитата:
Сообщение от hfmscan Посмотреть сообщение
так ведь так и подучается... условно в модуле 3 функции. я убрал вызовы из основной программы на эти функции и они как бы изолированы... я уверен что если я вместо одного файла С сделаю 3 (под каждую функцию) то это ничего не изменит...
Зависит от того как работает линкер. В первом случае компилятор создаст один *.o файл и передаст его линкеру, во втором три *.о файла и передаст их линкеру. Будь у линкера зачатки оптимизации - он не включит в образ программы те *.о файлы которые не содержат используемых функций. А в случае одного *.о файла - придётся включить всех. [Более продвинутые компиляторы создают внутри *.о т.н. секции - но принцип тот-же]

Но в любом случае подробности "на месте" лучше [и легче] проверять по map-файлу - подружитесь с ним и туман рассеется. :-)

Цитата:
Сообщение от hfmscan Посмотреть сообщение
возможно надо как-то с H файлом поиграться,
H файл на особенности оптимизации линкером вряд-ли окажет какое влияние - после препроцессора он перестает существовать. Даже компилятор уже работает только с одним общим С файлом "собранным" из всех включённых H файлов.

Цитата:
Сообщение от hfmscan Посмотреть сообщение
ибо когда создаешь новый H файл, то в шаблоне определены дефайны вот так
Код:
#ifndef UNIT1_H
#define    UNIT1_H
[.....]
#endif    /* UNIT1_H */
это т.н. Header guard - он нужен для предотвращения повторного включения того же самого H файла.

Код:
 #ifdef    __cplusplus
extern "C" {
#endif
[....]
#ifdef    __cplusplus
}
#endif
важен при использовании С модуля в С++ проектах - иначе линкер не сможет связать С-шные имена с С++-ными. Иными словами С компилятор создаст объект кода функции int func1(int n) с именем _func1 а С++-ный с именем [например] n_func1@n. для линкера это разные объекты. extern "C" заставит компилятор проименовать объект правильно.
siarzhuk вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитатор DS18B20 Filya44 Вопросы начинающих 14 12.03.2012 17:39
C18. Как объявить переменную с указанием адреса? FlashBack Продукция MICROCHIP 8 03.05.2011 15:01
Как узнать реальный размер программы? tolusik1984 Продукция MICROCHIP 5 08.05.2010 13:27
Как уменьшить шум источника питания? PClamp Источники питания и силовая электроника 12 09.03.2010 15:19
mcc18 как узнать размер кода и RAM .. atlant Продукция MICROCHIP 2 27.01.2010 19:46


Часовой пояс GMT +3, время: 11:40.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot