{"id":18591,"date":"2024-02-14T00:00:00","date_gmt":"2024-02-14T00:00:00","guid":{"rendered":"https:\/\/gufosaggio.net\/i\/why-is-toolchain-needed\/"},"modified":"2024-02-14T00:00:00","modified_gmt":"2024-02-14T00:00:00","slug":"why-is-toolchain-needed","status":"publish","type":"post","link":"https:\/\/gufosaggio.net\/i\/why-is-toolchain-needed\/","title":{"rendered":"Why is toolchain needed?"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_87_1 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/gufosaggio.net\/i\/why-is-toolchain-needed\/#Introduction_to_Toolchains_in_Embedded_Systems\" >Introduction to Toolchains in Embedded Systems<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/gufosaggio.net\/i\/why-is-toolchain-needed\/#Understanding_Toolchains_in_Maven\" >Understanding Toolchains in Maven<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/gufosaggio.net\/i\/why-is-toolchain-needed\/#Overview_of_GNU_Toolchain_in_Linux\" >Overview of GNU Toolchain in Linux<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/gufosaggio.net\/i\/why-is-toolchain-needed\/#Object-Oriented_Concepts_in_Programming\" >Object-Oriented Concepts in Programming<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Introduction_to_Toolchains_in_Embedded_Systems\"><\/span>Introduction to Toolchains in Embedded Systems<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Usually toolchains are used in the embedded world for cross-compiling, which means creating a program on a host which will eventually run on a different kind of target &#8211; therefore there is a need to create it with a specific compiler, linker, debugger etc.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Understanding_Toolchains_in_Maven\"><\/span>Understanding Toolchains in Maven<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A Toolchain is a preconfigured object that Maven plugins can use for tool configuration retrieval (location and other information). With jdk toolchain, for example, instead of being stuck with the JDK used to run Maven, all plugins can use the same other JDK instance without hardcoding absolute paths into the pom.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Overview_of_GNU_Toolchain_in_Linux\"><\/span>Overview of GNU Toolchain in Linux<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The GNU Toolchain is a set of programming tools in Linux systems that programmers can use to make and compile their code to produce a program or library. The toolchain contains GNU m4, GNU Make, GNU Bison, GCC, GNU Binutils, GNU Debugger and the GNU build system. Let&#8217;s understand these tools one by one in detail.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Object-Oriented_Concepts_in_Programming\"><\/span>Object-Oriented Concepts in Programming<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>What does &quot;none Eabi&quot; mean? arm-none-eabi is the toolchain we use in this class. This toolchain targets the ARM architecture, has no vendor, does not target an operating system (i.e. targets a &quot;bare metal&quot; system), and complies with the ARM EABI. <\/p>\n<p>How do you call a class? To call a class method, put the class as the first argument. Class methods can be can be called from instances and from the class itself. All of these use the same method. The method can use the classes variables and methods.<\/p>\n<p>What is an object in Java? A Java object is a member (also called an instance) of a Java class. Each object has an identity, a behavior, and a state. The state of an object is stored in fields (variables), while methods (functions) display the object&#8217;s behavior. Objects are created at runtime from templates, which are also known as classes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction to Toolchains in Embedded Systems Usually toolchains are used in the embedded world for cross-compiling, which means creating a program on a host which will eventually run on a different kind of target &#8211; therefore there is a need to create it with a specific compiler, linker, debugger etc. Understanding Toolchains in Maven A &#8230; <a title=\"Why is toolchain needed?\" class=\"read-more\" href=\"https:\/\/gufosaggio.net\/i\/why-is-toolchain-needed\/\" aria-label=\"Per saperne di pi\u00f9 su Why is toolchain needed?\">Leggi tutto<\/a><\/p>\n","protected":false},"author":3895,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-18591","post","type-post","status-publish","format-standard","hentry","category-w"],"_links":{"self":[{"href":"https:\/\/gufosaggio.net\/i\/wp-json\/wp\/v2\/posts\/18591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gufosaggio.net\/i\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gufosaggio.net\/i\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gufosaggio.net\/i\/wp-json\/wp\/v2\/users\/3895"}],"replies":[{"embeddable":true,"href":"https:\/\/gufosaggio.net\/i\/wp-json\/wp\/v2\/comments?post=18591"}],"version-history":[{"count":0,"href":"https:\/\/gufosaggio.net\/i\/wp-json\/wp\/v2\/posts\/18591\/revisions"}],"wp:attachment":[{"href":"https:\/\/gufosaggio.net\/i\/wp-json\/wp\/v2\/media?parent=18591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gufosaggio.net\/i\/wp-json\/wp\/v2\/categories?post=18591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gufosaggio.net\/i\/wp-json\/wp\/v2\/tags?post=18591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}