Сорри, попаразитировать малость захотелось. Нужны для начала 2 вещи:
1) конвертор заголовочных файлов gnu c/c++ в sdcc;
2) .chm на sdcc
Ну, если никто не даст, тогда через какое-то время дам я. Мне это стопудово нужно.
Сорри, попаразитировать малость захотелось. Нужны для начала 2 вещи:
1) конвертор заголовочных файлов gnu c/c++ в sdcc;
2) .chm на sdcc
Ну, если никто не даст, тогда через какое-то время дам я. Мне это стопудово нужно.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
что под этим подразумевается?
http://sourceforge.net/projects/sdcc
секция download - раздел документации и скачивается все в нормлаьном виде (pdf/html/txt)
Заголовочный файл от gnu c/c++ не подходит к sdcc, и наоборот.
А по второму пункту правильно, есть конверторы html -> chm. Может у кого кг есть к свежему иа-иа для полстапервой.
Для 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.
Каждый компилятор (ну может почти каждый) имеет свою строку идентификации. Отсюда мораль, вместо
#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
И не мучаться с переводом (ну или по крайней мере раз помучаться и потом использовать во всех проектах.
Об этом и речь. Чтобы перевод автоматизировать. Ведь заголовочных файлов очень много. Такое впечатление, что их нарочно делают несовместимыми!
Угу, sed и perl как раз будут.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)