nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 03 Dec 2021 02:22



Reply to topic  [ 8 posts ] 
Ассемблер для ARM Cortex-M0! 
Author Message
Fanat

Joined: 23 Feb 2018 23:20
Posts: 65
Reply with quote
Здравствуйте уважаемые участники форума!
Подскажите толковых книжек по ассемблеру для ARM Cortex M0!
Буду также очень признателен за подробную инструкцию написания заголовочных файлов для Си компилятора под ARM Cortex M0. Как правило, производители микроконтроллеров прилагают к своим микросхемам заголовочные файлы, но наш родной отечественный производитель для некоторых микросхем с удобной для меня периферией решил скромно, но со вкусом ограничиться голым даташитом :(
Собственно алгоритм отработан на К1986ВЕ92QI, сейчас задумался о переносе программы на другой кристалл.
Благодарю за внимание!


02 Jul 2018 08:50
Profile WWW
Fanat

Joined: 23 Feb 2018 23:20
Posts: 65
Reply with quote
В общем, с огромным трудом удалось найти толковые материалы :)

Подробнейший мануал по командам Thumb!!!111 Вот чего мне не хватало в даташите! Прямо вспомнил советскую книжку про МПК КР580 :)

Плюс подробный мануал по GNU AS!

Увы, нормально пользоваться можно только младшими РОНами R0-R7, старшие 5 R8-R12 только как дополнение.


05 Jul 2018 11:28
Profile WWW
Novelist
User avatar

Joined: 27 Dec 2016 00:38
Posts: 47
Reply with quote
Более-менее
для ассемблера кортексов написано тут (правда для М3-М4) https://habr.com/post/274541/. Там же и список книг во второй статье серии.
На английском пара книг всего по М0, последняя http://gen.lib.rus.ec/book/index.php?md5=144A533BD3FED473E99173A1997E18F2

_________________
Не кирпичом англичане ружья чистят!


05 Jul 2018 12:18
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 19994
Location: Silicon Valley
Reply with quote
Электромонтёр wrote:
В общем, с огромным трудом удалось найти толковые материалы :)

Подробнейший мануал по командам Thumb!!!111 Вот чего мне не хватало в даташите! Прямо вспомнил советскую книжку про МПК КР580 :)

Я лет 15 назад тоже было брался изучать Thumb (и ARM7 вместе с ним), да чото сразу же и бросил :)

Теперь я более к MIPS-ам расположен в качестве альтернативных супер-пупер-процов...

_________________
:eugeek: https://twitter.com/Shaos1973


05 Jul 2018 22:03
Profile WWW
Doomed

Joined: 08 Apr 2013 05:04
Posts: 449
Location: 213.247.249.139
Reply with quote
Мипс тоже с кучей легаси. Тру это risc-вэ :)

по существу: дока вот -- https://static.docs.arm.com/ddi0419/d/D ... 6m_arm.pdf , страница 61 и далее.

_________________
привет засранцу лавру :)


20 Mar 2019 04:32
Profile
Fanat

Joined: 23 Feb 2018 23:20
Posts: 65
Reply with quote
Вернулся к армовому ассемблеру после казалось бы странно невысокого быстродействия сишной прошивки.

В арме приличные накладные расходы на загрузку/сохранение. Причём, загрузка констант только шестнадцатибитных. То есть если надо отправить 32-х битное число по 32-х битному адресу, то отдельно в первый регистр грузим старшее и младшее полуслово данных, во второй регистр грузим младшее и старшее полуслово адреса и только потом первый регистр сохраняем по адресу во втором регистре. 2 такта плюс два такта плюс такт - итого пять тактов плюс трёхступенчатый конвейер и задержки обращения ко флешу. Как-то невесело.

Кстати, вот группа для изучающих армовый ассемблер.


11 Oct 2021 13:29
Profile WWW
Maniac
User avatar

Joined: 04 Jan 2016 10:15
Posts: 280
Location: Russia, S.- Peterburg
Reply with quote
По опыту работы. Читайте на английском языке с переводчиком.

1) The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors, Second Edition - https://www.pdfdrive.com/the-definitive-guide-to-arm-cortex-m0-and-cortex-m0-processors-second-edition-e176067900.html

2. The Arm® Cortex®-M0 is the smallest Arm® processor - https://www.st.com/content/st_com/en/arm-32-bit-microcontrollers/arm-cortex-m0.html

Рекомендую! Визуальный конфигуратор и генератор проектов с полных описанием всего. ..

3. STM32Cube Ecosystem - https://www.st.com/content/st_com/en/ecosystems/stm32cube-ecosystem.html?icmp=tt18625_gl_lnkon_nov2020

4. Видео курс c примерами программирования ARM - https://narodstream.ru/

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)


12 Oct 2021 10:33
Profile WWW
Fanat

Joined: 23 Feb 2018 23:20
Posts: 65
Reply with quote
Итак, ничего лучше не придумал, как считать все критичные моменты исключительно в цикле обработки прерывания таймера на 160 кГц. +/- 10 мкс погоды не делают - и затраты машинного времени уменьшились вдвое. Цикл обработки прерывания жрёт сейчас около 50% машинного времени.

Обновлено!

Итак, частота ШИМ увеличена до 250 кГц, количество каналов измерения резольверов оставлено два, добавлена несколько корявая (пачками) генерация двух пар квадратурных импульсов, плюс генерация двух ноль-меток. Итоговые затраты 70-75% процессорного времени в среднем, в пике до 100% по осциллографу, но проц успевает. Из К1986ВЕ92QI на С по быстродействию выжал практически всё. Дискретность снижена до 5000. При увеличении частоты ШИМ до 320 кГц процессор уже ничего не успевает! Много жрут времени ветвления - во-первых перезагрузка конвейера, во-вторых при нелинейной выборке команд появляются задержки чтения флеш-памяти МК.

Ассемблерные примеры пока или не собираются, или вешают ядро. Пока не совсем ясно как хотя бы простейший пример запустить.

Обновлено!

По просьбе Миландра тиснул статейку на Хабре.


15 Oct 2021 11:33
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 8 posts ] 

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.