|
проблемы с байтовым инструкциями, stm32f767 |
|
|
|
Feb 12 2017, 23:22
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Здравствуюйте. Начал осваивать F7 компилятор генерит код: Код NOP(); 08000684: nop 08000686: ldrb r5, [r6, #0] 08000688: orr.w r4, r5, #1 0800068c: strb r4, [r6, #0] 08000684: nop содержание регистров r4,r5,r6 Цитата r4 268436096 r5 640 r6 0x40026010 (Hex) байтовая инструкция ldrb r5, [r6, #0] вызывает вываливание в hard fault? в тоже время переписанный код который организован как чтение слова по томуже адресу не вызывает исключительной ситуации. чтение регистра DMA_CR. при этом же такое же байтовое чтение модификация записm проканывает с регистром RCC AHB1 так должно быть - неможеn он байтовый кусок вычитать из переферийного адреса?
|
|
|
|
|
 |
Ответов
|
Feb 14 2017, 09:40
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Вот хидер на 407 камень вот первое попавшиеся ... Код typedef struct { __IO uint32_t MCR; /*!< CAN master control register, Address offset: 0x00 */ __IO uint32_t MSR; /*!< CAN master status register, Address offset: 0x04 */ __IO uint32_t TSR; /*!< CAN transmit status register, Address offset: 0x08 */ __IO uint32_t RF0R; /*!< CAN receive FIFO 0 register, Address offset: 0x0C */ __IO uint32_t RF1R; /*!< CAN receive FIFO 1 register, Address offset: 0x10 */ __IO uint32_t IER; /*!< CAN interrupt enable register, Address offset: 0x14 */ __IO uint32_t ESR; /*!< CAN error status register, Address offset: 0x18 */ __IO uint32_t BTR; /*!< CAN bit timing register, Address offset: 0x1C */ uint32_t RESERVED0[88]; /*!< Reserved, 0x020 - 0x17F */ CAN_TxMailBox_TypeDef sTxMailBox[3]; /*!< CAN Tx MailBox, Address offset: 0x180 - 0x1AC */ CAN_FIFOMailBox_TypeDef sFIFOMailBox[2]; /*!< CAN FIFO MailBox, Address offset: 0x1B0 - 0x1CC */ uint32_t RESERVED1[12]; /*!< Reserved, 0x1D0 - 0x1FF */ __IO uint32_t FMR; /*!< CAN filter master register, Address offset: 0x200 */ __IO uint32_t FM1R; /*!< CAN filter mode register, Address offset: 0x204 */ uint32_t RESERVED2; /*!< Reserved, 0x208 */ __IO uint32_t FS1R; /*!< CAN filter scale register, Address offset: 0x20C */ uint32_t RESERVED3; /*!< Reserved, 0x210 */ __IO uint32_t FFA1R; /*!< CAN filter FIFO assignment register, Address offset: 0x214 */ uint32_t RESERVED4; /*!< Reserved, 0x218 */ __IO uint32_t FA1R; /*!< CAN filter activation register, Address offset: 0x21C */ uint32_t RESERVED5[8]; /*!< Reserved, 0x220-0x23F */ CAN_FilterRegister_TypeDef sFilterRegister[28]; /*!< CAN Filter Register, Address offset: 0x240-0x31C */ } CAN_TypeDef; Ну и далее по тексту для любителей якобы CMSIS Код /*!<CAN control and status registers */ /******************* Bit definition for CAN_MCR register ********************/ #define CAN_MCR_INRQ ((uint32_t)0x00000001) /*!<Initialization Request */ #define CAN_MCR_SLEEP ((uint32_t)0x00000002) /*!<Sleep Mode Request */ #define CAN_MCR_TXFP ((uint32_t)0x00000004) /*!<Transmit FIFO Priority */ #define CAN_MCR_RFLM ((uint32_t)0x00000008) /*!<Receive FIFO Locked Mode */ #define CAN_MCR_NART ((uint32_t)0x00000010) /*!<No Automatic Retransmission */ #define CAN_MCR_AWUM ((uint32_t)0x00000020) /*!<Automatic Wakeup Mode */ #define CAN_MCR_ABOM ((uint32_t)0x00000040) /*!<Automatic Bus-Off Management */ #define CAN_MCR_TTCM ((uint32_t)0x00000080) /*!<Time Triggered Communication Mode */ #define CAN_MCR_RESET ((uint32_t)0x00008000) /*!<bxCAN software master reset */ #define CAN_MCR_DBF ((uint32_t)0x00010000) /*!<bxCAN Debug freeze */ /******************* Bit definition for CAN_MSR register ********************/ #define CAN_MSR_INAK ((uint32_t)0x0001) /*!<Initialization Acknowledge */ #define CAN_MSR_SLAK ((uint32_t)0x0002) /*!<Sleep Acknowledge */ #define CAN_MSR_ERRI ((uint32_t)0x0004) /*!<Error Interrupt */ #define CAN_MSR_WKUI ((uint32_t)0x0008) /*!<Wakeup Interrupt */ #define CAN_MSR_SLAKI ((uint32_t)0x0010) /*!<Sleep Acknowledge Interrupt */ #define CAN_MSR_TXM ((uint32_t)0x0100) /*!<Transmit Mode */ #define CAN_MSR_RXM ((uint32_t)0x0200) /*!<Receive Mode */ #define CAN_MSR_SAMP ((uint32_t)0x0400) /*!<Last Sample Point */ #define CAN_MSR_RX ((uint32_t)0x0800) /*!<CAN Rx Signal */ Ну и так далее .... Обращаю внимание, что в битовой маске сразу указаны и устройство и регистры...
|
|
|
|
|
Feb 14 2017, 14:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Цитата(SasaVitebsk @ Feb 14 2017, 14:33)  Слушайте, ну незнание не освобождает и далее по тексту.... Там имеется и то и другое... Цитата(SasaVitebsk @ Feb 14 2017, 14:40)  Вот хидер на 407 камень вот первое попавшиеся ... И где такое интересно дают? IAR 7.7 inc/ST файлов stm*.h вообще не наблюдаю есть только вида iostm*.h
|
|
|
|
Сообщений в этой теме
klen проблемы с байтовым инструкциями Feb 12 2017, 23:22 Genadi Zawidowski заглянул в RM0410.PDF.
Регистра DMA_CR не нашел, н... Feb 13 2017, 00:02 klen Цитата(Genadi Zawidowski @ Feb 13 2017, 03... Feb 13 2017, 11:13  adnega Цитата(klen @ Feb 13 2017, 14:13) ну он д... Feb 13 2017, 13:02  ViKo Цитата(klen @ Feb 13 2017, 14:13) ... в м... Feb 13 2017, 13:15  SasaVitebsk Цитата(klen @ Feb 13 2017, 14:13) тема св... Feb 13 2017, 14:53   Alechek Цитата(SasaVitebsk @ Feb 13 2017, 19:53) ... Feb 13 2017, 15:34    SasaVitebsk Цитата(Alechek @ Feb 13 2017, 18:34) Рань... Feb 14 2017, 09:33  Forger Цитата(klen @ Feb 13 2017, 14:13) тема св... Feb 13 2017, 17:17 KRS IAR - делает!
но у него запись битовых полей ... Feb 13 2017, 17:20 klen Цитата(KRS @ Feb 13 2017, 20:20) IAR - де... Feb 13 2017, 22:02  Forger Цитата(klen @ Feb 14 2017, 01:02) в случа... Feb 13 2017, 22:22   Kabdim Цитата(Forger @ Feb 14 2017, 01:22) едино... Feb 14 2017, 07:37    Forger Цитата(Kabdim @ Feb 14 2017, 10:37) Истин... Feb 14 2017, 07:43  Сергей Борщ QUOTE (klen @ Feb 14 2017, 00:02) наприме... Feb 14 2017, 06:58   AHTOXA Цитата(Сергей Борщ @ Feb 14 2017, 11:58) ... Feb 14 2017, 09:38  scifi Цитата(klen @ Feb 14 2017, 01:02) зачем э... Feb 14 2017, 07:08   Сергей Борщ QUOTE (scifi @ Feb 14 2017, 09:08) Ну и д... Feb 14 2017, 08:00    scifi Цитата(Сергей Борщ @ Feb 14 2017, 11:00) ... Feb 14 2017, 09:34 Kabdim Не мог не продолжить . Feb 14 2017, 07:45 Forger Цитата(SasaVitebsk @ Feb 14 2017, 12:40) ... Feb 14 2017, 09:45   Alechek Цитата(scifi @ Feb 14 2017, 19:20) В инте... Feb 14 2017, 14:53    Forger Цитата(Alechek @ Feb 14 2017, 17:53) речь... Feb 14 2017, 15:06     Alechek Цитата(Forger @ Feb 14 2017, 20:06) Неуже... Feb 15 2017, 04:18      Forger Цитата(Alechek @ Feb 15 2017, 07:18) Прим... Feb 15 2017, 07:00       klen все коллеги были правы но меня не поняли. я чуть п... Feb 16 2017, 09:49        Obam Цитата(klen @ Feb 16 2017, 13:49) почему ... Feb 16 2017, 10:24 Сергей Борщ QUOTE (AHTOXA @ Feb 14 2017, 11:38) Напом... Feb 14 2017, 09:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|