IAR EW ARM: устранение ошибок с отображением регистров |
![]() |
Добавил(а) microsin |
Нашел еще ошибку в IAR - в просмотрщике регистров SSC нет регистров SSC_RC0R и SSC_RC1R, а также нет многих полей в регистрах SSC. Разобрался, как исправить эту ошибку. Нужно отредактировать текстовый файл ioat91sam7x256.ddf. В IAR версии 4.41A он находится в папке %ProgramFiles% \ IAR Systems \ Embedded Workbench 4.0 Evaluation \ ARM \ config. В IAR версии 5 он находится в папке %ProgramFiles% \ IAR Systems \ Embedded Workbench 5.0 Evaluation \ ARM \ config \ debugger \ Atmel. Это определения всех регистров, которые можно видеть в IDE IAR в режиме отладки. [Регистры SSC_RC0R и SSC_RC1R] Я внес следующие изменения в файл DDF: 1. Поправил группу регистров SSC (добавил регистры SSC_RC0R и SSC_RC1R). Было: group = "SSC", "SSC_CR", "SSC_CMR", "SSC_RCMR", "SSC_RFMR", "SSC_TCMR", "SSC_TFMR", "SSC_RHR", "SSC_THR", "SSC_RSHR", "SSC_TSHR", "SSC_SR", "SSC_IER", "SSC_IDR", "SSC_IMR" Стало: group = "SSC", "SSC_CR", "SSC_CMR", "SSC_RCMR", "SSC_RFMR", "SSC_TCMR", "SSC_TFMR", "SSC_RHR", "SSC_THR", "SSC_RSHR", "SSC_TSHR", "SSC_RC0R", "SSC_RC1R", "SSC_SR", "SSC_IER", "SSC_IDR", "SSC_IMR" 2. Добавил описание регистров SSC_RC0R и SSC_RC1R в секции "========== Register definition for SSC peripheral ==========": sfr = "SSC_RC0R", "Memory", 0xfffd4038, 4, base=16 3. Добавил определение поля CKG в регистры SSC_RCMR и SSC_TCMR в секции "========== Register definition for SSC peripheral ==========": sfr = "SSC_RCMR.CKG", "Memory", 0xfffd4010, 4, base=16, bitRange=6-7 4. Добавил определение поля STOP в регистр SSC_RCMR в секции "========== Register definition for SSC peripheral ==========": sfr = "SSC_RCMR.STOP", "Memory", 0xfffd4010, 4, base=16, bitRange=12 5. Добавил определение полей CP0 и CP1 в регистр SSC_SR в секции "========== Register definition for SSC peripheral ==========": sfr = "SSC_SR.CP0", "Memory", 0xfffd4040, 4, base=16, bitRange=8 6. Добавил определение полей CP0 и CP1 в регистр SSC_IMR в секции "========== Register definition for SSC peripheral ==========": sfr = "SSC_IMR.CP0", "Memory", 0xfffd404c, 4, base=16, bitRange=8 Готовый файл ioat91sam7x256.ddf с внесенными изменениями здесь. [Регистры SPI_CSR] Изменения, которые я добавил в файл ioat91sam7x256.ddf IAR 4.41A, чтобы корректно отображались регистры SPI0_CSR0, SPI0_CSR1, SPI0_CSR2, SPI0_CSR3 и SPI1_CSR0, SPI1_CSR1, SPI1_CSR2, SPI1_CSR3. ... sfr = "SPI1_CSR0", "Memory", 0xfffe4030, 4, base=16 sfr = "SPI1_CSR0.CPOL", "Memory", 0xfffe4030, 4, base=16, bitRange=0 sfr = "SPI1_CSR0.NCPHA", "Memory", 0xfffe4030, 4, base=16, bitRange=1 sfr = "SPI1_CSR0.CSAAT", "Memory", 0xfffe4030, 4, base=16, bitRange=3 sfr = "SPI1_CSR0.BITS", "Memory", 0xfffe4030, 4, base=16, bitRange=4-7 sfr = "SPI1_CSR0.SCBR", "Memory", 0xfffe4030, 4, base=16, bitRange=8-15 sfr = "SPI1_CSR0.DLYBS", "Memory", 0xfffe4030, 4, base=16, bitRange=16-23 sfr = "SPI1_CSR0.DLYBCT", "Memory", 0xfffe4030, 4, base=16, bitRange=24-31 sfr = "SPI1_CSR1", "Memory", 0xfffe4034, 4, base=16 sfr = "SPI1_CSR1.CPOL", "Memory", 0xfffe4034, 4, base=16, bitRange=0 sfr = "SPI1_CSR1.NCPHA", "Memory", 0xfffe4034, 4, base=16, bitRange=1 sfr = "SPI1_CSR1.CSAAT", "Memory", 0xfffe4034, 4, base=16, bitRange=3 sfr = "SPI1_CSR1.BITS", "Memory", 0xfffe4034, 4, base=16, bitRange=4-7 sfr = "SPI1_CSR1.SCBR", "Memory", 0xfffe4034, 4, base=16, bitRange=8-15 sfr = "SPI1_CSR1.DLYBS", "Memory", 0xfffe4034, 4, base=16, bitRange=16-23 sfr = "SPI1_CSR1.DLYBCT", "Memory", 0xfffe4034, 4, base=16, bitRange=24-31 sfr = "SPI1_CSR2", "Memory", 0xfffe4038, 4, base=16 sfr = "SPI1_CSR2.CPOL", "Memory", 0xfffe4038, 4, base=16, bitRange=0 sfr = "SPI1_CSR2.NCPHA", "Memory", 0xfffe4038, 4, base=16, bitRange=1 sfr = "SPI1_CSR2.CSAAT", "Memory", 0xfffe4038, 4, base=16, bitRange=3 sfr = "SPI1_CSR2.BITS", "Memory", 0xfffe4038, 4, base=16, bitRange=4-7 sfr = "SPI1_CSR2.SCBR", "Memory", 0xfffe4038, 4, base=16, bitRange=8-15 sfr = "SPI1_CSR2.DLYBS", "Memory", 0xfffe4038, 4, base=16, bitRange=16-23 sfr = "SPI1_CSR2.DLYBCT", "Memory", 0xfffe4038, 4, base=16, bitRange=24-31 sfr = "SPI1_CSR3", "Memory", 0xfffe403c, 4, base=16 sfr = "SPI1_CSR3.CPOL", "Memory", 0xfffe403c, 4, base=16, bitRange=0 sfr = "SPI1_CSR3.NCPHA", "Memory", 0xfffe403c, 4, base=16, bitRange=1 sfr = "SPI1_CSR3.CSAAT", "Memory", 0xfffe403c, 4, base=16, bitRange=3 sfr = "SPI1_CSR3.BITS", "Memory", 0xfffe403c, 4, base=16, bitRange=4-7 sfr = "SPI1_CSR3.SCBR", "Memory", 0xfffe403c, 4, base=16, bitRange=8-15 sfr = "SPI1_CSR3.DLYBS", "Memory", 0xfffe403c, 4, base=16, bitRange=16-23 sfr = "SPI1_CSR3.DLYBCT", "Memory", 0xfffe403c, 4, base=16, bitRange=24-31 ... sfr = "SPI0_CSR0", "Memory", 0xfffe0030, 4, base=16 sfr = "SPI0_CSR0.CPOL", "Memory", 0xfffe0030, 4, base=16, bitRange=0 sfr = "SPI0_CSR0.NCPHA", "Memory", 0xfffe0030, 4, base=16, bitRange=1 sfr = "SPI0_CSR0.CSAAT", "Memory", 0xfffe0030, 4, base=16, bitRange=3 sfr = "SPI0_CSR0.BITS", "Memory", 0xfffe0030, 4, base=16, bitRange=4-7 sfr = "SPI0_CSR0.SCBR", "Memory", 0xfffe0030, 4, base=16, bitRange=8-15 sfr = "SPI0_CSR0.DLYBS", "Memory", 0xfffe0030, 4, base=16, bitRange=16-23 sfr = "SPI0_CSR0.DLYBCT", "Memory", 0xfffe0030, 4, base=16, bitRange=24-31 sfr = "SPI0_CSR1", "Memory", 0xfffe0034, 4, base=16 sfr = "SPI0_CSR1.CPOL", "Memory", 0xfffe0034, 4, base=16, bitRange=0 sfr = "SPI0_CSR1.NCPHA", "Memory", 0xfffe0034, 4, base=16, bitRange=1 sfr = "SPI0_CSR1.CSAAT", "Memory", 0xfffe0034, 4, base=16, bitRange=3 sfr = "SPI0_CSR1.BITS", "Memory", 0xfffe0034, 4, base=16, bitRange=4-7 sfr = "SPI0_CSR1.SCBR", "Memory", 0xfffe0034, 4, base=16, bitRange=8-15 sfr = "SPI0_CSR1.DLYBS", "Memory", 0xfffe0034, 4, base=16, bitRange=16-23 sfr = "SPI0_CSR1.DLYBCT", "Memory", 0xfffe0034, 4, base=16, bitRange=24-31 sfr = "SPI0_CSR2", "Memory", 0xfffe0038, 4, base=16 sfr = "SPI0_CSR2.CPOL", "Memory", 0xfffe0038, 4, base=16, bitRange=0 sfr = "SPI0_CSR2.NCPHA", "Memory", 0xfffe0038, 4, base=16, bitRange=1 sfr = "SPI0_CSR2.CSAAT", "Memory", 0xfffe0038, 4, base=16, bitRange=3 sfr = "SPI0_CSR2.BITS", "Memory", 0xfffe0038, 4, base=16, bitRange=4-7 sfr = "SPI0_CSR2.SCBR", "Memory", 0xfffe0038, 4, base=16, bitRange=8-15 sfr = "SPI0_CSR2.DLYBS", "Memory", 0xfffe0038, 4, base=16, bitRange=16-23 sfr = "SPI0_CSR2.DLYBCT", "Memory", 0xfffe0038, 4, base=16, bitRange=24-31 sfr = "SPI0_CSR3", "Memory", 0xfffe003c, 4, base=16 sfr = "SPI0_CSR3.CPOL", "Memory", 0xfffe003c, 4, base=16, bitRange=0 sfr = "SPI0_CSR3.NCPHA", "Memory", 0xfffe003c, 4, base=16, bitRange=1 sfr = "SPI0_CSR3.CSAAT", "Memory", 0xfffe003c, 4, base=16, bitRange=3 sfr = "SPI0_CSR3.BITS", "Memory", 0xfffe003c, 4, base=16, bitRange=4-7 sfr = "SPI0_CSR3.SCBR", "Memory", 0xfffe003c, 4, base=16, bitRange=8-15 sfr = "SPI0_CSR3.DLYBS", "Memory", 0xfffe003c, 4, base=16, bitRange=16-23 sfr = "SPI0_CSR3.DLYBCT", "Memory", 0xfffe003c, 4, base=16, bitRange=24-31 ... group = "SPI0", "SPI0_CR", ..., "SPI0_IMR", "SPI0_CSR0" "SPI0_CSR1" "SPI0_CSR2" "SPI0_CSR3" ... group = "SPI0", "SPI0_CR", ..., "SPI0_IMR", "SPI0_CSR0" "SPI0_CSR1" "SPI0_CSR2" "SPI0_CSR3" ...
|