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

User Tag List

Показано с 1 по 9 из 9

Тема: SDCC вокруг да около

  1. #1
    Veteran Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    1,484
    Благодарностей: 121
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию SDCC вокруг да около

    Сорри, попаразитировать малость захотелось. Нужны для начала 2 вещи:
    1) конвертор заголовочных файлов gnu c/c++ в sdcc;
    2) .chm на sdcc
    Ну, если никто не даст, тогда через какое-то время дам я. Мне это стопудово нужно.

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

  3. #2
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    1) конвертор заголовочных файлов gnu c/c++ в sdcc;
    что под этим подразумевается?

    Цитата Сообщение от andrews Посмотреть сообщение
    2) .chm на sdcc
    http://sourceforge.net/projects/sdcc
    секция download - раздел документации и скачивается все в нормлаьном виде (pdf/html/txt)

  4. #3
    Veteran Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    1,484
    Благодарностей: 121
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Заголовочный файл от gnu c/c++ не подходит к sdcc, и наоборот.
    А по второму пункту правильно, есть конверторы html -> chm. Может у кого кг есть к свежему иа-иа для полстапервой.

  5. #4
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    Заголовочный файл от gnu c/c++ не подходит к sdcc, и наоборот.
    Заголовочный файл в студию

  6. #5
    Veteran Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    1,484
    Благодарностей: 121
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для sdcc регистры описываются вот так:
    __sfr __at 0x9A SPI2CTx;
    __sfr __at 0x9B SPI2CRx;
    __sfr __at 0xE8 SPIMOD1;
    __sfr __at 0xE9 SPIMOD2;
    __sfr __at 0xEA SPISTAT;

    Для Keil C/C++:
    sfr SPI2CTx = 0x9A;
    sfr SPI2CRx = 0x9B;
    sfr SPIMOD1 = 0xE8;
    sfr SPIMOD2 = 0xE9;
    sfr SPISTAT = 0xEA;

    В других языках еще может быть как-то по-другому.
    Совершенно идеален был бы вариант: выделить шаблон с параметрами ( в данном случае с двумя - символическое обозначение, адрес в hex-представлении) и назначить данному шаблону другой в соответствии с описанием. Затем (другой командой)проверить как действует на одной конструкции, если визуально ошибки нет, применить ко всему открытому простому текстовому файлу.
    Допустим, у меня есть заголовочный файл для Keil, а я хочу его быстро преобразовать в такой же для SDCC. Там еще различные конструкции для описания битов. У sdcc для этих целей есть:
    __sfr __at 0x88 TCON; /* timer/counter/control*/
    __sbit __at 0x88 IT0;
    __sbit __at 0x89 IE0;
    __sbit __at 0x8a IT1;
    __sbit __at 0x8b IE1;
    __sbit __at 0x8c TR0;
    __sbit __at 0x8d TF0;
    __sbit __at 0x8e TR1;
    __sbit __at 0x8f TF1;
    А у Keil описано только вот так:
    //TMOD
    #define T0_M0 0x01
    #define T0_M1 0x02
    #define C_T0 0x04
    #define GATE0 0x08
    #define T1_M0 0x10
    #define T1_M1 0x20
    #define C_T1 0x40
    #define GATE1 0x80
    Последний раз редактировалось andrews; 21.03.2008 в 14:33.

  7. #6
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Каждый компилятор (ну может почти каждый) имеет свою строку идентификации. Отсюда мораль, вместо

    #include <bit_defs.h>

    надо писать чтото вроде:

    #include <bit_defs_proxy.h>

    а в файле bit_defs_proxy.h писать ветки:

    #ifdef __KEIL__
    #include <bit_defs_keil.h>
    #elif defined(__STDC__)
    #include <bit_defs_sdcc.h>
    #elif ...
    ...
    #else
    #error "Platform compiler not defined!"
    #endif

    И не мучаться с переводом (ну или по крайней мере раз помучаться и потом использовать во всех проектах.

  8. #7
    Veteran Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    1,484
    Благодарностей: 121
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Об этом и речь. Чтобы перевод автоматизировать. Ведь заголовочных файлов очень много. Такое впечатление, что их нарочно делают несовместимыми!

  9. #8
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    Об этом и речь. Чтобы перевод автоматизировать. Ведь заголовочных файлов очень много. Такое впечатление, что их нарочно делают несовместимыми!
    regex в помощь

  10. #9
    Veteran
    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Благодарностей: 192
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Угу, sed и perl как раз будут.

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

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

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

Похожие темы

  1. Ответов: 10
    Последнее: 18.02.2005, 17:45

Ваши права

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