[an error occurred while processing this directive] [an error occurred while processing this directive]
Какие "новые сервисы" реально необходимы/полезны ?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Abc123 16 апреля 2002 г. 19:22
В ответ на: Ответ: отправлено Andy Mozzhevilov 16 апреля 2002 г. 12:40

В плане "причесывания" исходных текстов - осталась основная проблема, порождающая непереносимость, а именно - описание указателей не через "тип", а через '*'.

Сие есть очень плохой стиль.

Лябруссу писал про это еще 3 года назад - агитация не возымела действия :(

Точнее, возымела, но только частично, сравниваю:
- в 1.09 было:

typedef struct os_tcb {
void OS_FAR *OSTCBStkPtr; /* Pointer to current top of stack */
...
} OS_TCB;

- в 2.51 стало:
typedef struct os_tcb {
OS_STK *OSTCBStkPtr; /* Pointer to current top of stack */
...
} OS_TCB;


Хотя я ему предлагал для лучшей портируемости не только ввести тип данных стека (он его обозвал OS_STK), но и ввести типы для всех указателей, например:

typedef OS_STK * PTROS_STK;
typedef struct os_tcb {
PTROS_STK OSTCBStkPtr; /* Pointer to current top of stack */
...
} OS_TCB;

Дабы можно было подправив только соответсвующие определения в *.h
файле получить действительно нормальный портинг на соответствующую
платформу и соответсвующий компилятор.

В результате - в плане межплатформенной переносимости кардинальных
улучшений в 2.51 нет, один хрен руками придется все тексты чистить.
Иначе, например, под Keil C51 все указатели - generic со всеми вытекающими отсюда последствиями (на фига это нам нужно, ежели априорно известно, что стек в "xdata" )?


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru