Важная информация

User Tag List

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 31 по 40 из 43

Тема: sdcc. с чего начать.

  1. #31
    Guru Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,257
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    183
    Поблагодарили
    86 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    Code::Blocks знает о SDCC и там редактор на порядок получше
    я всё время только код-блокс и юзаю.
    Как прикрутить sdcc к нему?

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32
    ZEK
    Гость

    По умолчанию

    В настройках - компиляторы, там есть кнопка автодетект, сам путя найдет. Еще лучше прописать путь к SDCC bin в PATH, для постбилдинг удобно, что бы из Code::Blocks можно было сразу образы собирать и тд.

    Пример проектов Сode::Blocks на C SDCC для Z80 можно посмотреть в сырках Speccy 2007 и если не ошибаюсь в Speccy2010. Там настройки можно посмотреть, как бинарник сразу делают итд.

    Code::Blocks сам генерит make файлы, и пересобирает только изменившиеся файлы, удобно при тормозах SDCC 3.2
    Последний раз редактировалось ZEK; 15.09.2012 в 13:51.

  4. #33
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кроме того, существует проект создания интегрированной среды SDCC+ProgrammersNotepad. Это единственный в мире проект для SDCC, в котором поддерживается отладчик прямо из GUI (можно на экране прошагать программу, причем с вотчами). Во всех остальных проектах интеграции реализован только вызов компилятора из редактора. Правда пока что отладчик только для режима Ориона (т.к. отладчик шагает "в реальной железке") и сама среда несколько недопилена (нету нормального make - из ГУЯ пересобирается только файл на который укажешь и то что в него явно включается по include, не поддерживается сборка библиотек и линковка с библиотеками). Но если вы убедите b2m что это вам надо, то он врядли откажет и допилит таки до варианта когда в этой среде станет можно собирать серьезные проекты (для helloword она прекрасно подходит уже сейчас) и сделает отладку "внутри Спека".

    Я там педалировал тему с SDCC и Орионом, но после того как убедился что SDCC по-прежнему глючня-глючнёй, бросил. Попробуйте теперь вы.
    Последний раз редактировалось Error404; 15.09.2012 в 14:08.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  5. #34
    Master
    Регистрация
    27.01.2005
    Сообщений
    905
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    142 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    SDCC всегда прикручивает во время линковки стандартный crt0.o файл. Это инициализатор программы. И он ВСЕГДА должен лежать с адреса 0x0000.

    Опция --code-loc перемещает весь код КРОМЕ того, что содержится в crt0.o

    По-хорошему - чтобы вся программа переместилась в нужные адреса необходимо написать свой crt0.o и прицепить его во время линковки.

    Так что просто скомпилировать не получится.

  6. #35
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    всегда прикручивает во время линковки стандартный crt0.o файл
    неа, не всегда
    --no-std-crt0
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  7. #36
    Master
    Регистрация
    27.01.2005
    Сообщений
    905
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    142 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем инструкция. Имеется файл. на С (например cls.c)
    Имеется файл crt0.s

    В файле crt0.s после ORG указываем адрес начала программы. (START)

    При линковке - указываем опции --code-loc START+6 --data-loc 0.

    Для нашего примера (пусть стартовый адрес - 0x8000, указываем его после ORG в файле crt0.s):

    # as-z80 -o crt0.o crt0.s # создаём объектник crt0.o

    # sdcc -mz80 --code-loc 0x8006 --data-loc 0 -c cls.c # создаём объектник cls.o

    # sdcc -mz80 --code-loc 0x8006 --data-loc 0 --no-std-crt0 cls.o crt0.o -o cls.ihx # линкуем объектники и получаем hex

    # hex2bin cls.ihx # получаем бинарник cls.bin

    Далее этот бинарник надо загрузить по адресу 0x8000 в спектрум и перейти по этому адресу.

    Во вложении - исходники и спиок команд для борки примера в README
    Вложения Вложения
    • Тип файла: 7z c-test.7z (844 байт, Просмотров: 130)

  8. #37
    Master
    Регистрация
    27.01.2005
    Сообщений
    905
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    142 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    неа, не всегда
    --no-std-crt0
    читай внимательнее - я написал, что "чтобы вся программа переместилась в нужные адреса необходимо написать свой crt0.o и прицепить его во время линковки".

    Эта опция откусывает crt0, но точку входа то всё равно надо задавать - так что отвертется от написания нескольких байт на асме - не удастся)


    См. мой пример. Разумеется что всё это на раз автоматизируется.

    ---------- Post added at 18:45 ---------- Previous post was at 18:25 ----------

    Да. Мой crt0 много чего не делает. Например не обнуляет секцию неинициализированных данных, не устанавливает стек и т.п. Так что дописывайте по вкусу)

  9. #38
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Эта опция откусывает crt0, но точку входа то всё равно надо задавать - так что отвертется от написания нескольких байт на асме - не удастся)
    а, да
    но есть простой выход - разместить процедуру-точку входа самой первой в файле
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  10. #39
    Master
    Регистрация
    27.01.2005
    Сообщений
    905
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    142 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    а, да
    но есть простой выход - разместить процедуру-точку входа самой первой в файле

    правда? ты даёшь гарантию, что процедуры будут размещены в памяти именно в том порядке, как ты их описываешь? стандарт С такого не описывает.

    То что такой вариант работает сейчас - я в курсе.

    Но самое правильное - свой crt0.o с секцией ABS, которая гарантированно будет расположена там где сказано.

    ---------- Post added at 23:08 ---------- Previous post was at 22:24 ----------

    Кстати, если по-нормальному использовать C - то надо как минимум make и желательно - Unix ну или на худой конец cygwin с bash и утилитами....

    Иначе - гемор с автоматизацией полный.

  11. #40
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,611
    Спасибо Благодарностей отдано 
    2,182
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    106 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    Code::Blocks знает о SDCC и там редактор на порядок получше
    Преимущества ZXDev над Code::Blocks/SDCC для начинающих изучать Си

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. БК-0011: С чего начать, или вопросы нуба
    от BYTEMAN в разделе БК-0010/0011
    Ответов: 82
    Последнее: 13.06.2021, 22:20
  2. Голая Амига с чего начать
    от alex51 в разделе Amiga
    Ответов: 335
    Последнее: 22.02.2016, 00:26
  3. C чего начать геймдэв для горбатыша?
    от ALKO в разделе Для начинающих
    Ответов: 69
    Последнее: 24.01.2012, 15:49
  4. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  5. Подскажите с чего начать знакомство со спекки...
    от aleksej в разделе Несортированное железо
    Ответов: 33
    Последнее: 28.12.2005, 23:00

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •