eldarkg / emdr1986x-std-per-lib

Milandr MCU 1986x Standard Peripherals Library. Mirror:
https://code.launchpad.net/~eldar/emdr1986x-std-per-lib/+git/emdr1986x-std-per-lib
46 stars 29 forks source link

В документации на 1986ВЕ1Т структура регистров ядра отличается от файла MDR1986VE1T.h #5

Closed RegisterWindowClassEx closed 8 years ago

RegisterWindowClassEx commented 8 years ago

Доброго времени суток! В файле структура описана следующим образом: typedef struct { IO uint32_t CPUID; //5 __IO uint32_t ICSR; //6 IO uint32_t Reserved3; //0 IO uint32_t AIRCR; //7 __IO uint32_t Reserved4; //0 IO uint32_t CCR; //8 IO uint32_t SHP2; //9 __IO uint32_t SHP3; //10 IO uint32_t SHCSR; //11
} MDR_ECB_TypeDef;

Судя по спецификации между CCR и SHP2 должен быть ещё один зарезервированный регистр, т.к. смещения этих регистров отличаются на 8, а не на 4.

eldarkg commented 8 years ago

Не знаю откуда вы черпаете свой код, но в данной библиотеке используется следующая структура (из файла core_cm1.h) и вроде в ней всё верно:

typedef struct
{
  __I  uint32_t CPUID;                   /*!< Offset: 0x000 (R/ )  CPUID Base Register                                   */
  __IO uint32_t ICSR;                    /*!< Offset: 0x004 (R/W)  Interrupt Control and State Register                  */
       uint32_t RESERVED0;
  __IO uint32_t AIRCR;                   /*!< Offset: 0x00C (R/W)  Application Interrupt and Reset Control Register      */
  __IO uint32_t SCR;                     /*!< Offset: 0x010 (R/W)  System Control Register                               */
  __IO uint32_t CCR;                     /*!< Offset: 0x014 (R/W)  Configuration Control Register                        */
       uint32_t RESERVED1;
  __IO uint32_t SHP[2];                  /*!< Offset: 0x01C (R/W)  System Handlers Priority Registers. [0] is RESERVED   */
  __IO uint32_t SHCSR;                   /*!< Offset: 0x024 (R/W)  System Handler Control and State Register             */
} SCB_Type;

Структура MDR_ECB_TypeDef отсутствует в данной библиотеке. В следующий раз прежде чем сообщать об ошибке убедитесь о ее наличии в данной библиотеке.