Как стать автором
Обновить

Комментарии 24

нуу… когда kAIPSTZ_PeripheralAllowUntrustedMaster == kAIPSTZ_PeripheralWriteProtected это пять… :D
Так ведь именно эти константы и не равны?
Метрическая сила! Мозги мои — плавленные сырки :( Посыпаю лысину пеплом

О нет! Я наивно полагала, что только писишный софт умудряется работать (!) несмотря на тысячи ошибок (но как?). А такое творится ещё и в эмбеддеде! Но как оно работает при этом?

Такое, как в статье, не работает. =)
Наивно полагать, что кривые битовые маски не работают.
Да кривые битовые маски — это ещё самое наменьшее зло. =)
Открою секрет… этот код может вообще не вызываться.
Открою ужасающий секрет — embedded-софт тестируют как минимум на порядок меньше и хуже, чем любой зачуханный веб-сервер. И пишут его зачастую динозавры, отладчик — это для слабаков, а «если код компилируется, значит, все работает».
Код на С. Компилируется. Значит, работает.
Я не шучу, к сожалению.

И никто этого не замечает, потому что в веб-сервер каждый день тыкают пальцами миллионы пользователей, и любые ошибки выплывают гораздо быстрее.
Выбрал ряд предупреждений, которые на мой взгляд могут представлять интерес и выгрузил их в полный HTML-лог (с навигацией по коду). Интересующиеся могут скачать архив rt-thread-html-log.zip и посмотреть, что есть ещё интересного. Заодно, это повод познакомиться с нашим новым форматом отчётов.

Или можно подождать статью, где я разберу ошибки в проекте RT-Thread и расскажу про поддержку KEIL, IAR.
Доделываем. Будет в следующем релизе.
Встречайте PVS-Studio 6.22:

  • Добавлена поддержка проверки проектов, использующих компиляторы Keil MDK ARM Compiler 5 и ARM Compiler 6.
  • Добавлена поддержка проверки проектов, использующих компилятор IAR C/C++ Compiler for ARM.
Спасибо. Как-раз устанавливаю.
А кейл? Кейл? Кейл-то как? Как он, родненький?
Джва года
Боже мой, да я пять лет жду такую новость!
Если можно, то очень хочу :) Узнайте, пожалуйста!
Выложили бету, можете попробовать.
Спасибо большое!
Мне уже неловко вам писать, но… а как ей пользоваться? -_-' Я попробовал запустить standalone и мониторить запуски компилятора, но компиляцию в Кейле она не увидела. В Кейл ничего не интегрировалось (я не особо верил, но вдруг?).

Наверное, я поторопился; надо было подождать вашей следующей статьи.
1. Попробуйте запустить Standalone от администратора;
2. Какой версии ваш компилятор Keil? 5/6.
Попробовал из под администратора, попробовал и 5 (5.06 update 4 build 422) и 6.6, никаких изменений.
Перешли в ЛС для выяснения деталей запуска.
Нисколько не принижая важность статического анализа кода, считаю необходимым написать, что даже
*pulHigh = ((ulTemp & PECI_M0D0C_HITHR_M) >> PECI_M0D0C_HITHR_S);
НИКАК не может считаться хорошим стилем по двум причинам:
1) используются две константы, которые должны изменяться синхронно, а задаются просто так;
2) данный фрагмент используется многократно и ДОЛЖЕН быть заменен inline функцией или даже макросом, при всех недостатках последнего, хуже, чем есть, точно не будет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий