ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Пятница
22 января
/1042916
Топик полностью
VladislavS. (09.10.2020 09:19, просмотров: 234) в ответ на Спасибо! Теперь смотрите, в чем проблема - такое приведение убивает признак volatile у DR! В IAR на максимальной оптимизации этот код не работает. - автор: VLLV
Блин, да не выдумывайте проблемы на ровном месте. Всё проще пареной репы. 
*(volatile uint8_t *)&SPI1->DR = 0;
        MOVS     R2,#+0
        LDR.N    R1,??__low_level_init_0+0x5C  ;; 0x4001300c
        STRB     R2,[R1, #+0]

*(volatile uint16_t *)&SPI1->DR = 0;
        MOVS     R2,#+0
        LDR.N    R1,??__low_level_init_0+0x5C  ;; 0x4001300c
        STRH     R2,[R1, #+0]

SPI1->DR = 0;
        MOVS     R2,#+0
        LDR.N    R1,??__low_level_init_0+0x5C  ;; 0x4001300c
        STR      R2,[R1, #+0]
Ответить
Ответы