|
|
  |
Cortex-M7, Не угнаться. |
|
|
|
Mar 30 2015, 14:27
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
С# это условно копи пасте Java, но попозже. Сишники с двумя плюсами погнались за явовскими вкусностями типа гарбаш коллектора и тд и накатали свою решётку. TCP стек на ассемблер ну месяц от силы на М4, знаю американских перцев, которые только и пишут на асе под кортексы. Чуть дольше писать, чем на си, но такие челы имеются, и ценятся. Думаю от прикладных задач зависит. QUOTE (Xenia @ Mar 30 2015, 18:14)  Зачем 10 лет ждать? Как только вы начнете портировать код с STM32F7 на Atmel SAM7S (или обратно), то вас тут же проберут такие корчи, что не разогнетесь.  А вроде бы один и тот же M7. Архитектура то да, а вот фасад с заборами и решетками у каждого свой.
|
|
|
|
|
Mar 30 2015, 19:40
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(AlexandrY @ Mar 30 2015, 16:30)  В этом смысле я понимаю тех кто решил работать с ассемблером на Cortex. А я нет, во первых, асм хорош тогда, когда имея тини13 с кило флеша на борту, я делал считыватель 1wire на котором читал ключ, цифровой термодатчик, работал термостат с аналоговым задатчиком и все это передавалось по программному уарту. На сях это бы в память не влезло, а тут еще 250 байт осталось! На армах не вижу никакого смысла программить на асме, кроме вставок в си. Сколь вы будете программить сетевой стек типа lwip на асме, потому, что без него вы не попадете в ваши любимые облака  А главное, зачем... Цитата(Golikov A. @ Mar 30 2015, 14:39)  С# - имеет автоматический сборщик мусора, больше не надо заботиться чтобы количество delete совпадало с количеством new - очень удобно. Много удобных типов, самописание типов. Int.Parse(....) - разбор строки в число. А как бонус идет то что программа компилируется не в машинные коды, а в промежуточный язык, в итоге программа становиться процесоро-независимым, на любом проце поднимите фреймворк, и запускай программы. Понятно, хотя считаю динамическое выделение памяти злом, особенно в работе с хардварными девайсами и в режимах хотплаг, особенно, но это о пичках, в ООП без нее не обойтись. А вот "процесоро-независимым" считаю вообще не особо актуальным, т.к. 99% програм на дотнетах пишутся под винду на х86 машинах...
Сообщение отредактировал mantech - Mar 30 2015, 19:30
|
|
|
|
|
Mar 31 2015, 07:23
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
А смартфоны? А планшеты? Пополз микрософт и на другие платформы... Цитата На сях это бы в память не влезло, а тут еще 250 байт осталось! Откуда взялся миф что код на С всегда больше чем на Ассемблере? Он больше когда пишут быстро и просто, но если задаться целью убиться об размер.... Не забываем опять же что есть оптимизация, которая иногда делает удивительные чудеса)
|
|
|
|
|
Mar 31 2015, 07:48
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Golikov A. @ Mar 31 2015, 10:23)  Откуда взялся миф что код на С всегда больше чем на Ассемблере? Он больше когда пишут быстро и просто, но если задаться целью убиться об размер.... Не забываем опять же что есть оптимизация, которая иногда делает удивительные чудеса) В некоторых случаях ручками можно получить код компактнее, но эти случаи очень уникальны. Например, 24-битная арифметика на AVR (из жизни). В мелких задачах (а именно такие задачи решают "моргальщики светодиодом"), КПД можно поднять чуть ли не в разы, но в серьезных проектах С-оптимизация уделает любой asm-код начального уровня. Помницо... лет 5 назад... мерялся с С в части подсчета md5 (Cortex-M3): взял алгоритм из описания и сбацал его на Си за пару минут. На asm пыхтел дольше и... проиграл. В итоге удалось чуть-чуть победить С, когда использовал команды групповой загрузки регистров из памяти. С учетом полного объема кода выигрыш оказался мизерным. Вывод: asm в серьезных проектах нужно знать для чтения листингов, а не для разработки. Кста, в avr мне до сих под проще написать на asm (не забуду войну с С, когда нужно было написать с точностью до тактов soft-UART передатчик). Кста2, а генерацию VGA картинки (прием символов по UART и отображение их на VGA-мониторе) для cortem-m3 делал на C без единой asm-строчки.
|
|
|
|
|
Mar 31 2015, 10:59
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Я смотрю развиваются несколько стандартных войн: 1) AVR vs ARM / Cortex 2) IAR vs KEIL 3) ASM vs C (как же без этого) Правда развиваются вяло, так как энтузиастов уже маловато. ))) По моему сейчас уже даже оптимизацией вручную на среднем проекте нет смысла заниматься. Компилятор хорошо оптимизирует наиболее распространённые языковые конструкции. Начинаешь умничать - иди смотри результат компиляции. Не факт, что он будет лучше. А в целом, самое дорогое - это время. Тратить год на перенос проекта под ASM, по моему преступление против себя. Выигрыш будет ровно такой, какой будет за счёт выхода нового проца за это же время. )) Я M7 позиционирую для работы с TFT. В своё время был знаменитый LPC2478 - сделал на нём проект. Потом появился нога в ногу LPC1788 на кортексе, так только за счёт шинной архитектуры был выигрыш процентов на 20%. Это было даже визуально видно на дисплее 4.3" 480x272x16. Поскольку в целом даже этого камня хватало для более менее приличного проекта, то думаю М7 потянет 7", естественно без всякого видео. Ну я про stm. На М4 даже и не успел с TFT поработать. Уж больно сложный проект был. Более 2-ух лет. )))
|
|
|
|
|
Mar 31 2015, 11:42
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(SasaVitebsk @ Mar 31 2015, 13:59)  А в целом, самое дорогое - это время. Тратить год на перенос проекта под ASM, по моему преступление против себя. Выигрыш будет ровно такой, какой будет за счёт выхода нового проца за это же время. )) А это зависит от того какие ошибки чаще делаете. 90% времени это отладка. Если по любому во время отладки все смотрят скомпиленный код, то не лучше ли его сразу писать на asm? Здесь еще отягчающее обстоятельство может быть в том, что человек не использует нормальные инструменты для отладки вроде IAR или Keil-а, а сидит на голом GCC. У того тоже могут быть серьезные причины. Так что у каждой войны свой контекст, просто надо в нем разобраться.
|
|
|
|
|
Mar 31 2015, 14:10
|

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

|
SAM V71 Xplained Ultra Evaluation Kit Atmel уже выпустил демо-плату для V71 (это почти как E7, только автомобильный)! Цена $136.25 в партии из 10 шт. Тут User Guide для нее, а тут на нее схемы, герберы и прочая документация. Под S70 и E70 тоже обещают такого же вида платы выпустить, но пока ничего конкретного не нашла. Но плата получилась очень симпатичная. На нее сверху, как на Arduino, можно свою самоделку водрузить, благо разъемчики для этого есть. http://www.atmel.com/tools/ATSAMV71-XULT.aspx
|
|
|
|
|
Mar 31 2015, 14:22
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(adnega @ Mar 31 2015, 03:48)  В некоторых случаях ручками можно получить код компактнее, но эти случаи очень уникальны. Например, 24-битная арифметика на AVR (из жизни). В мелких задачах (а именно такие задачи решают "моргальщики светодиодом"), КПД можно поднять чуть ли не в разы, но в серьезных проектах С-оптимизация уделает любой asm-код начального уровня. Зависит. Вот sdcc для CC2530 (8051) такой код производит, что хочется обнять и плакать.. Ну понятно, он же клепает дженерик и не пользует все его свистульки для облегчения жизни: второй DPTR, восемь банков Rx регистров.. Но когда читаю асм код.. Не знаю, не пробовал IAR для этого..
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Mar 31 2015, 17:32
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Golikov A. @ Mar 31 2015, 10:23)  А смартфоны? А планшеты? Пополз микрософт и на другие платформы...
Откуда взялся миф что код на С всегда больше чем на Ассемблере? Он больше когда пишут быстро и просто, но если задаться целью убиться об размер.... Не забываем опять же что есть оптимизация, которая иногда делает удивительные чудеса) Да пусть ползет куда хочет, но львиная доля - это псишники под виндой. Миф берется из реальности, ибо та же самая прога, с учетом оптимизации и т.п. не влезала на 100 байт... Мое предположение - происходила инициализация "по умолчанию" того, что мне было не нужно, си, как правило много bitbang-операций заменяет на код "прочитал-изменил-записал", когда нативно это делается 1 командой, ну и вход-выход в прерывания, как правило сохраняет больше регистров, а на асме можно сэкономить, выделив регистры в "глобальное" использование, без сохранения... Цитата(adnega @ Mar 31 2015, 15:43)  Во время отладки я смотрю на отладочную консоль через UART. Иногда попадаются HardFault с указанием адреса проблемной инструкции - только в этом случае и смотрю листинг, чтобы понять в какой функции рухнуло. Уж точно не борюсь за такты и за байты. Полностью поддерживаю, ибо сначала скелет проги делаю на бумаге, разбиваю на модули, затем пишу модуль и проверяю его, после написания всех модулей, проверяю сборку. В асм код смотрел только дважды - 1) когда делал бутлоадер, 2) когда делал переключатель задач. Для всего остального есть консоль, либо жк-индикатор, или экран. За такты и байты не борюсь, но если есть возможность сделать код оптимальнее - не отказываюсь. Цитата(SasaVitebsk @ Mar 31 2015, 13:59)  Я M7 позиционирую для работы с TFT. В своё время был знаменитый LPC2478 - сделал на нём проект. Слабоваты они для дисплеев, разве, что только в качестве более расширенных жк-индикаторов. Чтоб был нормальный дисплей и на нем не было слайд-шоу, нужно по крайней мере ддр2или3 и какой-либо апп. ускоритель. Цитата(SasaVitebsk @ Mar 31 2015, 13:59)  Я смотрю развиваются несколько стандартных войн: 1) AVR vs ARM / Cortex 2) IAR vs KEIL 3) ASM vs C (как же без этого) Каждое для своей категории: 1) авр для мелких задач, арм для задач быстродействия, сети, дисплеев 2) на любителя, я выбрал иар, т.к. считаю, что у него более путная иде и неплохой компилятор. 3) си уже дефакто везде, на чистом асме "ваяют" только маньяки... Цитата(adnega @ Mar 31 2015, 10:48)  Кста2, а генерацию VGA картинки (прием символов по UART и отображение их на VGA-мониторе) для cortem-m3 делал на C без единой asm-строчки. Ну если сам делал это на меге128, на асме правда, то уж кортекс-то с этим на раз-два справится
|
|
|
|
|
Mar 31 2015, 19:26
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(mantech @ Mar 31 2015, 20:32)  а на асме можно сэкономить, выделив регистры в "глобальное" использование, без сохранения... Хорошие RTOS-ы (MQX) имеют спец опции для управления объемом сохраняемого контекста. Цитата(mantech @ Mar 31 2015, 20:32)  3) си уже дефакто везде, на чистом асме "ваяют" только маньяки... Не забываем про поддержку очень старого оборудования. Например в RTOS NuttX штатно идет эмулятор команд Z80. Вот эмуляция всяких зайлогов тоже интересная тема для M7.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|