|  | roboforum.ruТехнический форум по робототехнике. |  | 




typedef struct GATE_PORT_ {
    uint8_t  number;/**< Уникальный номер, однозначно идентифицирующий порт */
    uint8_t* PORT;  /**< Адрес регистра PORTx в адресном пространстве ОЗУ */
    uint8_t* PIN;   /**< Адрес регистра PINx в адресном пространстве ОЗУ */
    uint8_t* DDR;   /**< Адрес регистра DDRx в адресном пространстве ОЗУ */
    uint8_t  default_busy_mask; /**< Маска, определяющая биты порта, которые не могут использоваться (например используются для внутренних целей контроллера) */
    uint8_t  busy_mask; /**< Маска, определяющая биты порта, которые используются драйверами устройств */
    struct GATE_PORT_* next;
} GATE_PORT;


blindman писал(а):Я говорю об инфраструктуре ORFA.
Попробуйте описать в такой структуре конфигурацию порта на LPC2103

Vooon писал(а):Да я понял о чем ты, там разве нельзя к регистрам обратиться через указатель? (uint32_t* reg)



vovan@vovan-laptop:~/src/orfa/drivers$ tree
.
|-- OR-AVR-M168-DX
|   |-- motor_driver.c -> ../OR-AVR-M32-D/motor_driver.c
|   |-- motor_driver.h -> ../OR-AVR-M32-D/motor_driver.h
|   |-- ports_driver.c -> ../OR-AVR-M32-D/ports_driver.c
|   |-- ports_driver.h -> ../OR-AVR-M32-D/ports_driver.h
|   |-- spi_driver.c -> ../OR-AVR-M32-D/spi_driver.c
|   `-- spi_driver.h -> ../OR-AVR-M32-D/spi_driver.h
|-- OR-AVR-M32-D
|   |-- motor_driver.c
|   |-- motor_driver.h
|   |-- ports_driver.c
|   |-- ports_driver.h
|   |-- spi_driver.c
|   `-- spi_driver.h
`-- OR-AVR-M64-S
    |-- motor_driver.c -> ../OR-AVR-M32-D/motor_driver.c
    |-- motor_driver.h -> ../OR-AVR-M32-D/motor_driver.h
    |-- ports_driver.c -> ../OR-AVR-M32-D/ports_driver.c
    |-- ports_driver.h -> ../OR-AVR-M32-D/ports_driver.h
    |-- spi_driver.c -> ../OR-AVR-M32-D/spi_driver.c
    `-- spi_driver.h -> ../OR-AVR-M32-D/spi_driver.h
3 directories, 18 files

Vooon писал(а):Деад, я не согласен, что UID определяет только протокол драйвера
и для всех драйверов портов/моторов/т.д. он должен быть один, а определять по версии.
Vooon писал(а):Например драйвер порта на M32 и M168 имеют разные параметры (кол-во портов)
почему они должны иметь один UID? Да протокол доступа один и тот-же, но портов то меньше!
Почему должна отличаться версия?
Vooon писал(а):С другой стороны мне не понятно, зачем вообще нужна версия драйвера?
Добавил в драйвер порта по-битный доступ, поменял версию, а чем это отличается от смены UIDа?
Да ни чем, имхо даже удобней было-бы: есть одна таблица идов со всеми параметрами драйвера,
а неизвестные параметры мы точно знаем как запросить.








Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0