STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

А можете расписать в чем там проблемы, просто не все сразу понимают, почему так нельзя маски делать?
Станислав
Реклама
Аватара пользователя
pavell
Открыл глаза
Сообщения: 56
Зарегистрирован: Вт дек 29, 2015 11:33:49

Re: STM32 новичку в ARM что к чему

Сообщение pavell »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3574827#p3574827"]Да тут и гадать не надо.
У того кто вот так &buff[0] берёт адрес массива и особенно автора вот этого[/uquote]
А в чем собственно проблема? Адрес первого элемента массива это и есть указатель/ссылка на массив.

[uquote="VladislavS",url="/forum/viewtopic.php?p=3574827#p3574827"]... и особенно автора вот этого

Код: Выделить всё

   DMA1_Channel1->CCR &= ~DMA_CCR_MEM2MEM_Msk;
   DMA1_Channel1->CCR &= ~DMA_CCR_DIR;   
   DMA1_Channel1->CCR &= ~DMA_CCR_PL_Msk;
[/uquote]

Владислав, вы топиком не ошиблись? Позволю себе напомнить его название - "STM32 новичку в ARM что к чему" по этому, как новичку мне позволительно так писать. Но если внутренний перфекцонист не дает вам сдержаться, а не заходить в тему вы тоже не можете, обещаю, что впредь я буду писать только так:

Код: Выделить всё

   DMA1_Channel1->CCR &= ~DMA_CCR_MEM2MEM_Msk |
                         ~DMA_CCR_DIR |   
                         ~DMA_CCR_PL_Msk;
Надеюсь к стилю претензий нет?
Последний раз редактировалось pavell Чт фев 21, 2019 08:29:38, всего редактировалось 2 раза.
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

По моему, все пишут так... :

Код: Выделить всё


DMA1_Channel1->CCR &= ~(DMA_CCR_MEM2MEM_Msk | DMA_CCR_DIR |  DMA_CCR_PL_Msk);
Станислав
Аватара пользователя
pavell
Открыл глаза
Сообщения: 56
Зарегистрирован: Вт дек 29, 2015 11:33:49

Re: STM32 новичку в ARM что к чему

Сообщение pavell »

[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3574853#p3574853"]По моему, все пишут так... :

Код: Выделить всё


DMA1_Channel1->CCR &= ~(DMA_CCR_MEM2MEM_Msk | DMA_CCR_DIR |  DMA_CCR_PL_Msk);
[/uquote]
Я еще учусь )

PS стоит результат компиляции сравнить этих двух выражений
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Господа, вы можете писать КАК ХОТИТЕ, только не говорите мне, что я ошибаюсь в своих оценках!

Добавлено after 18 minutes 11 seconds:
[uquote="pavell",url="/forum/viewtopic.php?p=3574854#p3574854"]PS стоит результат компиляции сравнить этих двух выражений[/uquote]А давай сравним

Вариант

Код: Выделить всё

   DMA1_Channel1->CCR &= ~DMA_CCR_MEM2MEM_Msk;
   DMA1_Channel1->CCR &= ~DMA_CCR_DIR;   
   DMA1_Channel1->CCR &= ~DMA_CCR_PL_Msk;
   DMA1_Channel1->CCR |= DMA_CCR_MSIZE_0;
   DMA1_Channel1->CCR |= DMA_CCR_PSIZE_0;
   DMA1_Channel1->CCR |= DMA_CCR_MINC;
   DMA1_Channel1->CCR |= DMA_CCR_CIRC;
   DMA1_Channel1->CCR |= DMA_CCR_HTIE;
   DMA1_Channel1->CCR |= DMA_CCR_TCIE;
   DMA1_Channel1->CCR |= DMA_CCR_EN;
Спойлер

Код: Выделить всё

//   93    DMA1_Channel1->CCR &= ~DMA_CCR_MEM2MEM_Msk;
        LDR      R0,??DataTable1_10  ;; 0x40020008
        LDR      R2,[R0, #+0]
        LDR      R3,??DataTable1_11  ;; 0xffffbfff
        ANDS     R3,R3,R2
        STR      R3,[R0, #+0]
//   94    DMA1_Channel1->CCR &= ~DMA_CCR_DIR;   
        LDR      R2,[R0, #+0]
        MOVS     R3,#+16
        BICS     R2,R2,R3
        STR      R2,[R0, #+0]
//   95    DMA1_Channel1->CCR &= ~DMA_CCR_PL_Msk;
        LDR      R2,[R0, #+0]
        LDR      R3,??DataTable1_12  ;; 0xffffcfff
        ANDS     R3,R3,R2
        STR      R3,[R0, #+0]
//   96    DMA1_Channel1->CCR |= DMA_CCR_MSIZE_0;
        LDR      R2,[R0, #+0]
        LSRS     R3,R0,#+20
        ORRS     R3,R3,R2
        STR      R3,[R0, #+0]
//   97    DMA1_Channel1->CCR |= DMA_CCR_PSIZE_0;
        LDR      R2,[R0, #+0]
        LSRS     R3,R0,#+22
        ORRS     R3,R3,R2
        STR      R3,[R0, #+0]
//   98    DMA1_Channel1->CCR |= DMA_CCR_MINC;
        LDR      R2,[R0, #+0]
        ORRS     R1,R1,R2
        STR      R1,[R0, #+0]
//   99    DMA1_Channel1->CCR |= DMA_CCR_CIRC;
        LDR      R1,[R0, #+0]
        MOVS     R2,#+32
        ORRS     R2,R2,R1
        STR      R2,[R0, #+0]
//  100    DMA1_Channel1->CCR |= DMA_CCR_HTIE;
        LDR      R1,[R0, #+0]
        MOVS     R2,#+4
        ORRS     R2,R2,R1
        STR      R2,[R0, #+0]
//  101    DMA1_Channel1->CCR |= DMA_CCR_TCIE;
        LDR      R1,[R0, #+0]
        MOVS     R2,#+2
        ORRS     R2,R2,R1
        STR      R2,[R0, #+0]
//  102    DMA1_Channel1->CCR |= DMA_CCR_EN;
        LDR      R1,[R0, #+0]
        MOVS     R2,#+1
        ORRS     R2,R2,R1
        STR      R2,[R0, #+0]
Вариант

Код: Выделить всё

   DMA1_Channel1->CCR = DMA_CCR_MSIZE_0
                      | DMA_CCR_PSIZE_0
                      | DMA_CCR_MINC
                      | DMA_CCR_CIRC
                      | DMA_CCR_HTIE
                      | DMA_CCR_TCIE
                      | DMA_CCR_EN;
Спойлер

Код: Выделить всё

//  105    DMA1_Channel1->CCR = DMA_CCR_MSIZE_0
//  106                       | DMA_CCR_PSIZE_0
//  107                       | DMA_CCR_MINC
//  108                       | DMA_CCR_CIRC
//  109                       | DMA_CCR_HTIE
//  110                       | DMA_CCR_TCIE
//  111                       | DMA_CCR_EN;
        LDR      R0,??DataTable1_10  ;; 0x5a7
        LDR      R1,??DataTable1_11  ;; 0x40020008
        STR      R0,[R1, #+0]
Доходчиво?
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

VladislavS писал(а):Господа, вы можете писать КАК ХОТИТЕ, только не говорите мне, что я ошибаюсь в своих оценках!
А мы ничего не говорим. Ну, я ничего не говорю. :) Просто интересно, чтобы сразу было понятно, как лучше делать.
В данном случае да, ассемблер все разложил по полочкам. :))) Разница просто грандиозная.
Станислав
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="pavell",url="/forum/viewtopic.php?p=3574849#p3574849"]А в чем собственно проблема? Адрес первого элемента массива это и есть указатель/ссылка на массив.[/uquote]Разберись уже что-ли: адрес, указатель или ссылка. :(
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение ARV »

СКАЗОЧНИК писал(а):ассемблер все разложил по полочкам. Разница просто грандиозная
да только не понятно, грандиозность эта влияет на что-то или нет. в STM32 памяти просто грандиозное количество, настройка периферии делается, как правило, 1 раз за "сессию запитывания девайса"... и что даст выигрыш 5-6 слов памяти, если код для понимания новичку стал хуже? имхо, при обучении на первом месте должно быть понимание написанного кода, а не его оптимальность.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Я же сразу написал "ему так наглядней", а они давай спорить. Ну наглядней - флаг в руки, барабан на шею!

[uquote="ARV",url="/forum/viewtopic.php?p=3574874#p3574874"]и что даст выигрыш 5-6 слов памяти, если код для понимания новичку стал хуже?[/uquote]Спойлер открывал? 40 ассемблерных команд против 3?
Последний раз редактировалось VladislavS Чт фев 21, 2019 09:08:58, всего редактировалось 1 раз.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

ARV писал(а):грандиозность эта влияет на что-то или нет. в STM32 памяти просто грандиозное количество, настройка периферии делается, как правило, 1 раз за
Я думал об этом. И тем более по скорости начальная инициализация тоже особо ни на что не влияет. Но все равно, лучше привыкать к правильному сразу. ))) :)
Станислав
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение ARV »

VladislavS писал(а):40 ассемблерных команд против 3?
0,49% против 0,037% от имеющейся памяти (для примера взял 32К) несущественны, имхо, в обоих случаях. а если новичок запутается в составном операторе, он потратит больше процентов своих нервных клеток, что важнее, имхо.
СКАЗОЧНИК писал(а):Но все равно, лучше привыкать к правильному сразу.
похвальное желание. но штангисты начинают всегда с малого веса, хотя стремятся к рекордам.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
OKF
Это не хвост, это антенна
Сообщения: 1393
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: STM32 новичку в ARM что к чему

Сообщение OKF »

[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3574877#p3574877"]Но все равно, лучше привыкать к правильному сразу. ))) :)[/uquote]
Только правильное у каждого своё. А жизнь коротка.)
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Всё гораздо проще. Когда пишешь на С/С++ какое-то выражение, то нужно понимать что оно делает и во что выливается в конечном счёте для микроконтроллера. Если этого понимания нет, то и появляются всякого рода "ни на что не влияет", "так понятнее" и т.д. А для этого понимания учиться надо, а не привыкать. Написал код, загляни в листинг, подумай...

[uquote="ARV",url="/forum/viewtopic.php?p=3574883#p3574883"]0,49% против 0,037% от имеющейся памяти (для примера взял 32К) несущественны, имхо, в обоих случаях.[/uquote]То есть, всего двести таких "удобных" обращений к регистрам и память тю-тю...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение ARV »

VladislavS писал(а):Когда пишешь на С/С++ какое-то выражение, то нужно понимать что оно делает и во что выливается в конечном счёте для микроконтроллера.
на определенном этапе опыта или в определенных условиях - да, это необходимо. особенно надо знать/понимать побочные эффекты, если они есть.
на этапе обучения - не думаю.
тем более что разные версии компиляторов, тем более для разных платформ, особенно с разными режимами оптимизации дают настолько разный результат... что делает почти бесполезной "абстрактную ручную оптимизацию на ЯВУ".

Добавлено after 2 minutes 12 seconds:
VladislavS писал(а):и память тю-тю...
так ведь всегда можно взять pin2pin совместимый МК с памятью побольше - они же копейки стоят! :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
pavell
Открыл глаза
Сообщения: 56
Зарегистрирован: Вт дек 29, 2015 11:33:49

Re: STM32 новичку в ARM что к чему

Сообщение pavell »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3574856#p3574856"]А давай сравним
...
Доходчиво?[/uquote]

Владислав, вы читаете что я пишу? Во-первых я поправился тыц, во-вторых мне и без вас хорошо известно, что множественные and or гораздо дороже единичного and со множественным or, ну и в-третьих я предлагал сравнить &= ~( ... | ... | ...) с &= ~... | ~... | ~...) (кстати не утруждайтесь)

[uquote="VladislavS",url="/forum/viewtopic.php?p=3574871#p3574871"]Разберись уже что-ли: адрес, указатель или ссылка. :([/uquote]
По делу что-то будет чем вас не устроила моя запись?

И еще очень попрошу лично вас мне не тыкать.
Последний раз редактировалось pavell Чт фев 21, 2019 10:20:26, всего редактировалось 1 раз.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение ARV »

pavell писал(а):сравнить &= ~( ... | ... | ...) с &= ~... | ~... | ~...
вот я об этом и говорю: многие и не поймут, в чем тут подвох, особенно, если записать в столбик, как было показано ранее.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32 новичку в ARM что к чему

Сообщение dosikus »

ARV, если бы тебя сие интересовало не от желания устроить очередной срач...
Что значит не по теме?
Где здесь авр???????????????? :)))
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="pavell",url="/forum/viewtopic.php?p=3574916#p3574916"]По делу что-то будет чем вас не устроила моя запись?[/uquote]
Вот это

Код: Выделить всё

DMA1_Channel1->CMAR = (uint32_t)&buff[0];
То же самое что

Код: Выделить всё

DMA1_Channel1->CMAR = (uint32_t)buff;
К чему тут лишняя писанина?
Спойлер[uquote="pavell",url="/forum/viewtopic.php?p=3574916#p3574916"]И еще очень попрошу лично вас мне не тыкать.[/uquote]
Я на форуме на ты обращаюсь к людям, к которым у меня хорошее или нейтральное отношение. Всякие неадекваты, чаще всего, на вы. Выбирай.
Аватара пользователя
pavell
Открыл глаза
Сообщения: 56
Зарегистрирован: Вт дек 29, 2015 11:33:49

Re: STM32 новичку в ARM что к чему

Сообщение pavell »

То есть в конечном итоге вас не устроила "лишняя писанина" из 4-х символов не влияющая ни на что? Ну ок, суть доёб "претензии" ясна
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32 новичку в ARM что к чему

Сообщение dosikus »

pavell, пример кстати занятный. Если здесь вроде бы "безобидная" трата ресурсов и при ините нисколько не напрягает , то в SPL и калокубе это сплошь и рядом используется не только при ините но и при работе и выливается в ад и ужас.

И вынужден повторить - с каких привилегий, ARV пинающих всем с тем о авр, здесь пасется и пишет чушь????????
Ответить

Вернуться в «ARM»