Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: sdcc 3.0
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
_Pasha
Всем привет!
Если у кого есть более-менее серьезные работы, точеные под sdcc для пиков, отпишитесь плз - мнение, что стало лучше.
Сам пристально и давно слежу за ними, по делать вещи из-под сабжа стремновато, боюсь, не хватит оптимизатора. Но, может быть это время придет скоро? А то некрочип С18 порядком забадал.
Спасибо.
filonov
Начал проект с нуля на SDCC пока нормально, НО есть и вопросы. Не заработал printf()
Код
#include <pic18fregs.h>
#include  <stdio.h>
#include <usart.h>

void main(void)
{
    usart_open(
           USART_TX_INT_OFF
        & USART_RX_INT_OFF
        & USART_BRGH_HIGH
        & USART_ASYNCH_MODE
        & USART_EIGHT_BIT,
           79
        );

    stdout = STREAM_USART;     // Direct outout to the USART

    printf("Hello World\n");
}

исходник
выдает
Код
.....
missing definition for symbol "_stdout", required by "test.o"
missing definition for symbol "_printf", required by "test.o"
.....
*** Exited with status: 1 ***


AHTOXA
Цитата(filonov @ Dec 21 2010, 11:25) *
Код
    usart_open(
           USART_TX_INT_OFF
        & USART_RX_INT_OFF
        & USART_BRGH_HIGH
        & USART_ASYNCH_MODE
        & USART_EIGHT_BIT,
           79
        );

Безотносительно к sdcc. Здесь наверное надо применять не "&", а "|" ?
filonov
Цитата(AHTOXA @ Dec 21 2010, 09:45) *
Безотносительно к sdcc. Здесь наверное надо применять не "&", а "|" ?


Даже если и так, код не компилируеццо... не находит он printf()
AHTOXA
Я с sdcc имел дело несколько лет назад, и работал только с 8051. Но всё же. Как вы линкуете? Какая командная строка для линкера?
sergeeff
Если код не компилируется - не хватает #include <какой-то файл>, где объявлена функция printf (stdio.h или stdlib.h). Если не линкуется - не подключена необходимая библиотека.
filonov
И так. Скрины:
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

Опции - все на автомате:
Compiler:: -m%FAMILY -%DEVICE -V --debug -I$(SRCPATH) -c %I
Linker:: -m%FAMILY -%DEVICE -V --debug -Wl-c -Wl-m $LKR(-Wl-s%LKR) -I$(SRCPATH) -o%O %OBJS %LIBS
Librarian:: -c %O %OBJS %LIBS
-------------
Как PikLab-у "найти" библиотеки и ассемблер?
Добавить в Librarian-Custom Options:: -L "/usr/share/sddc/lib/pic16"
?? или я что-то путаю?
AHTOXA
У-у-у. Похоже, что я вам не помощникsad.gif Я даже не догадываюсь, что это за скрины.
filonov
Цитата(AHTOXA @ Dec 23 2010, 10:00) *
У-у-у. Похоже, что я вам не помощникsad.gif Я даже не догадываюсь, что это за скрины.


это скрины IDE PikLab

ну Вы мне просто со скриптами линкера подскажите, если можно. От оболочки то особо полет не нарушится.
Сергей Борщ
QUOTE (filonov @ Dec 23 2010, 01:12) *
Как PikLab-у "найти" библиотеки и ассемблер?
Добавить в Librarian-Custom Options:: -L "/usr/share/sddc/lib/pic16"
?? или я что-то путаю?
Путаете. С PikLab не работал, но строка -L "путь" означает добавление линкеру пути поиска библиотек. А ассемблер вызывается из makefile. Прописан ли у вас путь к ассемблеру и библиотекарю в PATH? Находятся ли gplib, gpasm при запуске из командной строки?
_Pasha
Цитата(filonov @ Dec 23 2010, 02:12) *
И так. Скрины:

А gputils у Вас стоЯт ваще-то?
filonov
Цитата(_Pasha @ Dec 23 2010, 11:35) *
А gputils у Вас стоЯт ваще-то?


да, gputils есть и в опшинсах ихних все находится

Цитата(Сергей Борщ @ Dec 23 2010, 11:21) *
Путаете. С PikLab не работал, но строка -L "путь" означает добавление линкеру пути поиска библиотек. А ассемблер вызывается из makefile. Прописан ли у вас путь к ассемблеру и библиотекарю в PATH? Находятся ли gplib, gpasm при запуске из командной строки?


gplib gpasm c командной строки находятся.
А вот что с опциями:
Компилятор
Нажмите для просмотра прикрепленного файла
Линкер
Нажмите для просмотра прикрепленного файла
-m%FAMILY -%DEVICE -V --debug -Wl-c -Wl-m $LKR(-Wl-s%LKR) -I$(SRCPATH) -o%O %OBJS %LIBS
и либы
Нажмите для просмотра прикрепленного файла
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.