Здравствуйте!
Сам я никогда с 8051 дела не имел, но есть программа, которой лет 7
и автор в описании говорит, что для Linux требуется кросс-компилятор
фирмы Keil Software, http://www.keil.com/ , http://www.keil.com/c51/ca51kit.htm
и предупреждает, что он не относится к свободно доступным.
Я туда ещё не заходил, а с тех пор что-нибудь изменилось?
Пётр.
Cross-compiler for x51
А вопрос-то в чем?
Поскольку у Вас целевое устройство -- это микроконтроллер, а софт для него Вы будете компилировать, естественно, на компе (на платформе i386), то корсс-компиоятор в любом случае нужен. Это не зависит от типа Операционной системы -- хоть из-под Венды, хоть из-под Линя.
Кайловскикиая среда разработки платная, но до определенного объема кода (допустим, до 8 кБ -- насайте KEIL нужно уточнять) можно скачать evolution версию, которая бесплатна. Кроме того, в интеренете полно всяких бесплатных версий для 51-го ядра, которые работают как под DOS (ядро-то старое!), так и под Виндовз. По моему я даже что-то видел в репах Ubuntu.
Поскольку не очень известен компилятор, на который рассчитан Ваш исходный код, то Вам скорее всего понадобится его минимально адаптировать под тот, который Вы установите.
Прога-то большая у Вас? Мне кажется, что у Вас даже не Си-шный исходник, а ассемблерный. Проги для 51-го ядра писались преимущественно на ассемблере.
Я до кода ещё даже не добрался, но вроде бы на C.
Откуда тот человек тогда взял этот компилятор, я не знаю -
с этого сайта или откуда-то ещё.
Я даже ещё не понял, была у него среда или только
компилятор, кажется, компилятор.
Т.е. я хотел узнать, надо ли как-то получать компилятор
именно оттуда или теперь есть и свободные его варианты,
отдельно или в репозитариях.
Пётр.
Повторюсь.
Если Вам не удастся найти "тот самый" компилятор, который разработчик использовал при разработке ПО, то с минимальными переделками можно применить любой другой.
Мне сложно сказать какие именно переделки потребуются для Вашего случая, но я имел ввиду например такие:
-- код процедуры прерывания для AVR для компиялатора IAR выглядит так:
#pragma vector = TIMER0_OVF_vect
__interrupt void my_handler(void)
{
...
}
тот же код для avr-gcc -- так
ISR (TIMER0_OVF_vect)
{
...
}
а для CodeVision -- так
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
...
}
В среде Codevision) прерывания разрешаются командой
#asm("sei");в IAR -- командой
__enable_interrupt();в avr-gcc -- командой
sei();Разумеется есть и другие отличия. Но весь си-шный код будет оставаться примерно тем-же самым. Так что все преодалимо. У Вас какой, кстати, МК? Точный тип уже знаете? Объем кода знаете? Если это разовая работа, то может проще найти среду, "пролечить" и забыть эту проблему? 51-е ядро уже почти не применяется.
Процессор - C8051F120.
Есть готовый прибор с ним, программу для которого надо
модифицировать, код при этом должен уменьшиться, т.к.
некоторые ветви программы отпадут.
Есть пакет mcu8051ide, я его ещё не смотрел.
Вообще там в каталоге с программой есть все, что требуется, в .т.ч.
и кросс-компилятор, но там ещё много такого, от чего я хотел бы
избавиться, там, кроме программы для микроконтроллера, строится
exe-файл для Windows, это делается с помощью tclkit, он опять же
внутри этого каталога со всем, что требуется для его создания,
а также 4 или 5 расширений tcl. Весь каталог с объектными модулями
занимает 522MB. Для Linux тоже создаётся файл для компьютера.
Т.е. мне бы пока разобраться с микропроцессором, а программу для
компьютера можно написать и на Qt. Программ на tcl я не делал, только
однажды поправил один скрипт на tcl/tk, но tclkit год или два назад
как-то построил, при этом пришлось редактировать скрипты, взятые с
сайта, т.к. с исходными не получалось. Не знаю, как сейчас.
Поэтому я и заинтересовался отдельным кросс-компилятором.
Пётр.
Ой, как все запущено...
Теперь я даже не знаю что и сказать.
Если автор еще доступен, то наверно лучше работать в тесном контакте с автором.
(Блин! Венда! Кошмар какой-то!)
Ой, как все запущено...
Теперь я даже не знаю что и сказать.
Если автор еще доступен, то наверно лучше работать в тесном контакте с автором.
(Блин! Венда! Кошмар какой-то!)
Нет, автор недоступен. Дело в том, что прибор работает совместно
с компьютером, передаёт в него данные измерений, а вся обработка
отображение на экране происходит на компьютере.
Пётр.
Если компилятор в дистрибутиве не удасться использовать, то как сказал zhevak, можно использовать любой свободный компилятор (в гугле сразу нашёл) просто переделав немного код.
Но, думаю, в любом случае придётся со всем этим разбираться, а вопросы задавать сперва в гугл.
Если компилятор в дистрибутиве не удасться использовать, то как сказал zhevak, можно использовать любой свободный компилятор (в гугле сразу нашёл) просто переделав немного код.
Но, думаю, в любом случае придётся со всем этим разбираться, а вопросы задавать сперва в гугл.
Да, действительно. Кстати, пакет mcu8051ide требует sdcc, а я не знаю,
так ли он хорош, как компилятор от Keil Software. Для процессоров PIC
он хуже, чем от mplab, в частности, забирает себе 30 ячеек.
Благодарю всех за ответы.
Пётр.