[ВХОД]

Главная | Содержание | Форум | Файлы | Поиск | Контакт
NAVIG
О форуме
Резонансные генераторы
Магнитные генераторы
Механические центробежные (вихревые) генераторы
Торсионные генераторы
Электростатические генераторы
Водородные генераторы
Ветро- и гидро- и солнечные генераторы
Струйные технологии
Торнадо и смерчи
Экономия топлива
Транспорт
Гравитация и антигравитация
Оружие
Нейтронная физика
Научные идеи, теории, предположения...
Прочие идеи (разные)
Новые технологии
Коммерческие вопросы
Барахолка
Патентный отдел
Сделай сам. Советы.
Конструкторское бюро
мобильная версия
Печатать страницу
Форум - Новые технологии - Сделай сам - Микроконтроллеры с архитектурой ARM Cortex-M. STM32 и другие - Стр.14
<][ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 ][>
Post:#507563 Date:10.09.2016 (18:55) ...
Тема посвящена микроконтроллерам с архитектурой ARM Cortex-M.
Они стали "убийцами" 8-разрядных микроконтроллеров, так как они 32-разрядные, дешёвые, производительные, нафаршированы мощной периферией, например, 16 разрядными таймерами(есть модели с 32-разрядными таймерами), 12-разрядными АЦП (как правило), 12-разрядными ЦАП (как правило), различными приёмо-передатчиками.
Их изготавливают многие производители. Выпускаются множество недорогих ознакомительных плат со встроенными отладчиками и программаторами.
Есть свободные среды разработки, что тоже важно.
neama | Post: 516045 - Date: 17.11.16(10:31)
dedivan Пост: 516043 От 17.Nov.2016 (10:24)
Вообще это архитектура старая и распространенная- от еще ламповых наших М20 до Эльбрусов и комплексов С-300 С-400 и у буржуев начиная с микрочиповских ПИКов-
даже на 8 разрядных похожая идеология.

дед это получается что на атмеле самое правильное это АСМ? а любой язык приведет к замедлению выполнения програмного цикла? за счет особеностей камня?

_________________
Раздражайтесь, это улыбает...
dedivan | Post: 516046 - Date: 17.11.16(10:35)
Никаких чудес нет- у АРМ всего один набор регистров- ядро меньше и дешевле.
У МИПС ядро больше, но ,на одном уровне технологии, быстрее и чуть дороже.


_________________
я плохого не посоветую
dedivan | Post: 516047 - Date: 17.11.16(10:42)
neama Пост: 516045 От 17.Nov.2016 (10:31)
получается что на атмеле самое правильное это АСМ?

Да. особенно учитывая всего несколько килобайт кода- любой ЯВУ не даст преимуществ. ЯВУ хороши при мегабайтах кода. Ну и для начинающих, поскольку компиляторы оптимально выполняют распространенные функции.
Хотя ни один ЯВУ не сравнится с кодом написанным профессионалом на АСМЕ.


_________________
я плохого не посоветую
dedivan | Post: 516048 - Date: 17.11.16(10:46)
psih Пост: 516044 От 17.Nov.2016 (10:29)
...Тут главное принцип

Так давай дальше- Вот у тебя РЛС- пришел отраженный сигнал.
Нужно принять его, а ты молотишь свой цикл- нужно сохранить его контент и принять сигнал с АЦП, обработать. тоже сохранить и вернуться к своему циклу.
Обработка допустим самая простая- накопление- сложить с предыдущим значением.


_________________
я плохого не посоветую
- Правка 17.11.16(10:49) - dedivan
psih | Post: 516049 - Date: 17.11.16(10:52)
dedivan Пост: 516048 От 17.Nov.2016 (10:46)

Так давай дальше- Вот у тебя РЛС- пришел отраженный сигнал.
Нужно принять его, а ты молотишь свой цикл- нужно сохранить его контент и принять сигнал с АЦП, обработать. тоже сохранить и вернуться к своему циклу.
Обработка допустим самая простая- накопление- сложить с предыдущим значением.


Я не буду прерывать свой цикл, приемом сигнала с ацп. Я ДМА запрограммирую, чтобы он сложил данные в 10-килобайтовый буфер. Затем обработаю своим очередным говноциклом сразу весь буфер

dedivan | Post: 516055 - Date: 17.11.16(11:05)
Пока ты складываешь самолетик уже отбомбится по тебе.
Реалтайм требует строгого реагирования. Значение отсчета превысило порог- сразу чего то делать надо.
И вот импульсы приходят допустим через каждые 50 тактов.
48 ты тратишь на переключение задач и успеваешь выполнить всего одну итерацию из своего цикла. Итого твои 1000циклов будут выполнятся 50000 тактов.


_________________
я плохого не посоветую
- Правка 17.11.16(11:06) - dedivan
psih | Post: 516058 - Date: 17.11.16(11:12)
dedivan Пост: 516055 От 17.Nov.2016 (11:05)
Пока ты складываешь самолетик уже отбомбится по тебе.



Спасибо дедиван. Теперь я понял, на каких задачах MIPS будет лучше. А то непонятненько было. У тебя в объяснениях общие замечания. Быстрее и все!

Только отмечу по данной задаче. Ты не обрабатываешь кадр попиксельно с веб-камеры. Ты получаешь готовый кадр в виде масива данных. Потом колбасишь его процом. ЦЕЛЫЙ кадр. Не получаешь прерывания попиксельно!
В чем здесь будет преимущество данной архитектуры?

dedivan | Post: 516060 - Date: 17.11.16(11:23)
psih Пост: 516058 От 17.Nov.2016 (11:12)
на каких задачах MIPS будет лучше.

А вот тут уже начинается экономика.
Ты должен делать шустрые процы. чтоб тебя не разбомбили, и народу нужно что то дать. Разрабатывать новый дешевый проц?
А может увеличить тиражи шустрых и уменьшить из стоимость?
Можно посчитать на каких тиражах это будет выгоднее.
Или вон давеча разговор зашел- ребята делают военные ноуты. Крепкие, ими и прибить можно диверсанта. если что. Но дорогие.
Вот они говорят - а как мы перейдем на ширпотреб- у нас все детали крепкие. А им отвечают- дураки. у китайцев широтреб будет всегда дешевле, увеличивайте свои тиражи, уменьшайте стоимость и ващи крепкие ноуты найдут своих покупателей без конкуренции с китайцами.

_________________
я плохого не посоветую
Yarston | Post: 516087 - Date: 17.11.16(14:15)
У АРМ 16 регистров общего пользования. При входе в функцию или прерывание нужно сохранить все эти 16 регистров. Это 16 тактов.
Потом наполнить регистры контентом- еще 16 тактов и после выполнения функции, которая может состоять всего десятка тактов. опять возвратить из стека старые регистры- еще 16 тактов. Итого 48 лишних такта на 10 рабочих.
У МИПС это же переключение происходит за один такт- переключается на новый набор регистров, или сохраненный контент, возврат тоже соответственно за один такт. Итого 12 тактов вместо 48+10.
Во сколько раз выигрыш на одной и той же частоте?

Специально погуглил, никогда такой фигнёй не заморачивался:

ARM Cortex-M3: 35 clock cycle context switch[ссылка] MIPS PIC32: 32 clock cycle context switch[ссылка]
Если ничем, кроме переключения контекста не заниматься, то выигрыш < 10%


48 ты тратишь на переключение задач и успеваешь выполнить всего одну итерацию из своего цикла. Итого твои 1000циклов будут выполнятся 50000 тактов.
Это если только в случае если за этот комп деда посадить флудить на скифе В реале если задача одна, то очевидно ничего переключать не нужно.

Yarston | Post: 516090 - Date: 17.11.16(14:24)
А в реале для свёртки сигнала с РЛС, например, или кодирования изображений/видео, ARM лучше, т.к. у него есть набор инструкций NEON, который на этих задачах в несколько раз даёт реальный, а не теоретический прирост.
[ссылка] Скорее всего поэтому армы нагнули мипсы в мобилках - там нужно шустро кодировать/декодировать мультимедиа разных форматов и в большом разрешении.

dedivan | Post: 516104 - Date: 17.11.16(15:38)
Yarston Пост: 516087 От 17.Nov.2016 (14:15)

ARM Cortex-M3: 35 clock cycle context switch[ссылка] MIPS PIC32: 32 clock cycle context switch[ссылка]

У кривого проггера с кривым компилятором, который не знает про архитектуру и гоняет регистры через стек , так все и будет.
И это кривой проггер даже вопросом не задается- а почему так? Не должно же быть. Компилятор то знает что банки регистров можно переключать?
Или по наезженному делает?
И у кривого ярстона тоже этот вопрос не возник.
Это у компиля что то не так или у ярстона или у обоих?

_________________
я плохого не посоветую
- Правка 17.11.16(15:39) - dedivan
dedivan | Post: 516105 - Date: 17.11.16(15:42)
Yarston Пост: 516087 От 17.Nov.2016 (14:15)
В реале если задача одна, то очевидно ничего переключать не нужно.

Значит совсем кривой из тебя проггер.
Даже если задача одна- у нее есть вызовы функций и подпрограмм.

_________________
я плохого не посоветую
neama | Post: 516106 - Date: 17.11.16(15:47)
dedivan Пост: 516105 От 17.Nov.2016 (15:42)
Yarston Пост: 516087 От 17.Nov.2016 (14:15)
В реале если задача одна, то очевидно ничего переключать не нужно.

Значит совсем кривой из тебя проггер.
Даже если задача одна- у нее есть вызовы функций и подпрограмм.

дед он же сказал что купит железо помощнее, а кто не смог тот дурак...

_________________
Раздражайтесь, это улыбает...
Yarston | Post: 516107 - Date: 17.11.16(15:58)
dedivan Пост: 516105 От 17.Nov.2016 (15:42)
Даже если задача одна- у нее есть вызовы функций и подпрограмм.

Ты дурак или напился? Тебе сказано же было, что компилятор заинлайнит все функции если ему указать.

Yarston | Post: 516109 - Date: 17.11.16(16:06)
dedivan Пост: 516104 От 17.Nov.2016 (15:38)
У кривого проггера с кривым компилятором, который не знает про архитектуру и гоняет регистры через стек , так все и будет.
И это кривой проггер даже вопросом не задается- а почему так? Не должно же быть. Компилятор то знает что банки регистров можно переключать?
Или по наезженному делает? И у кривого ярстона тоже этот вопрос не возник. Это у компиля что то не так или у ярстона или у обоих?

Ну давай, приведи пример кода, который gcc криво скомпилил или балабол. Высер в мою сторону пожалуй проигнорирую, меня ценят не за переключение банков процессора. Я Android developer, то что я делаю за час, "переключатель" на ассемблере будет месяц делать, если вообще сделает, а разницы пользователь не увидит.
Ты сам-то кто по професии?

<][ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 ][>
У Вас нет прав отвечать в этой теме.
Форум - Новые технологии - Сделай сам - Микроконтроллеры с архитектурой ARM Cortex-M. STM32 и другие - Стр 14

Главная | Содержание | Форум | Файлы | Поиск | Контакт