{
    "id": 929,
    "date": "2018-05-14T21:49:07",
    "date_gmt": "2018-05-14T21:49:07",
    "guid": {
        "rendered": "http:\/\/hayperek.pl\/?p=929"
    },
    "modified": "2018-05-14T21:51:02",
    "modified_gmt": "2018-05-14T21:51:02",
    "slug": "szara-codziennosc-czyli-kilka-slow-o-srodowisku-developerskim",
    "status": "publish",
    "type": "post",
    "link": "https:\/\/hayperek.pl\/pl_pl\/2018\/05\/14\/szara-codziennosc-czyli-kilka-slow-o-srodowisku-developerskim\/",
    "title": {
        "rendered": "Szara codzienno\u015b\u0107, czyli kilka s\u0142\u00f3w o \u015brodowisku developerskim"
    },
    "content": {
        "rendered": "<p>Od pewnego czasu co raz to wi\u0119cej os\u00f3b pyta mnie, z jakich \u015brodowisk programistycznych korzystam, w czym pisz\u0119, z jakich narz\u0119dzi korzystam &#8211; kr\u00f3tko m\u00f3wi\u0105c: jak wygl\u0105da m\u00f3j warsztat developera system\u00f3w wbudowanych. Dlatego dzi\u015b postanowi\u0142em napisa\u0107 kr\u00f3tki artyku\u0142 na ten w\u0142a\u015bnie temat \ud83d\ude42<\/p>\n<h5>Narz\u0119dzia programistyczne<\/h5>\n<p>Systemem operacyjnym dla narz\u0119dzi, kt\u00f3rych u\u017cywam do budowania aplikacji jest oczywi\u015bcie Linux. Kompilator (a \u015bci\u015blej: cross-kompilator) zale\u017cy od architektury sprz\u0119towej docelowego systemu &#8211; w naszym przypadku jest to arm-gcc serii 5.0. Do tego standardowy ARMowy toolchain oparty o makefile&#8217;y i binutils. W sumie nic odkrywczego \ud83d\ude09 W czasie debugowania korzystam z OpenOCD oraz nie\u015bmiertelnego gdb.<\/p>\n<p>Poniewa\u017c ilo\u015b\u0107 kodu przekracza mo\u017cliwo\u015bci ogarni\u0119cia go w sensowny spos\u00f3b ludzk\u0105 pami\u0119ci\u0105, konieczne jest u\u017cycie jakiego\u015b systemu kontroli wersji. Tu te\u017c bez niespodzianek &#8211; git :), od czasu do czasu wspomagany prost\u0105 nak\u0142adk\u0105 graficzn\u0105, w celu rozrysowania drzewka wersji.<\/p>\n<p>Do edycji kodu s\u0142u\u017cy mi QtCreator lub stary dobry Eclipse, z kilkoma wtyczkami usprawniaj\u0105cymi debugowanie na sprz\u0119cie. A skoro ju\u017c dotykamy tego tematu&#8230;<\/p>\n<h5>Narz\u0119dzia sprz\u0119towe<\/h5>\n<p>Jak pisa\u0142em w jednym z pierwszych artyku\u0142\u00f3w, baz\u0105 dla naszego projektu jest p\u0142ytka prototypowa z serii STM32 Discovery. Co prawda zosta\u0142a ona wyposa\u017cona we wbudowany dongle STLink, jednak zdecydowa\u0142em si\u0119 mimo to u\u017cy\u0107 dodatkowego, zewn\u0119trznego interfejsu. Do tego laboratoryjny zasilacz, kt\u00f3ry dostarcza napi\u0119cie +12 zasilaj\u0105ce nasz testowy system.<\/p>\n<p>I w zasadzie tyle \ud83d\ude42 <\/p>",
        "protected": false
    },
    "excerpt": {
        "rendered": "<p>Od pewnego czasu co raz to wi\u0119cej os\u00f3b pyta mnie, z jakich \u015brodowisk programistycznych korzystam, w czym pisz\u0119, z jakich narz\u0119dzi korzystam &#8211; kr\u00f3tko m\u00f3wi\u0105c: jak wygl\u0105da m\u00f3j warsztat developera system\u00f3w wbudowanych. Dlatego dzi\u015b postanowi\u0142em napisa\u0107 kr\u00f3tki artyku\u0142 na ten w\u0142a\u015bnie temat \ud83d\ude42 Narz\u0119dzia programistyczne Systemem operacyjnym dla narz\u0119dzi, kt\u00f3rych u\u017cywam do budowania aplikacji jest [&hellip;]<\/p>",
        "protected": false
    },
    "author": 1,
    "featured_media": 931,
    "comment_status": "closed",
    "ping_status": "open",
    "sticky": false,
    "template": "",
    "format": "standard",
    "meta": {
        "footnotes": ""
    },
    "categories": [
        3
    ],
    "tags": [],
    "class_list": {
        "0": "post-929",
        "1": "post",
        "2": "type-post",
        "3": "status-publish",
        "4": "format-standard",
        "5": "has-post-thumbnail",
        "6": "hentry",
        "7": "category-stodni",
        "9": "post-with-thumbnail",
        "10": "post-with-thumbnail-large"
    },
    "_links": {
        "self": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/929",
                "targetHints": {
                    "allow": [
                        "GET"
                    ]
                }
            }
        ],
        "collection": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts"
            }
        ],
        "about": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/types\/post"
            }
        ],
        "author": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/users\/1"
            }
        ],
        "replies": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/comments?post=929"
            }
        ],
        "version-history": [
            {
                "count": 1,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/929\/revisions"
            }
        ],
        "predecessor-version": [
            {
                "id": 930,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/929\/revisions\/930"
            }
        ],
        "wp:featuredmedia": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/media\/931"
            }
        ],
        "wp:attachment": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/media?parent=929"
            }
        ],
        "wp:term": [
            {
                "taxonomy": "category",
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/categories?post=929"
            },
            {
                "taxonomy": "post_tag",
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/tags?post=929"
            }
        ],
        "curies": [
            {
                "name": "wp",
                "href": "https:\/\/api.w.org\/{rel}",
                "templated": true
            }
        ]
    }
}