|
|
  |
Cortex-M7, Не угнаться. |
|
|
|
Mar 28 2015, 13:45
|
Частый гость
 
Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471

|
Цитата(mantech @ Mar 27 2015, 16:01)  Ресурсов у нее хватало, конечно у серии "мега", а простота очевидна - запустить таймер или уарт - 3-4 ассемблерных команды! Где такое в арме?? А ассемблер, или авр, элементарный и интуитивно понятный или армовские навороченные команды, где без книжки непонятно, что и какие суффиксы и префиксы... Ну понеслась она по кочкам Таймеры в кортексах наворочены до тошнотиков, но программировать их увлекательно! (нежели уТомительно). Поэтому да, что бы запустить ножку на генерацию ШИМ, понадобится 17 строк кода. Ну так это же прикольно! Там столько возможностей, что аж дурно становится.. И потом, что тут за наезды на ассемблер? Именно в кортексах ассемблер самый прикольный из всех возможных! Причём полностью и хорошо документирован! Правда на английском. Нужна русская книжка. Там именно возможности и ещё раз возможности. В отличии от AVR8, где всё по струнке, тесными рядами, в 8-битном формате. Только могли бы в М7 набросить командочек ещё каких-нибудь прикольных. Недостаток у кортексов один - мало регистров
|
|
|
|
|
Mar 28 2015, 17:02
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(IgorKossak @ Mar 28 2015, 19:22)  Что касается асскмблера, то я им практически не пользуюсь ибо нет нужды по приведённой выше причине. На мой взгляд, на ассеблере стоит писать лишь времязатратные алгоритмы, типа БПФ. Причем так, чтобы сперва дать C/C++-компилятору все откомпилировать, а потом вырезать из ассеблерного листинга данную процедуру и оформить ее в виде ассеблерной функции. А когда заработает, то подредактировать ассемблерный код так, чтобы меньше писалось в память, а больше сохранялось в регистрах (если последних достаточно). А сейчас в отношении регистров меня больше интересует вопрос о том, как в них держать число double64 (которое с двойной точностью). Станут ли у M7 все регистры вдвое длиннее или только некоторые из них? (Можно слазить на сайт ARM для выяснения этого вопроса, но может быть кто-то сходу может дать ответ?)
|
|
|
|
|
Mar 28 2015, 18:36
|
Частый гость
 
Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471

|
Цитата(Xenia @ Mar 28 2015, 21:02)  А сейчас в отношении регистров меня больше интересует вопрос о том, как в них держать число double64 (которое с двойной точностью). Станут ли у M7 все регистры вдвое длиннее или только некоторые из них? (Можно слазить на сайт ARM для выяснения этого вопроса, но может быть кто-то сходу может дать ответ?) В M7 регистры как регисты, как в том же M0. Двойную точку читать и сохранять можно будет групповой операцией LDM/STM. На мой взгляд ассемблер это и есть единственный язык, на котором можно писать программы. Потому что он простой и очень точный, по отношению к архитектуре. И потом, я сейчас устрою дебош. Разобью всю мебель, посуду и выпивку   Инициализация процессора по включению питания. Запуск генерации ШИМ, например для подсветки ЖКИ: - на меге 256 = 16 строк кода - на кортексе М407 = 17 строк кода Блин... я всю жизнь мечтаю встретить программиста! А не мечтателя-фантаста. Хоть один тут есть? Хватит уже наезжать на ассемблер и на превосходную архитектуру кортексов!
|
|
|
|
|
Mar 29 2015, 01:04
|
Частый гость
 
Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471

|
Цитата(Xenia @ Mar 28 2015, 23:23)  Ну, так куда же она читается из памяти и откуда туда пишется? Ну.. у сопроцессора же есть свои регистры. У них есть свои прямые имена S0-S31. Ничего в памятях сохранять или читать не надо. Из обычных регистров пересылаем данные в регистры сопроцессора командой VMOV S0, R0 например. И всё  Всего у сопроцессора 32 регистра. Но они объединены ещё и в регистровые пары, с именами D0-D15. Это как указатели в АВРках - регистры X, Y, Z, хотя на самом деле их не существует. scifiЯ веб-сервер ещё не писал, хотя планирую. Выглядит наверное так же, как и все серверы. Только очевидно постабильней и пошустрее будет. А может и на 100% стабильный, почему бы и да? И перенести его на любой камень не пролблема. Представьте себе, теперь и в атмелах и в других камнях, один и тот же набор команд. Это же кортекс  Это раньше было, у каждого своё ядро.... Вот поднял сетку CAN. Всё на ассемблере, на прерываниях. Длинна UTP кабеля 137 метров. Скорость 100k. На 1.000.000 сообщений ни одной ошибки передачи/приёма. Оказалось всё просто до банальности, дольше собирался.. Не думаю, что http такой уж шибко сложный будет.. Я сетевые протоколы ещё на perl писал. Писанины конечно побольше, чем с CAN, ну ничего..
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|