{"id":177,"date":"2017-11-22T00:57:40","date_gmt":"2017-11-21T23:57:40","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=177"},"modified":"2017-12-30T19:20:18","modified_gmt":"2017-12-30T18:20:18","slug":"cppcheck-in-openstm32","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f746\/cppcheck-in-openstm32\/","title":{"rendered":"CppCheck in OpenSTM32"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f746\/openstm32-bugreports\/\" title=\"OpenSTM32 BugReports\"><span class=\"meta-nav\">\u2190<\/span> OpenSTM32 BugReports<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f746\/allgemeines-zu-den-stm32f7-librarys\/\" title=\"Allgemeines zu den STM32F7-Librarys\">Allgemeines zu den STM32F7-Librarys <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Um Fehler im Quellcode zu finden (die der Compiler nicht findet)<br \/>\ngibt es mehrere M\u00f6glichkeiten. Ich beschreibe hier das kostenlose<br \/>\nTool zur statischen Code Analyse \u201c<strong>CppCheck<\/strong>\u201d<\/p>\n<p>CppCheck kann entweder \u201cstandalone\u201d in einer Windows GUI<br \/>\neinzelne (oder mehrere) C-Files pr\u00fcfen oder funktioniert auch<br \/>\nals Plugin in einer IDE (z.B. Eclipse).<\/p>\n<p>Ich beschreibe hier den Weg wie man CppCheck unter Eclipse<br \/>\n(im OpenSTM32) zum laufen bekommt.<\/p>\n<p>Zur Info hier der Weblink zum Eclipse CppCheck Projekt :<br \/>\n<a href=\"https:\/\/code.google.com\/a\/eclipselabs.org\/p\/cppcheclipse\/\" target=\"_blank\" rel=\"noopener\">LINK<\/a><\/p>\n<p><span style=\"text-decoration: underline;\">1. CppCheck plugin installieren<\/span><\/p>\n<p>Als erstes OpenSTM32 starten und unter \u201cHelp\/install new software\u2026\u201d<br \/>\nden Button \u201cAdd\u201d bet\u00e4tigen.<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5807\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_01-300x294.jpg\" alt=\"cppcheck_01\" width=\"300\" height=\"294\" \/><\/a><\/p>\n<p>dann im Feld \u201cLocation\u201d den Pfad des Repositorys angeben<br \/>\n\u201chttp:\/\/cppcheclipse.eclipselabs.org.codespot.com\/svn\/update\/\u201d<br \/>\nund per \u201cOK\u201d best\u00e4tigen.<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_02.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5808\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_02-300x114.jpg\" alt=\"cppcheck_02\" width=\"300\" height=\"114\" \/><\/a><\/p>\n<p>Jetzt \u201ccppcheck\u201d aktivieren und das Fenster mit \u201cFinish\u201d verlassen.<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_03.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5810\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_03-300x297.jpg\" alt=\"cppcheck_03\" width=\"300\" height=\"297\" \/><\/a><\/p>\n<p><span style=\"text-decoration: underline;\">2. Binary von CppCheck downloaden :<\/span><\/p>\n<p>Unter dem Link \u201chttp:\/\/sourceforge.net\/projects\/cppcheck\/\u201d<br \/>\nfindet sich das aktuelle Binary das runtergeladen und auf<br \/>\ndem PC installiert werden muss.<\/p>\n<p>Der Installationspfad wird sp\u00e4ter noch gebraucht !!<\/p>\n<p><span style=\"text-decoration: underline;\">3. Pfad Einstellung in OpenSTM32 vornehmen :<\/span><\/p>\n<p>In OpenSTM32 unter \u201cWindow\/Preferences\u201d den<br \/>\nEintrag \u201cC\/C++\/cppcheclipse\u201d ausw\u00e4hlen<br \/>\nund das Exe-File im gerade installierten CppCheck Ordner<br \/>\nmit dem Button \u201cBrowse\u201d suchen.<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_04.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5811\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_04-300x262.jpg\" alt=\"cppcheck_04\" width=\"300\" height=\"262\" \/><\/a><\/p>\n<p>Die Version von CppCheck muss jetzt automatisch<br \/>\nangezeigt werden.<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_05.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5813\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_05-300x241.jpg\" alt=\"cppcheck_05\" width=\"300\" height=\"241\" \/><\/a><\/p>\n<p><span style=\"text-decoration: underline;\">4. CppCheck settings :<\/span><\/p>\n<p>Unter\u00a0\u201dC\/C++\/cppcheclipse\/settings\u201d kann jetzt noch eingestellt<br \/>\nwerden, welche Fehler angezeigt werden sollen.<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_06.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5827\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_06-261x300.jpg\" alt=\"cppcheck_06\" width=\"261\" height=\"300\" \/><\/a><\/p>\n<p>das Fenster mit \u201cApply\u201d und \u201cOK\u201d schlie\u00dfen.<\/p>\n<p><span style=\"text-decoration: underline;\">5. Erster Test :<\/span><\/p>\n<p>Wenn alles fertig ist kann CppCheck per<br \/>\nrechter Maustaste und \u201cCppCheck\/run cppcheck\u201d gestartet werden<\/p>\n<p>Hier ein Beispiel von meinem Blinky-Program<br \/>\nmit ein paar absichtlichen Fehlern.<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_07.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5828\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/12\/cppcheck_07-300x226.jpg\" alt=\"cppcheck_07\" width=\"300\" height=\"226\" \/><\/a><\/p>\n<p>Zeile 14 : Die IF-Bedingung wird nie erf\u00fcllt.<br \/>\nZeile 15 : Der Index ist nicht erlaubt.<br \/>\nZeile 31 : Die Funktion wird nie aufgerufen.<\/p>\n<p>Fertig.<\/p>\n<hr \/>\n<h3 id=\"comments-title\">2 Antworten auf <em>CppCheck in OpenSTM32<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-4424\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-4424\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/9fd3d5bde6304cf9f30120d717721ef9?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Fabrice<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">3. Dezember 2015 um 21:51<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Viel Danke f\u00fcr die Infos Uwe (Great Tutorial) <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_wink.gif\" alt=\";)\" \/><\/p>\n<p>Wegen dich mu\u00df das jetzt auch installieren <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_wink.gif\" alt=\";)\" \/><\/p>\n<p>Gru\u00df.<\/p>\n<p>Fabrice.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-4428\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-4428\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/9fd3d5bde6304cf9f30120d717721ef9?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Fabrice<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">5. Dezember 2015 um 11:16<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Als Infos ,<\/p>\n<p>Wenn ich das auf das zweite Rechner installiert haben , was paar dll nicht gefunden wenn ich versucht habe das cppcheck zu testen.<br \/>\nL\u00f6sung ist das \u2018Visual C\/C++ 2015 redistribuable\u2019 zu installieren und wird alles OK.<\/p>\n<p>Gru\u00df.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Um Fehler im Quellcode zu finden (die der Compiler nicht findet) gibt es mehrere M\u00f6glichkeiten. Ich beschreibe hier das kostenlose Tool zur statischen Code Analyse \u201cCppCheck\u201d CppCheck kann entweder \u201cstandalone\u201d in einer Windows GUI einzelne (oder mehrere) C-Files pr\u00fcfen oder &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f746\/cppcheck-in-openstm32\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":69,"menu_order":6,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[130],"tags":[107,105,106],"class_list":["post-177","page","type-page","status-publish","hentry","category-stm32f746","tag-openstm32","tag-stm32f746","tag-stm32f746gdiscovery"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=177"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/177\/revisions"}],"predecessor-version":[{"id":1325,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/177\/revisions\/1325"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/69"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}