реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> sdcc 3.0, кто пробовал?
_Pasha
сообщение Dec 4 2010, 06:35
Сообщение #1


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Всем привет!
Если у кого есть более-менее серьезные работы, точеные под sdcc для пиков, отпишитесь плз - мнение, что стало лучше.
Сам пристально и давно слежу за ними, по делать вещи из-под сабжа стремновато, боюсь, не хватит оптимизатора. Но, может быть это время придет скоро? А то некрочип С18 порядком забадал.
Спасибо.
Go to the top of the page
 
+Quote Post
filonov
сообщение Dec 21 2010, 03:25
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-12-06
Из: Kiev
Пользователь №: 23 502



Начал проект с нуля на 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 ***


Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 21 2010, 03:45
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(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. Здесь наверное надо применять не "&", а "|" ?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
filonov
сообщение Dec 21 2010, 15:36
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-12-06
Из: Kiev
Пользователь №: 23 502



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


Даже если и так, код не компилируеццо... не находит он printf()
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 21 2010, 16:38
Сообщение #5


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Я с sdcc имел дело несколько лет назад, и работал только с 8051. Но всё же. Как вы линкуете? Какая командная строка для линкера?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Dec 21 2010, 18:08
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Если код не компилируется - не хватает #include <какой-то файл>, где объявлена функция printf (stdio.h или stdlib.h). Если не линкуется - не подключена необходимая библиотека.
Go to the top of the page
 
+Quote Post
filonov
сообщение Dec 22 2010, 20:12
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-12-06
Из: Kiev
Пользователь №: 23 502



И так. Скрины:
Прикрепленное изображение

Прикрепленное изображение


Опции - все на автомате:
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"
?? или я что-то путаю?

Сообщение отредактировал filonov - Dec 22 2010, 22:29
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 23 2010, 03:00
Сообщение #8


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



У-у-у. Похоже, что я вам не помощникsad.gif Я даже не догадываюсь, что это за скрины.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
filonov
сообщение Dec 23 2010, 03:36
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-12-06
Из: Kiev
Пользователь №: 23 502



Цитата(AHTOXA @ Dec 23 2010, 10:00) *
У-у-у. Похоже, что я вам не помощникsad.gif Я даже не догадываюсь, что это за скрины.


это скрины IDE PikLab

ну Вы мне просто со скриптами линкера подскажите, если можно. От оболочки то особо полет не нарушится.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 23 2010, 04:21
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Dec 23 2010, 04:35
Сообщение #11


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(filonov @ Dec 23 2010, 02:12) *
И так. Скрины:

А gputils у Вас стоЯт ваще-то?
Go to the top of the page
 
+Quote Post
filonov
сообщение Dec 23 2010, 05:31
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-12-06
Из: Kiev
Пользователь №: 23 502



Цитата(_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
и либы
Прикрепленное изображение

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01467 секунд с 7
ELECTRONIX ©2004-2016