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

CCS 3.236, MPLAB 7.21 и компилирането на проект от няколко с
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=1454
Страница 1 от 1

Автор:  jony++ [ Вто Дек 20, 2005 6:00 pm ]
Заглавие:  CCS 3.236, MPLAB 7.21 и компилирането на проект от няколко с

От известно време използвам компилаетора CCS във средата на MPLAB и досега съм нямал проблем докато програмата се намираше в един *.с файл. За по-удобно обаче реших да си разделя нещата на няколсо *.с файлчета задно със съответинтите *.h файлчета, както си му е там редът, да обаче се оказа че като прибавя въпросните *.с файлчета към проекта те се компилират отделно и в крайна сметка няма такова чудо като линкер, което да ги свърже. Ефекта е разни съобщения за грешка от рода на Line 23(1,2): A #DEVICE required before this line.
Имали някой опит в тази насока и изобщо възможно ли е да се радели програмата на няколко *.с файла при тази комбинация от среда и компилатор?
[/i]

Автор:  Nikola Kirov [ Вто Дек 20, 2005 6:08 pm ]
Заглавие: 

Ами #include "съответния .h фаил" ?

Автор:  Реконструктор [ Вто Дек 20, 2005 6:29 pm ]
Заглавие: 

Хедърите също трябва да са включени в проекта.

Автор:  jony++ [ Вто Дек 20, 2005 8:00 pm ]
Заглавие: 

има си и
#include <*.h>
и хедърите също са добавени към проекта и все тая.

Пробвах с
#include <*.c> без да използвам хедъри - същата история.

В един чуждоезичен форум споменаваха, че проблема идвал от там че отделните *.с файлове се компилирали поотделно, но нямало линкер който да ги свърже /това е в случая когато се използва средата на MPLAB, когато си се използва средата на CSS-а няма проблем/. Пак във въпросния форум споменаха за някакви настройки които трябвали да се направят на MPLAB, но небяха написали какви точно.

Автор:  Nikola Kirov [ Вто Дек 20, 2005 8:41 pm ]
Заглавие: 

Е добре ако деиствително ти е такъв проблема компилираи си директно в средата на CCS. От там няма начин да не се компилира всичко правилно.

Автор:  jony++ [ Вто Дек 20, 2005 9:37 pm ]
Заглавие: 

:P :P :P Да, но там няма дебъгер :wink: :wink: :wink:
Сега ще кажете "Капризи!". Така си е 8)

Автор:  Nikola Kirov [ Вто Дек 20, 2005 9:51 pm ]
Заглавие: 

Ами то там може и да си генерираш фаил с които да дебъгваш в MPLAB-a. И да си ги ползваш еновременно CCS-a и MPLAB-a. Преди с IAR-a така работих но вече не се сещам в какъв формат трябваше да му кажеш да го направи компилатора че да го разбира MPLAB-a.

Автор:  ToHu [ Вто Дек 20, 2005 10:35 pm ]
Заглавие: 

Какъв дебъгер няма, като пушка си работи с преработения ICD модул на microchip и то подобре отколкото Mplab псоред мен.

Автор:  the_real_maniac [ Вто Дек 20, 2005 10:47 pm ]
Заглавие: 

jony++ написа:
има си и
#include <*.h>
и хедърите също са добавени към проекта и все тая.

Пробвах с
#include <*.c> без да използвам хедъри - същата история.

В един чуждоезичен форум споменаваха, че проблема идвал от там че отделните *.с файлове се компилирали поотделно, но нямало линкер който да ги свърже /това е в случая когато се използва средата на MPLAB, когато си се използва средата на CSS-а няма проблем/. Пак във въпросния форум споменаха за някакви настройки които трябвали да се направят на MPLAB, но небяха написали какви точно.



ми съмнявам се файловете - програмите да си ги държиш в директориите на самият компилатор , така че не са му в пътя (PATH, в който търси) => трябва да ползваш " " , а не < > относно пътя на допълнителните файлове.


да кажем:

c:\mcuprojects\my\prog12\main.c
c:\mcuprojects\my\prog12\some.c
c:\mcuprojects\my\prog12\other.c

в main.c

трябва да имаш:

#include "some.c"
#include "other.c"

може и "c:\absolutePATH"

а ако са и в предишна или друга категория съответно

c:\mcuprojects\my\prog12\main.c
".\..\some.c" = c:\mcuprojects\my\some.c

и т.н

поне това мисля си изпуснал .. успех !

Автор:  ToHu [ Вто Дек 20, 2005 11:07 pm ]
Заглавие: 

#include "In_Out.c"
#include "setup_sensors.c"
#include "menu.c"

ето така си се добавят в CCS, път не съм задал, но всъщност фаиловете са в директориата където е и проекта,съответно предполагам то само си е указало тази директориа.

а предполагам си направил нешо от сорта в модулите които инклудваш:

#ifndef __setup_sensor__
#define __setup_sensor__
routine ()
#endif

Автор:  jony++ [ Вто Дек 20, 2005 11:22 pm ]
Заглавие: 

Точно #include "*.c" използвам, това със <> по погрешка съм го написал тук във форума :oops:
А неща от сорта на
#ifndef __setup_sensor__
#define __setup_sensor__
routine ()
#endif
нямам, само routine();

Благодаря на Никола за идеята да компилирам в CCS-а а с генерирания от него файл да дебъгвам в MPLAB. Тази възможност бях я заблравил :oops: .

Цитат:
Какъв дебъгер няма, като пушка си работи с преработения ICD модул на microchip и то подобре отколкото Mplab псоред мен.

Е това не е ли хапдуерен дебъгер, аз за софтуерен говорех :roll: [/quote]

Автор:  ToHu [ Сря Дек 21, 2005 12:41 am ]
Заглавие: 

ами при мен без def-вете не ще да компилира другте файлове независимо къде, всъщност, в CCS не ще, но по същата логика и в MPLAB би трябвало да не може. Това го открих преди време на по стара версия, но рпедполагам и в новите няма д аиска няма ли го това, а и може би е нормално да го рпави, имайки предвид и другте му странности.

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