ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
10 мая
39538
энкодер. (21.09.2005 12:01, просмотров: 3734)
Crossworks и strb Хотел в кроссворксе половину переферийных регистров описать через структуры, чтобы к битам обращаться. В результате GCC из кроссворкса 1.5b1 вот такой код <pre> T0MCRbits.MR0I = 1; </pre> скомпилил в : <pre> mov r3, #0xE0000000 add r3, r3, #0x00004000 add r3, r3, #0x00000014 ldrb r2, [r3] orr r2, r2, #0x00000001 strb r2, [r3] </pre> После выполнения str<b>b</b> в регистре T0MCR дублируются два младших байта (то есть я хотел получить 0x00000001, а получил 0x00000101). Так и должно быть? Это потому что у филипса этот регистр определен как двухбайтный? И что делать с GCC, переходить на IAR?