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

 
 
 
Reply to this topicStart new topic
> SDCC, каково мнение
speccy1983
сообщение May 15 2008, 17:45
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 28
Регистрация: 24-08-06
Из: Екаеринбург
Пользователь №: 19 801



Порылся на форуме, но ничего подходящего не нашел. А вопрос такой. Работаю на Silabs`овских контроллерах. Решил прикрутить к SiLabs IDE бесплатный SDCC. Какие могут быть подводные камни при работе с проектами, созданными в кейле? Тупо открываю готовый проект, но вываливается куча ошибок. Например, не нравится
sbit RS = P2^4;
Говрит error 2: Initializer element is not constant. В кейле компилится нормально. В самом деле я даже не знаю с чего начать.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 15 2008, 18:20
Сообщение #2


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

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



Цитата(speccy1983 @ May 15 2008, 23:45) *
Порылся на форуме, но ничего подходящего не нашел. А вопрос такой. Работаю на Silabs`овских контроллерах. Решил прикрутить к SiLabs IDE бесплатный SDCC. Какие могут быть подводные камни при работе с проектами, созданными в кейле? Тупо открываю готовый проект, но вываливается куча ошибок. Например, не нравится
sbit RS = P2^4;


например так:
Код
#define        RS        P2_4

RS=1;
RS=0;


Цитата
В самом деле я даже не знаю с чего начать.


Скачать пару примеров для sdcc и посмотреть как там сделано. Ну и доку почитать конечно.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
mrcashe
сообщение May 15 2008, 18:39
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 21-07-06
Из: Владивосток
Пользователь №: 18 987



Ну, странный вопрос: откуда начАть? Конечно, RTFM (Read The Fucking Manual) & STFW (Search The Fucking WEB). Если погуглить чуток, то можно найти:
http://sdcc.sourceforge.net/doc/
Документация не шибко объёмная, можно пару часов потратить и понять, что:
Цитата
sbit RS = P2^4;


в SDCC выглядит как:

Цитата
__sbit __at (0xA4) RS;


А ещё лучше:
Цитата
#include <C8051F340.h>
#define RS P2_4


Вообще говоря, Keil C более навороченный и менее стандартный, нежели SDCC. Поэтому, если нет особых причин, зачем пересаживаться? Писать исходный код, способный компилироваться на двух разных компиляторах - задача нетривиальная даже для больших компьютеров, не говоря о полукривых компиляторах для MCS-51.
Достаточно сложно создать исходник, способный компилиться на обоих этих компиляторах. Особенно, если есть ассемблерные вставки. Тут эти компиляторы вообще не совместимы, даже по протоколу передачи параметров из Си в ассемблер и обратно.
Сам я давно использую SDCC, потому что работаю на Linux. Хотя Keil тоже работает под эмулятором винды. На мой взгляд, SDCC более предсказуем и корректен, но Keil способен сгенерить более оптимальный код.
Так с чего начать? Прочесть доки и понять, чем отличаются компиляторы в плане исходного кода. В основном, это объявления SFR и битовых адресов, области памяти, указатели. Стараться не делать ассемблерных вставок, а если делать, то только при помощи встроенного ассемблера (он у обоих есть) и окружать конструкциями типа:
Цитата
#ifdef SDCC
...код для SDCC...
#else
...код для Keil...
#endif

Удачи.
Go to the top of the page
 
+Quote Post
Mecon
сообщение May 16 2008, 03:06
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 4-12-05
Пользователь №: 11 776



1.Я не буду писать для обоих компиляторов одновременно. Просто есть уже готовые наработки в кейле (хотя их не так уж и много, но они мне нужны), и хотелось бы с меньшими переделками перепрыгнуть на SDCC. Все эти заморочки связаны с желанием перейти на линух. Если по наличию стандартного софта (офис, мультимедия и пр.) он меня устраивает, то по наличию специализированного - множество вопросов. Я работаю с AVR, SiLabs, Altera. C AVR-ками вроде все намано, у Альтеры тоже есть квартус под линух (хотя и не пробовал). А вот что делать с SiLabs? Помимо компилятора программатор же нужен. Есть ToolStick, но как его запустить в линух......
2.Хотелось бы узнать субъективное мнение о SDCC. Везде говорят, что он делает несколько бОльший код. Если ненамного, то не страшно, значительно хуже, если у него есть "неприятные особенности" по сравнению с кейлом. Вот и хотелось бы выслушать мнения.
3. Вопрос для AHTOXA. Каким софтом под линух Вы пользуетесь? Я имею ввиду именно софт для разработки.
3.Просте, если где соффтопил, просто уж в тему подвернулось...
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 16 2008, 06:11
Сообщение #5


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

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



Цитата(Mecon @ May 16 2008, 09:06) *
2.Хотелось бы узнать субъективное мнение о SDCC. Везде говорят, что он делает несколько бОльший код. Если ненамного, то не страшно, значительно хуже, если у него есть "неприятные особенности" по сравнению с кейлом. Вот и хотелось бы выслушать мнения.
3. Вопрос для AHTOXA. Каким софтом под линух Вы пользуетесь? Я имею ввиду именно софт для разработки.


2. Нормальный компилятор. Да, код побольше кейловского, но при нынешних объёмах флеша это некритично.

3. У меня нет линуха:-)


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
mrcashe
сообщение May 16 2008, 09:54
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 21-07-06
Из: Владивосток
Пользователь №: 18 987



Цитата(Mecon @ May 16 2008, 13:06) *
А вот что делать с SiLabs? Помимо компилятора программатор же нужен. Есть ToolStick, но как его запустить в линух......

SiLabs не юзал, хз. Но для AT89S8252, AT89S8253 накропал SPI программатор сам.

Цитата(Mecon @ May 16 2008, 13:06) *
2.Хотелось бы узнать субъективное мнение о SDCC. Везде говорят, что он делает несколько бОльший код. Если ненамного, то не страшно, значительно хуже, если у него есть "неприятные особенности" по сравнению с кейлом. Вот и хотелось бы выслушать мнения.

Нормальный компилятор. Даже местами лучше. Например, Keil uVision 2 у меня игнорировал volatile, а этот нормально обрабатывает. Код да, больше, но понятнее. Есть некоторые особенности в сложных случаях. Например, недавно прописывал операции с плавающей точкой, так он мне временными переменными в сегменте DATA забил большую часть памяти, так что на стек почти ничего не осталось.

Цитата(Mecon @ May 16 2008, 13:06) *
3. Вопрос для AHTOXA. Каким софтом под линух Вы пользуетесь? Я имею ввиду именно софт для разработки.

Это, всё-таки, наверное ко мне. Для 8051 - sdcc для компиляции, GNU make для проекта, любой текстовый редактор, я использую Kate. Программатор для S8252 и S8253, как уже упоминал, самодельный. Симуляторы не использую.
Для AVR - avr-gcc, программаторы uisp и avrdude.
Go to the top of the page
 
+Quote Post
speccy1983
сообщение May 16 2008, 12:52
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 28
Регистрация: 24-08-06
Из: Екаеринбург
Пользователь №: 19 801



Цитата(mrcashe @ May 16 2008, 12:54) *
SiLabs не юзал, хз. Но для AT89S8252, AT89S8253 накропал SPI программатор сам.
Нормальный компилятор. Даже местами лучше. Например, Keil uVision 2 у меня игнорировал volatile, а этот нормально обрабатывает. Код да, больше, но понятнее. Есть некоторые особенности в сложных случаях. Например, недавно прописывал операции с плавающей точкой, так он мне временными переменными в сегменте DATA забил большую часть памяти, так что на стек почти ничего не осталось.
Это, всё-таки, наверное ко мне. Для 8051 - sdcc для компиляции, GNU make для проекта, любой текстовый редактор, я использую Kate. Программатор для S8252 и S8253, как уже упоминал, самодельный. Симуляторы не использую.
Для AVR - avr-gcc, программаторы uisp и avrdude.

Да. все-таки вопрос был Вам. Это, видимо, с глазками у меня что-то не то...Спасибо за консультацию. Буду пробовать подключить его к SiLabs IDE (раз у него возможность такая есть).
Go to the top of the page
 
+Quote Post
scifi
сообщение May 16 2008, 16:49
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Mecon @ May 16 2008, 07:06) *
Все эти заморочки связаны с желанием перейти на линух.

Так и скажите, что не для дела, а для души :-)
А wine+Keil не пробовали? Есть хорошая вероятность успеха.
Go to the top of the page
 
+Quote Post
speccy1983
сообщение May 19 2008, 02:23
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 28
Регистрация: 24-08-06
Из: Екаеринбург
Пользователь №: 19 801



Цитата(scifi @ May 16 2008, 19:49) *
Так и скажите, что не для дела, а для души :-)
А wine+Keil не пробовали? Есть хорошая вероятность успеха.

Ну. Кейл же тоже денег просит. Если уж за идею биться, так полностьюsmile.gif В свое время я пробовал IAR, но стал работать на AVRStudio+WinAVR и ничуть не жалею. Сейчас также. Если можно использовать бесплатное, то почему бы и не использовать? И результат есть, и сон крепчеsmile.gif Кстати, на счет вайн+кейл. Чем программировать-то?
Go to the top of the page
 
+Quote Post
Sergu
сообщение May 19 2008, 09:24
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 18-03-05
Пользователь №: 3 452



Цитата(Mecon @ May 16 2008, 06:06) *
1. .... А вот что делать с SiLabs? Помимо компилятора программатор же нужен. Есть ToolStick, но как его запустить в линух......


Как вариант -
Linux support for Silicon Lab EC2/EC3 Debug Adaptor
http://ec2drv.sourceforge.net/
Go to the top of the page
 
+Quote Post
speccy1983
сообщение May 19 2008, 14:01
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 28
Регистрация: 24-08-06
Из: Екаеринбург
Пользователь №: 19 801



Цитата(Sergu @ May 19 2008, 12:24) *
Как вариант -
Linux support for Silicon Lab EC2/EC3 Debug Adaptor
http://ec2drv.sourceforge.net/

Тоже нарыл подобную страничку. Надо попробовать. Интересно, кто-нить это запускал?
Go to the top of the page
 
+Quote Post
gala
сообщение May 22 2008, 18:49
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 119
Регистрация: 29-11-05
Из: Украина, Черкассы
Пользователь №: 11 564



Судя по последним веяниям от SiLabs ожидается переход на SDCC:

c8051F410.h
// Tool chain: Keil

C8051F930_defs.h
// Tool chain: Keil, SDCC
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 5th July 2025 - 19:33
Рейтинг@Mail.ru


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