|
LPC vs STM32 cortex-M3 |
|
|
|
 |
Ответов
(105 - 119)
|
Nov 5 2012, 15:23
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(pitt @ Nov 5 2012, 03:34)  Добавлю еще один недостаток: качество кода, примеров, знание принципов программирования, языка С отавляет, мягко говоря, желать...Понятия bit-field, enum NXP незнакомы, количество "magic number" зашкаливает... Простие меня электрики, но это ваш стиль. Другими словами, софтвер НЕПРОФЕССИОНАЛЕН! Да, и вайла описания битое у NXP нет! У Atmel с этим серьезных проблем не обнаружил. Ужос-то какой! Гадский NXP не написал хидеры в приятном Вам стиле. Если микроконтроллер берется в разработку плотно и надолго (на несколько проектов/серию, не для "халтурки"), то хидеры вообще-то желательно написать полностью "под себя" самому. Внести свою систему обзывания регистров, битов в регистрах, размещения определений в секциях, учесть особенности компилятора(-ов). Попутно, создавая хидер, внимательно прочесть документацию (когда обзываешь биты - так или иначе читаешь за что они отвечают и как работают) и получить более-менее полное представление об аппаратуре. Для начала можно описывать не все блоки - а только нужные, и потом расширять хидер по мере освоения новых блоков. Угу, это сначала долго, требует кропотливого труда, но потом проблем сильно меньше обычно и при наличии в работе полудюжины архитектур мозгам потом сильно проще работать в едином, собственноручно созданном формате. ИМХО, если компания/разработчик профессионалы (опытные, уже занимается софтом для контроллеров некоторое время), то обычно есть свои наработки в виде выбранной RTOS, стеков USB/TCP и прочего, и от контроллера требуется только соответствовать заявленным техническим характеристикам, и иметь более-менее удобоваримую документацию. На софтовый мусор, предлагаемый производителями, как правило можно не смотреть - это для хомячков, глючное, непортируемое, часто с лицензионными ограничениями.
|
|
|
|
|
Nov 5 2012, 23:55
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

|
Цитата(VslavX @ Nov 5 2012, 10:23)  Ужос-то какой! Гадский NXP не написал хидеры в приятном Вам стиле. Если микроконтроллер берется в разработку плотно и надолго (на несколько проектов/серию, не для "халтурки"), то хидеры вообще-то желательно написать полностью "под себя" самому. Внести свою систему обзывания регистров, битов в регистрах, размещения определений в секциях, учесть особенности компилятора(-ов). Попутно, создавая хидер, внимательно прочесть документацию (когда обзываешь биты - так или иначе читаешь за что они отвечают и как работают) и получить более-менее полное представление об аппаратуре. Для начала можно описывать не все блоки - а только нужные, и потом расширять хидер по мере освоения новых блоков. Угу, это сначала долго, требует кропотливого труда, но потом проблем сильно меньше обычно и при наличии в работе полудюжины архитектур мозгам потом сильно проще работать в едином, собственноручно созданном формате. ИМХО, если компания/разработчик профессионалы (опытные, уже занимается софтом для контроллеров некоторое время), то обычно есть свои наработки в виде выбранной RTOS, стеков USB/TCP и прочего, и от контроллера требуется только соответствовать заявленным техническим характеристикам, и иметь более-менее удобоваримую документацию. На софтовый мусор, предлагаемый производителями, как правило можно не смотреть - это для хомячков, глючное, непортируемое, часто с лицензионными ограничениями. Желаю всяческих успехов в переписывании всех и вся! И не жалейте времени...
--------------------
|
|
|
|
|
Nov 6 2012, 04:40
|
Местный
  
Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866

|
Цитата(pitt @ Nov 6 2012, 03:55)  Желаю всяческих успехов в переписывании всех и вся! И не жалейте времени... Жалеть время придется Вам, если будете использовать "професиональный софтвер" от производителя. Там очень часто встречаются ошибки, которые могут дорого обойтись. PS: Работал (т.е. делал реальные проекты, а не игрался с отладками) с мк атмела, nxp и stm. Самые приятные ощущения от nxp.
--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
|
|
|
|
|
Nov 6 2012, 05:38
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(VslavX @ Nov 5 2012, 18:23)  Если микроконтроллер берется в разработку плотно и надолго (на несколько проектов/серию, не для "халтурки"), то хидеры вообще-то желательно написать полностью "под себя" самому. Внести свою систему обзывания регистров, битов в регистрах, размещения определений в секциях, учесть особенности компилятора(-ов). Не вижу смысла в переписывании заголовочных файлов. К примеру, в stm32f2xx.h все регистры и биты описаны, близко к техническому руководству, зачем же их "обзывать" иначе? Другое дело - дополнить чем-то... Лучше пройтись по этому заголовку, глядишь, на умное решение натолкнешься...
|
|
|
|
|
Nov 6 2012, 06:20
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(ViKo @ Nov 6 2012, 07:38)  Не вижу смысла в переписывании заголовочных файлов. К примеру, в stm32f2xx.h все регистры и биты описаны, близко к техническому руководству, зачем же их "обзывать" иначе? Другое дело - дополнить чем-то... Лучше пройтись по этому заголовку, глядишь, на умное решение натолкнешься... ИМХО, готовые хидеры тоже как бы имеют право на жизнь. Тогда разработчик их принимает "как есть", не парится насчет их формата и не устраивает "хомячковых драм онлайн" типа "гадский разработчик не знает про битовые поля". С другой стороны, если есть уже куча своего софта, уже отлаженного и вылизанного, портируемого на разные чипы, и все уже разложено по полочкам - то почему бы новый контроллер не встроить в эту систему полочек. Это как штаны - можно открыть шкаф и бросить комом, а можно аккуратно сложить и положить на полку (или даже повесить на вешалку). Результат то один - штаны в шкафу, вот только слегка по-разному они там лежат. Собственно писать свои хидеры недолго, у меня основное время тратится на чтение документации и вникание в нее. Новополученная информация закрепляется еще и в письменном виде - такая вот особенность со студенческих лет у меня - при подготовке к экзаменам исписывал еще бумаги в 2-3 раза больше чем объем конспекта. Поэтому лично для меня переписывание хидеров достаточно полезно - дальше работать с контроллером мне проще. Ну и удовольствие от того, что "мои штаны аккуратно висят на вешалке". (Не, в реальном шкафу джинсы таки часто комом  ) И еще момент. Софт-то усложняется и усложняется. Сотни тысяч сишных строк. И если постоянно "пихать штаны комом" то в шкафу появляется неряшливая куча, которую может оказаться достаточно тяжело разгребать.
|
|
|
|
|
Nov 6 2012, 07:55
|
Местный
  
Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797

|
Цитата(scifi @ Nov 6 2012, 10:43)  Кстати, устраняется зависимость от компилятора (keil/iar/...). Это у кого хидеры такие классные, что от компилятора зависят? PS переписывание хидеров считаю делом неблагодарным, в отличие от библиотек, кои часто оставляют желать лучшего.
|
|
|
|
|
Nov 6 2012, 11:41
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(mempfis_ @ Nov 6 2012, 14:52)  -1 против STM32 - кто пользуется CMSIS начнут защищать что это упрощает/ускоряет разработку - IMHO забивает голову, раздувает код, снижает производительность А вы, случаем, CMSIS с SPL не перепутали??? )))) Цитата один раз попробовал - впечатления ужасные. Дык... "один раз" - ещё не... эксперт по STM32...
|
|
|
|
|
Nov 6 2012, 15:03
|
Местный
  
Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197

|
Цитата(IgorKossak @ Nov 6 2012, 17:07)  CMSIS есть и для LPC. Никто не заставляет пользоваться CMSIS ...... Тут следует, наверное, уточнить, что CMSIS определяет поддержку ядра, и определяет поддержку периферии. Те макросы и функции что относятся к ядру наверное использовать следует, так как они распространяются на ВСЕ Cortex-M3 а также скорее всего пригодны и для M4 и для M0. А вот поддержка перифирии, да она у NXP не идеальна, код местами написан кривовато, тем не менее всё тщательно задоксигенено и примеры и библиотека. Еще пару слов об NXP ибо в рабочей обстановке имел дело только с ними. В своё время выбор был сделан в пользу LPC2478 ибо такой комбайн из периферии был только у голландцев. Периферия у них неплохая UART сделан аля '550, SPI имеет поддержку DMA, I2C ясное дело сделано лучше всех так как это детище Philips-а(как и компакт диски  ). Разработчики стараются соблюсти наследсвенность, совместимость софта. Начиная с LPC2101...03 заканчивая LPC23xx 24xx. При переходе на Cortex-M3 -- были сохранены многие модули почти неизменёнными или доработанными чуть-чуть. Поэтому LPC23xx--LPC176x,175x а LPC24xx -- LPC177x. Другое дело что не во всех случаях эта совместимость приятна и радует. Благодоря этой совместимости мне удалось примеры (UART, USB HOST) для LPC176x запустить на LPC2468, чему и посвящен мой проектUSB device правда пока у меня не запустился. (
Сообщение отредактировал SyncLair - Nov 6 2012, 15:03
--------------------
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|