Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Microchip XC16 XC32 Very Long Compiling Times
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=12976
Страница 1 от 1

Автор:  speedblue [ Пет Юни 06, 2014 12:14 pm ]
Заглавие:  Microchip XC16 XC32 Very Long Compiling Times

Някой да има проблем с твърде бавно компилиране с XC16 или XC32 ? Четох и по форума на Microchip, реват нещо ама вяло и едни странни решения на проблема дават. При мен не работят.
В случая ползвам XC16 и проект (за PIC24F) с доста файлове, а компилатора на всеки файл цикли около три пъти по-дълго в сравнение ако го компилирам примерно на стария C18 (за PIC18F). Пробвах компилатора във Free mode и в Pro mode (кракнат) - разлика никаква, все е бавно, пълна компилация на проекта е между 2.50 мин и 3.00 мин. Така не става да се работи нормално... и после чакай програмирането.
Работата е зле :? :? :?


Ъпдейт
----------
Проблема се решава с активиране на "Use parallel make"
Tools>Options>Embedded>Project Options>Use parallel make

MPLAB® X IDE User’s Guide:
Код:
Use parallel make
(make -j 2n)

Note 1: For MPLAB XC16 or MPLAB C30, Procedural Abstraction needs to be turned off to use parallel make (File>Project Properties,
compiler category, “Optimizations” option category: uncheck “Unlimited procedural abstraction”).

Note 2: MPASMX cannot run under parallel make, either as a toolchain or part of an MPLAB C18 project. The parallel make option is
therefore ignored in projects using MPASMX toolchain or in projects using the C18 toolchain that contain at least one .asm file.

Автор:  Ники [ Пет Юни 06, 2014 1:45 pm ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

Kакво те отказа от CCSPICC?

Автор:  t_i_t_o [ Пет Юни 06, 2014 2:28 pm ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

И аз го имам този проблем, всеки файл се компилира около 2 секунди, което при 30 файла идва минута и нещо... примирил съм се, иначе опитах да го изследвам проблема, стигнах до там че бавенето става в асемблера gcc-as, което е много странно, аз очаквах да е в компилатора... тъпаците някъде са сложили някакъв изкуствен дилей :)

Автор:  sparkybg [ Пет Юни 06, 2014 3:44 pm ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

Освен че се бави, при мен се кара с Kaspersky. Дава ми "access denied", и оставя процес "make.exe" заемащ 13% процесорно време. При всеки следващ опит - по още един процес. Трябва да изключа касперски, да убия тия процеси, и тогава да компилирам.

Отделно, средата като функционалност е супер, ама като изпълнение - пълен шит. С тая Java са се изсрали на метеното - за да пуснеш MCU-то в режим reset, 4 пъти търси PicKit-а и 4 пъти рестартира MCU-то, като цялото това продължава около 4-5 секунди.

Автор:  speedblue [ Пет Юни 06, 2014 4:42 pm ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

Някой да се похвали, че XC16 му компилира бързо или нормално?

А насирането е тотално и ако не вземат някакви мерки близките месеци бая народ ще откажат от техните компилатори.
Иначе средата нистина е доста перспективна, само да оправят тъпизмите.

Ники написа:
Kакво те отказа от CCSPICC?

Нищо не ме е отказало. Екстра си е CCS, компилатора лети, но средата им е боза :) тоест нещо е прекомерна шаренията, пък полза особенна.... и го ползвам с MPLAB X.
В конкретния случай проекта се компилира с Microchip понеже основно работи с TCP/IP стека. А на CCS им е много зелен вградения стек и не рискувам за конкретния проект.
Преди време го тествах, но само като базова функционалност и си работеше.

Автор:  speedblue [ Сря Юни 11, 2014 2:03 am ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

Развитие по темата.

На лаптоп на който никога не е имало MPLAB инсталирах MPLAB X IDE + XC16 free mode
Лаптопа е със следните параметри:
i7 2.2GHz
8 GB RAM
254 GB SSD
64 bit Windows 8

Същия проект който дава ядове на другите машини - те са Win7 32 bit. Ядовете са единствено бавно компилиране.

Проекта се компилира за невероятните 53 сек. като избирам Clean & Build, което е около 3 пъти по-бързо спрямо досегашните ми наблюдения. Частичното компилиране е още по-бързо.
Като ми остане време ще експериментирам с Win7 32bit дали може да тръгне нормално. Все пак е добра новина като цяло, въпроса е да се намери кое му пречи или просто е много чувствителен компилатора.

Автор:  sparkybg [ Сря Юни 11, 2014 10:10 am ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

Пречи му.... средата. Както и по-горе споменах - като функционалност е екстра, като изпълнение - пълен шит.

Автор:  stoyanoff [ Сря Юни 11, 2014 9:05 pm ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

Не знам какво точно ще правиш със стека, но аз до сега проблеми не съм имал със CCS-кия. Единствения кусур, който ми е известен, е свързан с това, че mdd стека им не работи! Използват краден от XC и е несъвместим с TCP/IP. Опитах на няколко пъти да ги осъвместя, но след като набуташ файла, който превежда mdd-то, става мазало. Дори да се коригират грешките не работи и работата е много дебела...
Поздрави!

Автор:  speedblue [ Чет Юни 12, 2014 12:27 am ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

stoyanoff написа:
Не знам какво точно ще правиш със стека, но аз до сега проблеми не съм имал със CCS-кия.
.... Използват краден от XC и е несъвместим с TCP/IP.


Горе долу това са основните услуги които са пуснати. Отделно в самия стек е бърникано и са добавяни разни работи които не ги е можел.
Незнам колко от това работи при CCS, но ако покриват тези неща ще се замисля да го тествам по-сериозно.
А имат ли Bootloader който търкаля TCP/IP стек? Microchip имат такъв но само за PIC18F и преточват през TFTP, 8К от програмната памет струва.

Код:
#define STACK_USE_UART2TCP_BRIDGE      // UART to TCP Bridge application example
#define STACK_USE_ICMP_SERVER         // Ping query and response capability
#define STACK_USE_ICMP_CLIENT         // Ping transmission capability
#define STACK_USE_HTTP2_SERVER         // New HTTP server with POST, Cookies, Authentication, etc.
#define STACK_USE_SSL_SERVER         // 8% SSL server socket support (Requires SW300052)
#define STACK_USE_SSL_CLIENT         // 1% SSL client socket support (Requires SW300052)
#define STACK_USE_DHCP_CLIENT         // Dynamic Host Configuration Protocol client for obtaining IP address and other parameters
#define STACK_USE_SNMP_SERVER         // 8% Simple Network Management Protocol v2C Community Agent
#define STACK_USE_SNMPV3_SERVER      // ?% [SSL] Simple Network Management Protocol v3 Agent
#define STACK_USE_GENERIC_TCP_CLIENT_EXAMPLE   // HTTP Client example in GenericTCPClient.c
#define STACK_USE_GENERIC_TCP_SERVER_EXAMPLE   // ToUpper server example in GenericTCPServer.c
#define STACK_USE_ANNOUNCE         // Microchip Embedded Ethernet Device Discoverer server/client
#define STACK_USE_DNS            // 0% Domain Name Service Client for resolving hostname strings to IP addresses
#define STACK_USE_REBOOT_SERVER      // 1% Module for resetting this PIC remotely.  Primarily useful for a Bootloader.
#define STACK_USE_SNTP_CLIENT         // 1% Simple Network Time Protocol for obtaining current date/time from Internet
#define STACK_USE_DYNAMICDNS_CLIENT      // Dynamic DNS client updater module

Автор:  stoyanoff [ Чет Юни 12, 2014 12:27 pm ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

Ами повечето неща ги има 100%. За другите не съм сигурен понеже не ми се е налагало да ги ползвам никога. За bootloader не съм сигурен - виждал съм из форумите да се обсъждат, но аз не съм използвал за сега, не ми е трябвало.
Поздрави!

Автор:  [ Пет Юни 13, 2014 2:54 am ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

Нямам проблеми, стари и нови компилатори работят еднакво бързо ( статистика от 4-5 машини ). Сравнявам ги например с GCC компилация за ARM, няма разлика. Най-бързо се компилира под Linux, за мен е изненада, че debug с MPLAB X под Linux пердаши без грешка, докато под Windows от 10 опита за debug поне един се скапва, а от време на време се налага рестарт на MPLAB, понякога и на Windows.

Нищо не казахте, дали сте маркирали в MPLAB X да се използват всичките ядра при компилация ? Ако не е маркирана чавката тогава компилацията е значително по-бавна. А какво се получава ако използвате директно Makefile от командния ред ?

sparkybg написа:
Отделно, средата като функционалност е супер, ама като изпълнение - пълен шит. С тая Java са се изсрали на метеното - за да пуснеш MCU-то в режим reset, 4 пъти търси PicKit-а и 4 пъти рестартира MCU-то, като цялото това продължава около 4-5 секунди.

Не е причината Java-та, примерно Eclipse е също 100% Java но там няма такива работи. Най-вероятно кодът е писан от някой разбирач, дето ползва готови библиотечки... Между другото ако използваш PIC32 можеш да изпробваш Segger J-Link, пише че поддържа PIC32, ама от коя среда и как нямам представа. Тук има описание как да се използва Eclipse, GDB и PICKit2/PICKit3 за PIC32. Предполагам, че по подобен начин ще са настройките и с J-Link, само че с неговия си GDB сървър.

Автор:  sparkybg [ Пет Юни 13, 2014 11:14 am ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

¶ написа:
Нищо не казахте, дали сте маркирали в MPLAB X да се използват всичките ядра при компилация ?


Къде е въпросната чавка?

ПП: Въх! Таман го включих. Верно нищо общо. Тенкю.

Сега остана само да преборя да не се кара с Касперски. Интересното е че в работата си работи. Само вкъщи не ще.

Tools->Options->Embedded->Project Options->Use Parallel Make.

Автор:  speedblue [ Пет Юни 13, 2014 1:57 pm ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

¶ написа:
Нищо не казахте, дали сте маркирали в MPLAB X да се използват всичките ядра при компилация ?


Това е! Ефекта е супер! :D
10х

Автор:  t_i_t_o [ Пет Юни 13, 2014 4:31 pm ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

speedblue написа:
¶ написа:
Нищо не казахте, дали сте маркирали в MPLAB X да се използват всичките ядра при компилация ?


Това е! Ефекта е супер! :D
10х

+1 8O
При мен билд тайма от 1 мин стана 15сек, след като взе да използва 4те ядра. Въпреки че си мисли че са 8 и пуска 16 процеса -j16 :)

Автор:  palavrov [ Пет Юни 13, 2014 8:07 pm ]
Заглавие:  Re: Microchip XC16 XC32 Very Long Compiling Times

По добре пускайте GCC с -j без номер - компилатора сам си познава колко нишки има смисъл да ползва ... иначе всеки балък ще бичи -j99 и ще щрака с пръсти :)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/