|
Какой контроллер выбрать в образовательных целях., Определяюсь с выбором контроллера для самообразования. |
|
|
|
Oct 8 2011, 05:33
|
Группа: Новичок
Сообщений: 7
Регистрация: 21-06-11
Из: г. Усолье-Сибирское Иркутской обл.
Пользователь №: 65 813

|
Доброго всем времени суток!
Задача состоит в выборе, отладочной платки для изучения данного типа контроллеров(ARM). Я довольно свободно програмирую на АСМе для AVR(ATmega328p) но вот хочется чего-то нового. Я недавно начал изучать эту тему.
Смотрел здесь: http://www.starterkit.ru/html/index.php
Выбрал примерно следующее: http://www.starterkit.ru/html/index.php?name=shop&op=view&id=2 и http://www.starterkit.ru/html/index.php?name=shop&op=view&id=36 - просто интересный девайс
Что вы по этому поводу думаете? Или всёж не стоит брать это, а выбрать что-то другое и в совсем другом месте?
|
|
|
|
|
 |
Ответов
|
Oct 10 2011, 09:33
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414

|
Код (лучший, худший, такой же -- неважно) даёт не ЯВУ, а компилятор этого самого ЯВУ. И результат крайне сильно зависит от компилятора. Например, кейловский Си, когда я решил проверить небольшую подпрограммку, давал код, чуть ли не вдвое более качественный, чем GCC. Правда, написанный вручную на ассемблере был ещё лучше, но уже ненамного.
Ну а насчёт указанных Вами 99%... Скажу грубо: если эта цифра соответствует действительности, то 99% программистов, работающих с АРМом -- дебилы, причём не столько в ругательном, сколько в медицинском смысле. У АРМа очень простая система команд, и грамотное её использование никаких проблем для человека с вполне заурядными умственными способностями не представляет (у ИА-32, например, куда сложней и запутанней). Никакой особой многовариантности там, кстати, нет, так что оптимальный вариант чаще всего один, и он самоочевиден. Конечно, чтобы научиться "на автопилоте" выбирать именно лучший вариант, нужна практика, но так в любой области: нужно набить руку, чтобы стать мастером.
|
|
|
|
|
Oct 10 2011, 10:19
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(SII @ Oct 10 2011, 12:33)  ... и грамотное её использование никаких проблем для человека с вполне заурядными умственными способностями не представляет Там, где без этого не обойтись, да. А так мне гораздо проще написать проект на Си за один день, чем на асме за две недели. В конце концов, деньги мне платят за работающие проекты, а не за то, сколько я над ними просиживаю. И сопровождать проект на Си гораздо проще. И читать в 1000 раз проще, особенно если проект большой. Так что в 99% смысла в программировании на асме для ARM нет. Оставшийся процент - это те самые зубодробительные задачи, вроде ЦОС на пределе возможностей МК ...
|
|
|
|
|
Oct 10 2011, 11:35
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414

|
Цитата(kovigor @ Oct 10 2011, 14:19)  Там, где без этого не обойтись, да. А так мне гораздо проще написать проект на Си за один день, чем на асме за две недели. В конце концов, деньги мне платят за работающие проекты, а не за то, сколько я над ними просиживаю. И сопровождать проект на Си гораздо проще. И читать в 1000 раз проще, особенно если проект большой. Так что в 99% смысла в программировании на асме для ARM нет. Оставшийся процент - это те самые зубодробительные задачи, вроде ЦОС на пределе возможностей МК ... Во-первых, о читабельности. Запутать программу в большей степени, чем на Си, можно только на Си++ и Брэйнфаке  Понятно, что, если писать аккуратно, не стремиться экономить нажатия на клавиши и валить в одну строчку несколько разных операций, читабельность кода на Си будет выше, чем на ассемблере. Но это не такая большая проблема, поскольку никто не отменял комментарии для пояснения, где что делается. Можно сказать, что написание комментариев увеличивает время, расходуемое на задачу, и это действительно так. Но, с другой стороны, комментарии не только облегчают понимание кода в будущем, если к нему придётся вернуться, но зачастую помогают выбрать более эффективный путь решения задачи: пока их пишешь, обдумываешь эту самую задачу (конечно, речь о полезных комментариях, а не из серии: MOV R0, R1 ; Пересылаем R1 в R0 ). Во-вторых, один день и две недели, т.е. разница в 14 раз -- это Вы загнули. Единственное, что всегда занимает на ассемблере больше времени -- это кодирование программы (надо набрать куда больше исходного текста, чем на языке высокого уровня). Однако решение задачи не из одного кодирования состоит, причём кодирование занимает весьма небольшую часть времени. Отладка, например, на ассемблере может в некоторых случаях оказаться даже проще, ведь там ты реально видишь, что делает процессор, а не пользуешься какими-то своими представлениями о том, что должно бы делаться, исходя лишь из текста программы на ЯВУ (всякие гадости могут возникать как из тонких моментов языка, так и из-за банальных ошибок в компиляторе). Решение задачи на "алгоритмическом" уровне -- т.е. выбор подходящего алгоритма, определение структур данных и т.п. -- вообще от языка программирования никак не зависит, по большому счёту (а если зависит, то больше в плане возможностей языка: ну нельзя на классическом Фортране использовать списки -- у него нет средств работы с адресами памяти, как их ни называй). В общем, 14-кратная разница во времени создания программы на ассемблере и ЯВУ -- это скорей исключение, причём редкое, чем правило. На ассемблере уровня ARMа, по моим ощущениям, разница будет в 2-3 раза, на более удобном ассемблере (PDP-11 и VAX-11, например) -- 20-50% времени. Если использовать не ненадёжный и провоцирующий ошибки Си, а Паскаль или Аду, разрыв станет больше (в первую очередь за счёт резкого уменьшения числа ошибок, а значит, облегчения отладки), но там проблема найти инструментарий (например, для АРМа единственная доступная Ада входит в состав GCC, что автоматически означает низкое качество генерируемого кода, а временами неверную кодогенерацию; насчёт ФриПаскаля ничего не скажу, поскольку пока никак не попробую). Ну а в-третьих -- и самое главное в данном случае: в этой теме речь идёт о контроллере для изучения, а не для работы -- а это немного разные вещи. Не знаю, как кто, а я в принципе не могу считать грамотным программиста, который не владеет свободно ассемблером того процессора, с которым он работает (речь, естественно, о сегменте микроконтроллеров идёт; для решения всяких там бизнес-задач на ПК ассемблер в принципе не нужен, и даже подозревать о его существовании не требуется); соответственно, для меня обучение включает в себя и изучение системы команд и прочей низкоуровневой архитектуры.
|
|
|
|
|
Oct 11 2011, 13:28
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(SII @ Oct 10 2011, 14:35)  Во-первых, о читабельности. Запутать программу в большей степени, чем на Си, можно только на Си++ и Брэйнфаке  Понятно, что, если писать аккуратно, не стремиться экономить нажатия на клавиши и валить в одну строчку несколько разных операций, читабельность кода на Си будет выше, чем на ассемблере. ........... Во-вторых, один день и две недели, т.е. разница в 14 раз -- это Вы загнули. Единственное, что всегда занимает на ассемблере больше времени -- это кодирование программы (надо набрать куда больше исходного текста, чем на языке высокого уровня). Однако решение задачи не из одного кодирования состоит, причём кодирование занимает весьма небольшую часть времени. Отладка, например, на ассемблере может в некоторых случаях оказаться даже проще ............ В общем, 14-кратная разница во времени создания программы на ассемблере и ЯВУ -- это скорей исключение, причём редкое, чем правило. На ассемблере уровня ARMа, по моим ощущениям, разница будет в 2-3 раза, на более удобном ассемблере (PDP-11 и VAX-11, например) -- 20-50% времени. Если использовать не ненадёжный и провоцирующий ошибки Си, а Паскаль или Аду, разрыв станет больше (в первую очередь за счёт резкого уменьшения числа ошибок, а значит, облегчения отладки), Бред какой-то. Самое грустное- что кто-то из начинающих может это принять за чистую монету. to Топикстартер- фильтруй! верить всему на слово не стоит. Дискуссию холиварную поддерживать не буду, но ведь должен же кто-то дать четкое определение, а не мямлить "не собираемся спорить", хотя уверен многие прочитав это, покрутили пальцем у виска. А раздел-то для начинающих, которые и не видят что более опытные товарищи просто игнорируют этот явный маразм.
|
|
|
|
Сообщений в этой теме
0b11011110 Какой контроллер выбрать в образовательных целях. Oct 8 2011, 05:33 SII А зачем Вам плата с ПЛИС, а не только МК? Это ж пр... Oct 8 2011, 09:09 haker_fox QUOTE (0b11011110 @ Oct 8 2011, 14:33) Чт... Oct 8 2011, 09:38 kovigor Цитата(0b11011110 @ Oct 8 2011, 08:33) За... Oct 8 2011, 10:36 SII Ну, насчёт асма лично у меня прямо противоположное... Oct 8 2011, 10:51 kovigor Цитата(SII @ Oct 8 2011, 13:51) Ну, насчё... Oct 8 2011, 11:06 SII О чём спорить? О языках? Так я не спорю, а тоже вы... Oct 8 2011, 11:42 DpInRock Цитаталучше брать плату на AT91SAM9G45
Присоединяю... Oct 8 2011, 15:28 Harbinger Смотря какие задачи.
Если поставили вписаться в 90... Oct 8 2011, 16:16 kovigor Цитата(Harbinger @ Oct 8 2011, 19:16) Кас... Oct 8 2011, 17:11  haker_fox QUOTE (kovigor @ Oct 9 2011, 02:11) Ну и ... Oct 9 2011, 01:56 muravei Цитата(0b11011110 @ Oct 8 2011, 09:33) Я ... Oct 9 2011, 12:41 SII Не такие уж большие. Если хорошо освоил ассемблер ... Oct 9 2011, 20:29 Harvester Цитата(SII @ Oct 10 2011, 00:29) Не такие... Oct 10 2011, 05:22 dxp Не хотели холивар начинать, а всё-таки начали.
С... Oct 10 2011, 12:48 SII ЦитатаНе хотели холивар начинать, а всё-таки начал... Oct 10 2011, 15:12 0b11011110 Спорить о C & ASM уже заезженая и не актуальна... Oct 10 2011, 13:19 haker_fox QUOTE (0b11011110 @ Oct 10 2011, 22:19) S... Oct 10 2011, 14:07 haker_fox Чтож, мнений выражено достаточно) Каждый изложил в... Oct 11 2011, 02:04 0b11011110 Могу предложить несколько подходящих вариантов:
ht... Oct 11 2011, 04:00 sasamy Цитата(0b11011110 @ Oct 11 2011, 08:00) н... Oct 11 2011, 06:29 SII Этот совершенно нормально работает с процессорными... Oct 11 2011, 10:50 starterkit ЦитатаЭтот совершенно нормально работает с процесс... Oct 11 2011, 12:25 SII Цитата(starterkit @ Oct 11 2011, 16:25) З... Oct 11 2011, 12:41 starterkit Собственно, я сюда заглянул лишь по просьбе челове... Oct 11 2011, 12:57 SII ЦитатаЭтого выпада я вобще не понял...
Если не по... Oct 11 2011, 14:12 sasamy Цитата(SII @ Oct 11 2011, 18:12) Полность... Oct 11 2011, 14:41 Ruslan1 Цитата(SII @ Oct 11 2011, 17:12) А это и ... Oct 11 2011, 16:59  SII Цитата(Ruslan1 @ Oct 11 2011, 20:59) Ну, ... Oct 11 2011, 18:07   Ruslan1 Цитата(SII @ Oct 11 2011, 21:07) Подозрев... Oct 11 2011, 20:58    SII Цитата(Ruslan1 @ Oct 12 2011, 00:58) Не, ... Oct 11 2011, 22:13 SII sasamy, я неудачно выразился, так сказать. Имелось... Oct 11 2011, 14:57 haker_fox QUOTE (SII @ Oct 11 2011, 19:50) Единстве... Oct 12 2011, 02:58
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|