Перейти к содержанию
    

Я как раз сравнивал STM32F4 и STM32F7, оба 90нм. F7 где то на 20% более прожорлив на той же производительности.

 

Однако вопрос как вы контролировали их производительность, чтобы она была одинаковой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ресурсов у нее хватало, конечно у серии "мега", а простота очевидна - запустить таймер или уарт - 3-4 ассемблерных команды! Где такое в арме?? А ассемблер, или авр, элементарный и интуитивно понятный или армовские навороченные команды, где без книжки непонятно, что и какие суффиксы и префиксы...

 

Ну понеслась она по кочкам :rolleyes:

 

Таймеры в кортексах наворочены до тошнотиков, но программировать их увлекательно! (нежели уТомительно). Поэтому да, что бы запустить ножку на генерацию ШИМ, понадобится 17 строк кода. Ну так это же прикольно! Там столько возможностей, что аж дурно становится..

 

И потом, что тут за наезды на ассемблер? :1111493779:

 

Именно в кортексах ассемблер самый прикольный из всех возможных! Причём полностью и хорошо документирован! Правда на английском. Нужна русская книжка. Там именно возможности и ещё раз возможности. В отличии от AVR8, где всё по струнке, тесными рядами, в 8-битном формате.

 

Только могли бы в М7 набросить командочек ещё каких-нибудь прикольных.

 

Недостаток у кортексов один - мало регистров :mad:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Недостаток у кортексов один - мало регистров :mad:

А на мой взгляд - совершенно достаточно. Ибо кортексы затачивались и для удобства программирования на языках высокого уровня и для применения операционных систем реального времени. Чем больше регистров - тем длиннее контекст при переключении процессов. Да и при большем количестве регистров система команд претерпит радикальные изменения и неизвестно ещё в какую сторону.

Что касается асскмблера, то я им практически не пользуюсь ибо нет нужды по приведённой выше причине.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что касается асскмблера, то я им практически не пользуюсь ибо нет нужды по приведённой выше причине.

 

На мой взгляд, на ассеблере стоит писать лишь времязатратные алгоритмы, типа БПФ. Причем так, чтобы сперва дать C/C++-компилятору все откомпилировать, а потом вырезать из ассеблерного листинга данную процедуру и оформить ее в виде ассеблерной функции. А когда заработает, то подредактировать ассемблерный код так, чтобы меньше писалось в память, а больше сохранялось в регистрах (если последних достаточно).

 

А сейчас в отношении регистров меня больше интересует вопрос о том, как в них держать число double64 (которое с двойной точностью). Станут ли у M7 все регистры вдвое длиннее или только некоторые из них? (Можно слазить на сайт ARM для выяснения этого вопроса, но может быть кто-то сходу может дать ответ?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите http://www.eembc.org/coremark/

Что ATMEL, что ST - оба юзают IAR для теста.

keil реально дает 82% скорости от того, что дает iar, потому все сидят на иаре. Почему так, кто ленивее и тд - вопросы лирические. Хотя вряд ли это продлится долго.

Посмотрел. Но Keil там не упоминается. Расскажите, как вы узнали, что Keil слабее IAR.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне посчастливилось запускать Coremark на keil для STM32f7, и он показал 820 очков на 200мгц. Ну и специалисты из STM объяснили почему. Могу поделиться проектом с тестом coremark, если кому интересно.

 

keil потому не упоминается, что смысл показывать меньшую производительность отсутствует. В eembc производители сами предоставляют результаты теста.

Изменено пользователем kan35

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А сейчас в отношении регистров меня больше интересует вопрос о том, как в них держать число double64 (которое с двойной точностью). Станут ли у M7 все регистры вдвое длиннее или только некоторые из них? (Можно слазить на сайт ARM для выяснения этого вопроса, но может быть кто-то сходу может дать ответ?)

В M7 регистры как регисты, как в том же M0. Двойную точку читать и сохранять можно будет групповой операцией LDM/STM.

 

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

 

И потом, я сейчас устрою дебош. Разобью всю мебель, посуду и выпивку :twak: :maniac::smile3009:

 

Инициализация процессора по включению питания. Запуск генерации ШИМ, например для подсветки ЖКИ:

 

- на меге 256 = 16 строк кода

- на кортексе М407 = 17 строк кода

 

Блин... я всю жизнь мечтаю встретить программиста! А не мечтателя-фантаста. Хоть один тут есть? :beer: :a14:

 

Хватит уже наезжать на ассемблер и на превосходную архитектуру кортексов!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В M7 регистры как регистры, как в том же M0. Двойную точку читать и сохранять можно будет групповой операцией LDM/STM.

Ну, так куда же она читается из памяти и откуда туда пишется?

 

Блин... я всю жизнь мечтаю встретить программиста! А не мечтателя-фантаста. Хоть один тут есть? :beer: :a14:

Вам крупно повезло, это я! girl_crazy.gif Но с кортексами не работала, а потому и ассемблера их не знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хватит уже наезжать на ассемблер и на превосходную архитектуру кортексов!

Представляю Ваш щенячий восторг, когда Вы прочитаете про систему команд ARM (если Вы уже от тумбы в таком экстазе) :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Блин... я всю жизнь мечтаю встретить программиста! А не мечтателя-фантаста. Хоть один тут есть? :beer: :a14:

 

Хватит уже наезжать на ассемблер и на превосходную архитектуру кортексов!

Забавно. Интересно, как выглядит на ассемблере веб-сервер или что-то в этом духе? А если другой процессор, то затачивай перо и строчи заново? Класс! Дайте две!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, так куда же она читается из памяти и откуда туда пишется?

Ну.. у сопроцессора же есть свои регистры. У них есть свои прямые имена S0-S31. Ничего в памятях сохранять или читать не надо. Из обычных регистров пересылаем данные в регистры сопроцессора командой VMOV S0, R0 например. И всё :laughing:

 

Всего у сопроцессора 32 регистра. Но они объединены ещё и в регистровые пары, с именами D0-D15. Это как указатели в АВРках - регистры X, Y, Z, хотя на самом деле их не существует.

 

scifi

 

Я веб-сервер ещё не писал, хотя планирую. Выглядит наверное так же, как и все серверы. Только очевидно постабильней и пошустрее будет. А может и на 100% стабильный, почему бы и да? И перенести его на любой камень не пролблема. Представьте себе, теперь и в атмелах и в других камнях, один и тот же набор команд. Это же кортекс B)

 

Это раньше было, у каждого своё ядро....

 

Вот поднял сетку CAN. Всё на ассемблере, на прерываниях. Длинна UTP кабеля 137 метров. Скорость 100k. На 1.000.000 сообщений ни одной ошибки передачи/приёма. Оказалось всё просто до банальности, дольше собирался..

 

Не думаю, что http такой уж шибко сложный будет.. Я сетевые протоколы ещё на perl писал. Писанины конечно побольше, чем с CAN, ну ничего..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Именно в кортексах ассемблер самый прикольный из всех возможных! Причём полностью и хорошо документирован! Правда на английском. Нужна русская книжка. Там именно возможности и ещё раз возможности. В отличии от AVR8, где всё по струнке, тесными рядами, в 8-битном формате.

Как-нить на досуге изучите асм для DSP семейства C55xx. Сильно разочаруетесь в кортексах :biggrin:

Вот где писать на асм было удовольствие. После этого, асм кортекс - ерунда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И перенести его на любой камень не пролблема. Представьте себе, теперь и в атмелах и в других камнях, один и тот же набор команд. Это же кортекс B)

А вот мне довелось сбацать свой веб сервер (а так же TFTP, SNTP, SNMP), перейти на другой проц, а там всё это скомпилировалось и просто заработало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Человек со временем привыкает к любому языку, как к процессорному, так и к разговорному. А потом кажется, что он самый лучший. :) Вот и русский язык такой гадкий :), что до сих пор автоматические переводы на него получаются корявыми. Но даже пользуясь разговорным языком от рождения, мы в письме совершаем так много ошибок, что любой компилятор замучил бы нас варнингами и еррорами. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...