ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Четверг
24 сентября
/1036612
Топик полностью
teap0t (14.09.2020 22:28, просмотров: 76) в ответ на Это намек, что не нужно пользоваться битовыми полями - автор: lloyd
ОК. Учту. Но мне просто надо было понять. В статье про ХардФолт на Хабре использовалась диагностическая структура https://habr.com/ru/post/511924/
struct
  {
    uint32_t r0;
    uint32_t r1;
    uint32_t r2;
    uint32_t r3;
    uint32_t r12;
    uint32_t lr;
    uint32_t pc;
    uint32_t psr;
  }*stack_ptr; //Указатель на текущее значение стека(SP)

А мне захотелось расширить её, чтобы видеть биты PSR

 struct
  {
    uint32_t r0;
    uint32_t r1;
    uint32_t r2;
    uint32_t r3;
    uint32_t r12;
    uint32_t lr;
    uint32_t pc;
    /* uint32_t psr; */
    uint32_t ISR:9;                      /*!< bit:  0.. 8  Exception number                   */
    uint32_t _rsrvd:15;                  /*!< bit:  9..23  Reserved                           */
    uint32_t T:1;                        /*!< bit:     24  Thumb bit        (read 0)          */
    uint32_t IT:2;                       /*!< bit: 25..26  saved IT state   (read 0)          */
    uint32_t Q:1;                        /*!< bit:     27  Saturation condition flag          */
    uint32_t V:1;                        /*!< bit:     28  Overflow condition code flag       */
    uint32_t C:1;                        /*!< bit:     29  Carry condition code flag          */
    uint32_t Z:1;                        /*!< bit:     30  Zero condition code flag           */
    uint32_t N:1;                        /*!< bit:     31  Negative condition code flag       */
  }*stack_ptr; //Указатель на текущее значение стека(SP)

Но тут надо знать, как перечисляются биты.

Это я, здравствуйте. http://the-epic-file.com/
Ответить