29.11.2010, 13:16
|
#591
|
Гражданин KAZUS.RU
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Добрый день уважаемые.
Я только начинаю изучать ARM, но только STM32. Я думаю, что у STM32 и STM8 есть общие моменты, несмотря на то , что одна 8 а другая 32 битная, и поэтому я хочу спросить о переключениях битов портов УВВ.
Изучая литературу по STM32 прочитал вот это:
PB8 = 1; //включаем светодиод
После компиляции будут сгенерированы следующие ассемблерные инструкции:
MOVS r0,#0x01
LDR r1,[pc,#104]
STR r0,[r1,#0x00]
Для отключения светодиода используем строку:PB8 = 0; // отключаем светодиод
Ей соответствуют следующие ассемблерные инструкции:
MOVS r0,#0x00
LDR r1,[pc,#88]
STR r0,[r1,#0x00]
Значит ли это, что одной асм команды , как у AVR ( CBI и SBI ) нет?
P.S. Можно в этой теме задавать вопросы по STM32, или создавать новую тему?.
Если новую, то хотелось бы и вашего участия .
|
|
|
|
29.11.2010, 13:19
|
#592
|
Временная регистрация
Регистрация: 15.03.2006
Сообщений: 80
Сказал спасибо: 3
Сказали Спасибо 83 раз(а) в 11 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
Гы ... Он и при этом ту же гадость пихает...
|
LED^=1; // Так надо писать.
Хоть и через аккумулятор но вменяемый код. В одну команду начиная с IAR 1.2, как тут кто-то уже говорил.
Как много откровений чудных...
Последний раз редактировалось EugVor; 29.11.2010 в 13:58.
|
|
|
|
29.11.2010, 13:20
|
#593
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
Использовать Cosmic
|
Ну это то понятно . ![Мистер Грин](images/smilies/icon_smilegreen.gif)
Как раз и лицензия пришла...
__________________
Осторожно , злой кот
|
|
|
|
29.11.2010, 13:24
|
#594
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от dosikus
|
Как раз и лицензия пришла...
|
На 16К или на 32К? Мне на 32К так и не пришла.
Сообщение от kittec
|
P.S. Можно в этой теме задавать вопросы по STM32, или создавать новую тему?.
|
STM32 - ARM. Тут уже и так полно тем по АРМ
https://kazus.ru/forums/showthread.php?t=14719
https://kazus.ru/forums/showthread.php?t=20914
и т.д.
|
|
|
|
29.11.2010, 13:31
|
#595
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от EugVor
|
Хоть и через аккумулятор но вменяемый код.
|
Нет, у dosikus реально лучше вышло. Его вариант атомарный, Ваш - нет. И хоть Ваш на команду короче, но потребует критической секции в некоторых случаях.
|
|
|
|
29.11.2010, 13:46
|
#596
|
Временная регистрация
Регистрация: 15.03.2006
Сообщений: 80
Сказал спасибо: 3
Сказали Спасибо 83 раз(а) в 11 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Дело в том, что у меня с битовой инверсией в листинге вообще какой-то ливер на 14 строк.
|
|
|
|
29.11.2010, 13:53
|
#597
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от kison
|
На 16К или на 32К? Мне на 32К так и не пришла.
|
Кинь в личку мыло , у него похоже привязки ни к чему нет.
По kison'у вообще все прелестно выходит :
PHP код:
|
main.c:24 DDRB2 = 1;
0x80dd BSET _PB_DDR,#2
main.c:25 DDRB1 = 1;
0x80e1 BSET _PB_DDR,#1
main.c:26 PB_CR1=0XFF;
0x80e5 MOV _PB_CR1,#0xff
main.c:29 delay();
0x80e9 CALLR delay
main.c:31 PORTB1=~PORTB1;
0x80eb BCPL _PB_ODR,#1
main.c:33 delay();
0x80ef CALLR delay
main.c:35 PORTB2=~PORTB2;
0x80f1 BCPL _PB_ODR,#2
0x80f5 JRT 0x80e9
rupt_vector.c:17 return;
0x80f7 IRET
|
В IAR охренительно :
Код:
|
30 while(1)
31 {
32 LED=~LED; //Переключим светодиод
\ ??main_1:
\ 000028 C6500F LD A, L:0x500f
\ 00002B 43 CPL A
\ 00002C 44 SRL A
\ 00002D 9011500F BCCM L:0x500f, #0x0
33 LED5=~LED5;
\ 000031 C6500F LD A, L:0x500f
\ 000034 43 CPL A
\ 000035 CD0000 CALL L:?srl8_a_a_5
\ 000038 44 SRL A
\ 000039 901B500F BCCM L:0x500f, #0x5 |
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 29.11.2010 в 14:07.
|
|
|
|
29.11.2010, 14:04
|
#598
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от dosikus
|
у него похоже привязки ни к чему нет.
|
Да мне пока 16К хватает. Просто интересно почему всем приходит, а мне фиг...
А чужая лицензия = кряку. Кряк то на Космик и так в сети есть.
|
|
|
|
29.11.2010, 14:06
|
#599
|
Временная регистрация
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
Посмотрел хидеры от IAR. Там все же не структуры с битовыми полями в памяти, а собственные конструкции типа __IO_REG8_BIT(PA_CR2,....
|
Это макрос и на выходе он дает юнион в котором есть собственно определение регистра PA_CR2, как указателя на область памяти и на его фоне структура с битовыми полями PA_CR2_bit
|
|
|
|
29.11.2010, 14:08
|
#600
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от EugenyAM
|
Это макрос и на выходе он дает юнион в котором есть собственно определение регистра PA_CR2, как указателя на область памяти
|
А тогда во что разворачивается параметр __READ_WRITE?
Вообще IAR-овцы смешной народ. Найдите отличия:
Код:
|
typedef struct
{
unsigned char DDR0 : 1;
unsigned char DDR1 : 1;
unsigned char DDR2 : 1;
unsigned char DDR3 : 1;
unsigned char DDR4 : 1;
unsigned char DDR5 : 1;
unsigned char DDR6 : 1;
unsigned char DDR7 : 1;
} __BITS_PA_DDR;
typedef struct
{
unsigned char DDR0 : 1;
unsigned char DDR1 : 1;
unsigned char DDR2 : 1;
unsigned char DDR3 : 1;
unsigned char DDR4 : 1;
unsigned char DDR5 : 1;
unsigned char DDR6 : 1;
unsigned char DDR7 : 1;
} __BITS_PB_DDR; |
Последний раз редактировалось kison; 29.11.2010 в 14:11.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:36.
|
|