{"id":5546,"date":"2017-01-01T15:38:32","date_gmt":"2017-01-01T15:38:32","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=5546"},"modified":"2020-06-22T09:29:58","modified_gmt":"2020-06-22T09:29:58","slug":"stm32f103-mikrocontroller","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=5546","title":{"rendered":"STM32F103 Mikrocontroller"},"content":{"rendered":"<ul>\n<li>STM32 F1. Cortex-M3 core, mainstream MCUs covers the needs of a large variety of applications in the industrial, medical and consumer markets<\/li>\n<li>STM32 F3: Cortex-M4 core (with FPU and DSP instructions) running at 72 MHz with a high number of integrated analog peripherals leading to cost reduction at application level and simplifying application design<\/li>\n<\/ul>\n<h3>Types<\/h3>\n<p><a href=\"https:\/\/github.com\/OliviliK\/STM32F103\/wiki\/F103C8\">OliviliK\/STM32F103 Wiki<\/a><\/p>\n<ul>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/STM32F072C8T6-mindestsystem-development-board-STM32F072-Mini-bord\/32864039760.html\">STM32F072C8T6<\/a>, US $12.21<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/STM32F030F4P6-Small-Systems-Development-Board-CORTEX-M0-Core-32bit-Mini-System-Development-Panels-48-MHz\/32742017601.html?scm=1007.13338.50051.0&#038;pvid=0dd051b9-bf3f-4d5a-81b7-4182bc2b6aad&#038;tpp=1\">STM32F030F4P6<\/a>, US $1.93<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/Hohe-Qualit-t-Cortex-M0-STM32F051C8T6-STM32-ARM-Core-Board-Entwicklung-Board-Evaluation-Sensing-Mindest-System\/32973128853.html?spm=a2g0s.12269583.0.0.39807d865gLTKQ\">STM32F051C8T6<\/a>, US $3.24 (ST <a href=\"https:\/\/www.st.com\/en\/microcontrollers-microprocessors\/stm32f051c8.html\">STM32F051C8<\/a>)<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/Free-Shipping-1pcs-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduin0-new\/32391407504.html?spm=2114.13010608.0.0.naGEDR\">STM32F103C8T6<\/a>, US $1.78<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/Free-Shipping-1pcs-stm32f103c8t6-stm32-stm32f103-stm32f103c8-minimum-system-board-learning-board-evaluation-kit-stm32\/32549337997.html?spm=2114.13010608.0.0.naGEDR\">STM32F103C8T6<\/a>, US $3.69<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/Free-Shipping-1pcs-lot-Arm-cortex-m3-stm32f103c8t6-stm32-core-board-development-board-100-new-original\/1807153037.html?spm=2114.13010608.0.0.naGEDR\">STM32F103C8T6<\/a>, US $4.18<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/STM32F103RET6-ARM-STM32-Minimum-System-Development-Board-Module-For-arduino-Minimum-System-Board-STM32F103C8T6-upgrade-version\/32785480424.html?spm=2114.47010108.12.7.LrPv7F\">STM32F103RET6<\/a>, US $7.10<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/STM32F103RBT6-ARM-STM32-Minimum-System-Development-Board-Module-For-arduino-Minimum-System-Board-STM32F103C8T6-upgrade-version\/32787611461.html?scm=1007.13339.33317.0&#038;pvid=6a42b558-bdca-44c1-a76e-8d269ced7ed7&#038;tpp=1\">STM32F103RBT6<\/a>, US $6.99<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/1PCS-STM32F103RBT6-ARM-STM32-Minimum-System-Development-Board-Cortex-m3\/32336289692.html?scm=1007.13338.50051.0&#038;pvid=1c08d354-f377-47c4-bf0b-4bf366877a76&#038;tpp=1\">STM32F103RBT6<\/a>, US $7.94<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/STM32F103RBT6-Minimum-System-Board-MCU-STM32-Development-Board-Core-Board\/32704849098.html?scm=1007.13338.50051.0&#038;pvid=1c08d354-f377-47c4-bf0b-4bf366877a76&#038;tpp=1\">STM32F103RBT6<\/a>, US $8.15<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/1PCS-STM32F103VET6-ARM-STM32-Minimum-System-Development-Board\/32336305117.html?scm=1007.13339.33317.0&#038;pvid=f2aae5fc-8c47-4dc5-b4af-cc6a89bfd58f&#038;tpp=1\">STM32F103VET6<\/a>, US $11.73<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/STM32F103ZET6-minimum-system-version-STM32-ARM-core-board-cortex-M3\/32741572112.html?scm=1007.13339.33317.0&#038;pvid=f2aae5fc-8c47-4dc5-b4af-cc6a89bfd58f&#038;tpp=1\">STM32F103ZET6<\/a>, US $12.16<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/STM32-development-board-core-board-STM32F103ZET6-minimum-system-board-special-punch-special\/32725824761.html?scm=1007.13338.46806.0&#038;pvid=c28f1e09-bac7-4d11-b5b9-61aae8911120&#038;tpp=1\">STM32F103ZET6<\/a>, US $11.33<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/NEW-ARRIVE-FREE-SHIPPING-ARM-Cortex-M3-mini-stm32-stm32F103ZEt6-Cortex-development-board-72MHz-512KFlash-64KRAM\/32328299925.html?scm=1007.13338.50051.0&#038;pvid=37151fe4-07b2-465c-b5e0-f7e761622f20&#038;tpp=1\">STM32F103ZET6<\/a>, US $12.42<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/STM32F407VET6-Mini-version-of-the-core-board-STM32-minimum-system-version\/32709285751.html?scm=1007.13338.46806.0&#038;pvid=37b7b3e3-ab70-40f0-9e63-8d53e9e5cff2&#038;tpp=1\">STM32F407VET6<\/a>, US $11.73<\/li>\n<li><a href=\"https:\/\/de.aliexpress.com\/item\/Free-shipping-STM32F407ZET6-development-board-M4-STM32F4-core-board-arm-development-board-cortex-M4\/32689262341.html?scm=1007.13338.50051.0&#038;pvid=37151fe4-07b2-465c-b5e0-f7e761622f20&#038;tpp=1\">STM32F407ZET6<\/a>, US $14.00<\/li>\n<\/ul>\n<h2>STM32F103<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.st.com\/en\/microcontrollers-microprocessors\/stm32f103rb.html\">STM32F103RB<\/a><\/li>\n<li><a href=\"https:\/\/www.st.com\/en\/microcontrollers-microprocessors\/stm32f103rc.html\">STM32F103RC<\/a><\/li>\n<li><a href=\"https:\/\/www.st.com\/en\/microcontrollers-microprocessors\/stm32f103cb.html\">STM32F103CB<\/a><\/li>\n<\/ul>\n<h3>STM32F103C8<\/h3>\n<p><a href=\"https:\/\/www.st.com\/en\/microcontrollers\/stm32f103c8.html\">STM32F103C8<\/a>, medium-densit (MD), Mainstream Performance line, ARM Cortex-M3 MCU with 64 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN<\/p>\n<h3>Boards<\/h3>\n<p><a href=\"http:\/\/docs.leaflabs.com\/static.leaflabs.com\/pub\/leaflabs\/maple-docs\/0.0.12\/hardware\/maple-mini.html\">Maple Mini<\/a><br \/>\n<a href=\"http:\/\/wiki.stm32duino.com\/index.php?title=Maple_Mini\">Maple Mini<\/a><br \/>\n<a href=\"http:\/\/wiki.stm32duino.com\/index.php?title=Black_Pill\">Black Pill<\/a><br \/>\n<a href=\"https:\/\/wiki.stm32duino.com\/index.php?title=STM32_Smart_V2.0\">STM32 Smart V2.0<\/a><\/p>\n<h4>Blue Pill<\/h4>\n<p><a href=\"https:\/\/www.onetransistor.eu\/2018\/09\/stm32cube-code-init-bluepill.html\">STM32Cube code initialization for \u201cblue pill\u201d<\/a><br \/>\n<a href=\"http:\/\/stefanfrings.de\/stm32\/stm32f1.html\">STM32F1 Anleitung<\/a><br \/>\n<a href=\"https:\/\/satoshinm.github.io\/blog\/171223_jtagswdpillblink_jtagswd_debugging_via_black_magic_probe_on_an_stm32_blue_pill_and_blinking_a_led_using_stm32cubemx_libopencm3_and_bare_metal_c.html\">JTAG\/SWD debugging via Black Magic Probe on an STM32 blue pill and blinking a LED using STM32CubeMX, libopencm3, and bare metal C<\/a><\/p>\n<h3>Code<\/h3>\n<p><a href=\"http:\/\/embedded-lab.com\/blog\/stm32-prior-to-start\/\">STM32 \u2013 Prior to Start<\/a><br \/>\n<a href=\"http:\/\/www.olliw.eu\/2013\/stm32-this-and-that\/\">STM32: Hello World<\/a><\/p>\n<ul>\n<li>Shenzhen LC Technology STM32F103C8 Entwicklungsboard<\/li>\n<li>Maple Mini STM32F103CB Entwicklungsboard<\/li>\n<\/ul>\n<h3>Debug<\/h3>\n<p><a href=\"http:\/\/embedded-lab.com\/blog\/stm32-programming-tips-and-tricks\/\">STM32 Programming Tips and Tricks<\/a><br \/>\n<a href=\"http:\/\/forums.leaflabs.com\/forums.leaflabs.com\/topic380f.html?id=74300\">JTAG pins on Maple-mini?<\/a><\/p>\n<h4>J-Link<\/h4>\n<p><a href=\"https:\/\/gnu-mcu-eclipse.github.io\/developer\/j-link-stm32-boards\/\">Using J-Link with the STM32 boards<\/a><br \/>\n<a href=\"https:\/\/hackaday.io\/project\/21396-stm32-blue-pill-iot-expansion-boards\/log\/68042-get-yourself-a-j-link\">Get yourself a J-Link<\/a><br \/>\n<a href=\"https:\/\/coytbarringer.com\/programming-stm32f103-blue-pill-using-usb-bootloader-platformio\/\">Programming STM32F103 Blue Pill using USB Bootloader and PlatformIO<\/a><\/p>\n<h3>Burn<\/h3>\n<p><a href=\"http:\/\/jeelabs.org\/article\/1649a\/\">Let&#8217;s start with a Blue Pill<\/a><br \/>\n<a href=\"https:\/\/medium.com\/@paramaggarwal\/programming-an-stm32f103-board-using-usb-port-blue-pill-953cec0dbc86\">Programming an STM32F103 board using its USB port (Blue Pill)<\/a><\/p>\n<h3>mbed<\/h3>\n<p><a href=\"https:\/\/developer.mbed.org\/questions\/7443\/Using-mbed-with-generic-STM32F103C8T6-ch\/\">Using mbed with generic STM32F103C8T6 cheap eBay boards<\/a><br \/>\n<a href=\"https:\/\/github.com\/ARMmbed\/mbed-os\/pull\/1880\">Support for Blue Pill<\/a><br \/>\n<a href=\"https:\/\/developer.mbed.org\/users\/hudakz\/code\/STM32F103C8T6_Hello\/\">STM32F103C8T6_Hello<\/a><br \/>\n<a href=\"https:\/\/developer.mbed.org\/users\/hudakz\/code\/STM32F103C8T6_USBSerial\/\">STM32F103C8T6_USBSerial<\/a><\/p>\n<h3>Arduino => STM32duino<\/h3>\n<p><a href=\"http:\/\/wiki.stm32duino.com\/index.php?title=Main_Page\">STM32duino<\/a><br \/>\n<a href=\"http:\/\/wiki.stm32duino.com\/index.php?title=Bootloader\">Bootloader<\/a><br \/>\n<a href=\"http:\/\/wiki.stm32duino.com\/index.php?title=Burning_the_bootloader\">Burning the bootloader<\/a><\/p>\n<p><a href=\"http:\/\/www.sciencezero.org\/index.php?title=STM32F103_Microcontroller\">STM32F103 Microcontroller<\/a><br \/>\n<a href=\"http:\/\/wiki.sgmk-ssam.ch\/wiki\/STM32_dev\">SGMK-SSAM-WIKI: STM32 dev<\/a><\/p>\n<h4>DFU Problem<\/h4>\n<p><a href=\"http:\/\/stm32duino.com\/viewtopic.php?t=1958\">dfu\/upload not perfectly working<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=rvNIeKuXsxM\">LeafLabs Maple &#8211; Perpetual Bootloader Mode<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=-zwGnytGT8M\">Arduino IDE with an STM32F103 board <\/a><\/p>\n<h4>I2C<\/h4>\n<p><a href=\"http:\/\/docs.leaflabs.com\/static.leaflabs.com\/pub\/leaflabs\/maple-docs\/latest\/i2c.html\">I2C \u2014 Maple v0.0.12 Documentation<\/a><br \/>\n<a href=\"https:\/\/github.com\/rogerclarkmelbourne\/Arduino_STM32\/issues\/102\">Wire library has SCL and SDA definitions but then doesn&#8217;t use them.<\/a><br \/>\n<a href=\"http:\/\/www.stm32duino.com\/viewtopic.php?t=53\">Wire (I2C)<\/a><\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nC:\\Users\\bachman0\\AppData\\Local\\Arduino15\\packages\\stm32duino\\hardware\\STM32F1\\2017.3.26\\libraries\\Wire\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\t \t \r\nC:\\Users\\bachman0\\AppData\\Local\\Arduino15\\packages\\stm32duino\r\nC:\\Users\\bachman0\\AppData\\Local\\Arduino15\\packages\\stm32duino\\tools\\stm32tools\\2017.3.26\\win\r\n\r\nC:\\Users\\bachman0\\AppData\\Local\\Arduino15\\packages\\stm32duino\\tools\\stm32tools\\2017.3.26\\win&gt;dfu-util.exe -l\r\ndfu-util - (C) 2007-2008 by OpenMoko Inc.\r\nThis program is Free Software and has ABSOLUTELY NO WARRANTY\r\n\r\nFound DFU: &#x5B;0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=0, name=&quot;&quot;\r\nFound DFU: &#x5B;0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=1, name=&quot;STM32duino bootloader v1.0  Upload to Flash 0x8005000&quot;\r\nFound DFU: &#x5B;0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=2, name=&quot;STM32duino bootloader v1.0  Upload to Flash 0x8002000&quot;\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nBus 001 Device 023: ID 1eaf:0004  \r\nDevice Descriptor:\r\n  bLength                18\r\n  bDescriptorType         1\r\n  bcdUSB               2.00\r\n  bDeviceClass            2 Communications\r\n  bDeviceSubClass         0 \r\n  bDeviceProtocol         0 \r\n  bMaxPacketSize0        64\r\n  idVendor           0x1eaf \r\n  idProduct          0x0004 \r\n  bcdDevice            2.00\r\n  iManufacturer           1 LeafLabs\r\n  iProduct                2 Maple\r\n  iSerial                 0 \r\n  bNumConfigurations      1\r\n  Configuration Descriptor:\r\n    bLength                 9\r\n    bDescriptorType         2\r\n    wTotalLength           67\r\n    bNumInterfaces          2\r\n    bConfigurationValue     1\r\n    iConfiguration          0 \r\n    bmAttributes         0xc0\r\n      Self Powered\r\n    MaxPower              100mA\r\n    Interface Descriptor:\r\n      bLength                 9\r\n      bDescriptorType         4\r\n      bInterfaceNumber        0\r\n      bAlternateSetting       0\r\n      bNumEndpoints           1\r\n      bInterfaceClass         2 Communications\r\n      bInterfaceSubClass      2 Abstract (modem)\r\n      bInterfaceProtocol      1 AT-commands (v.25ter)\r\n      iInterface              0 \r\n      CDC Header:\r\n        bcdCDC               10.01\r\n      CDC Call Management:\r\n        bmCapabilities       0x03\r\n          call management\r\n          use DataInterface\r\n        bDataInterface          1\r\n      CDC ACM:\r\n        bmCapabilities       0x06\r\n          sends break\r\n          line coding and serial state\r\n      CDC Union:\r\n        bMasterInterface        0\r\n        bSlaveInterface         1 \r\n      Endpoint Descriptor:\r\n        bLength                 7\r\n        bDescriptorType         5\r\n        bEndpointAddress     0x82  EP 2 IN\r\n        bmAttributes            3\r\n          Transfer Type            Interrupt\r\n          Synch Type               None\r\n          Usage Type               Data\r\n        wMaxPacketSize     0x0040  1x 64 bytes\r\n        bInterval             255\r\n    Interface Descriptor:\r\n      bLength                 9\r\n      bDescriptorType         4\r\n      bInterfaceNumber        1\r\n      bAlternateSetting       0\r\n      bNumEndpoints           2\r\n      bInterfaceClass        10 CDC Data\r\n      bInterfaceSubClass      0 Unused\r\n      bInterfaceProtocol      0 \r\n      iInterface              0 \r\n      Endpoint Descriptor:\r\n        bLength                 7\r\n        bDescriptorType         5\r\n        bEndpointAddress     0x03  EP 3 OUT\r\n        bmAttributes            2\r\n          Transfer Type            Bulk\r\n          Synch Type               None\r\n          Usage Type               Data\r\n        wMaxPacketSize     0x0040  1x 64 bytes\r\n        bInterval               0\r\n      Endpoint Descriptor:\r\n        bLength                 7\r\n        bDescriptorType         5\r\n        bEndpointAddress     0x81  EP 1 IN\r\n        bmAttributes            2\r\n          Transfer Type            Bulk\r\n          Synch Type               None\r\n          Usage Type               Data\r\n        wMaxPacketSize     0x0040  1x 64 bytes\r\n        bInterval               0\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nSketch uses 12892 bytes (19%) of program storage space. Maximum is 65536 bytes.\r\nGlobal variables use 2816 bytes of dynamic memory.\r\n\/home\/andreas\/.arduino15\/packages\/stm32duino\/tools\/stm32tools\/2017.3.26\/linux\/maple_upload: line 29: \/home\/andreas\/.arduino15\/packages\/stm32duino\/tools\/stm32tools\/2017.3.26\/linux\/upload-reset: No such file or directory\r\ndfu-util 0.7\r\n\r\nCopyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.\r\nCopyright 2010-2012 Tormod Volden and Stefan Schmidt\r\nThis program is Free Software and has ABSOLUTELY NO WARRANTY\r\nPlease report bugs to dfu-util@lists.gnumonks.org\r\n\r\nFilter on vendor = 0x1eaf product = 0x0003\r\nOpening DFU capable USB device... ID 1eaf:0003\r\nRun-time device DFU version 0110\r\nFound DFU: &#x5B;1eaf:0003] devnum=0, cfg=1, intf=0, alt=2, name=&quot;STM32duino bootloader v1.0  Upload to Flash 0x8002000&quot;\r\nClaiming USB DFU Interface...\r\nSetting Alternate Setting #2 ...\r\nDetermining device status: state = dfuIDLE, status = 0\r\ndfuIDLE, continuing\r\nDFU mode device DFU version 0110\r\nDevice returned transfer size 1024\r\nbytes_per_hash=257\r\nCopying data from PC to DFU device\r\nNo valid DFU suffix signature\r\nWarning: File has no DFU suffix\r\nStarting download: &#x5B;##################################################] finished!\r\nstate(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present\r\nDone!\r\nResetting USB to switch back to runtime mode\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nhome\/andreas\/.arduino15\/packages\/stm32duino\/tools\/stm32tools\/2017.3.26\/linux\/maple_upload ttyS0 2 1EAF:0003 \/tmp\/arduino_build_747776\/MyBlink.ino.bin \r\n\/home\/andreas\/.arduino15\/packages\/stm32duino\/tools\/stm32tools\/2017.3.26\/linux\/maple_upload: line 29: \/home\/andreas\/.arduino15\/packages\/stm32duino\/tools\/stm32tools\/2017.3.26\/linux\/upload-reset: No such file or directory\r\nNo valid DFU suffix signature\r\ndfu-util 0.7\r\n\r\nCopyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.\r\nWarning: File has no DFU suffix\r\nCopyright 2010-2012 Tormod Volden and Stefan Schmidt\r\nThis program is Free Software and has ABSOLUTELY NO WARRANTY\r\nPlease report bugs to dfu-util@lists.gnumonks.org\r\n\r\nFilter on vendor = 0x1eaf product = 0x0003\r\nOpening DFU capable USB device... ID 1eaf:0003\r\nRun-time device DFU version 0110\r\nFound DFU: &#x5B;1eaf:0003] devnum=0, cfg=1, intf=0, alt=2, name=&quot;STM32duino bootloader v1.0  Upload to Flash 0x8002000&quot;\r\nClaiming USB DFU Interface...\r\nSetting Alternate Setting #2 ...\r\nDetermining device status: state = dfuIDLE, status = 0\r\ndfuIDLE, continuing\r\nDFU mode device DFU version 0110\r\nDevice returned transfer size 1024\r\nbytes_per_hash=257\r\nCopying data from PC to DFU device\r\nStarting download: &#x5B;##################################################] finished!\r\nstate(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present\r\nDone!\r\nResetting USB to switch back to runtime mode\r\n<\/pre>\n<p>stm32f103c8t6<br \/>\nSTM32F103xx medium-density performance line microcontroller family<br \/>\n    72 MHz<br \/>\n    64 or 128 Kbytes of Flash memory<br \/>\n    20 Kbytes of SRAM<\/p>\n<p><a href=\"http:\/\/diller-technologies.de\/stm32.html\">STM32 Tutorial<\/a><br \/>\n<a href=\"http:\/\/www.mikrocontroller.net\/articles\/STM32F10x_Standard_Peripherals_Library\">STM32F10x Standard Peripherals Library<\/a><br \/>\n<a href=\"http:\/\/andybrown.me.uk\/2011\/12\/28\/stm32plus-a-c-library-for-stm32-development\/\">stm32plus \u2013 A C++ library for STM32 development<\/a><br \/>\n<a href=\"https:\/\/github.com\/andysworkshop\/stm32plus\">github.com\/andysworkshop\/stm32plus<\/a><br \/>\n<a href=\"http:\/\/www.mystm32.de\/doku.php\">STM32 Tutorial f\u00fcr C\/C++ und UML<\/a><br \/>\n<a href=\"https:\/\/satoshinm.github.io\/blog\/171212_stm32_blue_pill_arm_development_board_first_look_bare_metal_programming.html\">STM32 Blue Pill ARM development board first look: from Arduino to bare metal programming<\/a>, 12.12.2017<br \/>\n<a href=\"https:\/\/github.com\/solosky\/stlink-uart\">github.com\/solosky\/stlink-uart<\/a>, Clone<br \/>\n<a href=\"https:\/\/www.digikey.com\/eewiki\/display\/microcontroller\/Getting+Started+with+the+STM32L432+Nucleo-32+using+Eclipse+and+the+GNU+ARM+Toolchain\">Getting Started with the STM32L432 Nucleo-32 using Eclipse and the GNU ARM Toolchain<\/a>, 17.08.2017<\/p>\n<p><a href=\"http:\/\/stackoverflow.com\/questions\/30602485\/uart-over-usb-for-stm32-micro-controller\">UART over USB for STM32 Micro-controller<\/a><br \/>\n<a href=\"http:\/\/electronics.stackexchange.com\/questions\/124613\/usb-interface-with-stm32\">USB interface with STM32<\/a><br \/>\n<a href=\"http:\/\/www.mikrocontroller.net\/topic\/149739\">Stm32 USB virtual com port example<\/a><br \/>\n<a href=\"http:\/\/www.mikrocontroller.net\/articles\/STM32_USB-FS-Device_Lib\">STM32 USB-FS-Device Lib<\/a><br \/>\n<a href=\"http:\/\/www.st.com\/en\/embedded-software\/stm32-embedded-software.html?icmp=ss1743_pron_pr1_jun2014&#038;sc=stm32cube-pr5&#038;querycriteria=productId=SC961\">STM32 Embedded Software<\/a>, Low level drivers, hardware abstraction layers, and middleware<br \/>\n<a href=\"http:\/\/www.st.com\/content\/st_com\/en\/products\/embedded-software\/mcus-embedded-software\/stm32-embedded-software\/stm32-standard-peripheral-libraries-expansions\/stsw-stm32121.html\">STSW-STM32121<\/a>, STM32F10x, STM32L1xx and STM32F3xx USB full speed device library (UM0424)<br \/>\n<a href=\"http:\/\/www.st.com\/content\/ccc\/resource\/technical\/document\/user_manual\/01\/c6\/32\/df\/79\/ad\/48\/32\/CD00158241.pdf\/files\/CD00158241.pdf\/jcr:content\/translations\/en.CD00158241.pdf\">UM0424 User manual<\/a><br \/>\n<a href=\"https:\/\/quasiyoke.me\/en\/stm32-l152-discovery-toolchain\/\">STM32 L152 Discovery kit toolchain setup<\/a>, <code>include\/BlinkLed.h, src\/BlinkLed.c<\/code><\/p>\n<h3>Examples<\/h3>\n<p><a href=\"https:\/\/github.com\/avislab\/STM32F103\">github.com\/avislab\/STM32F103<\/a>, STM32F103C8 Examples<\/p>\n<h3>variant<\/h3>\n<ul>\n<li>STM32F100 Value line  \u2013 24 MHz CPU with motor control and CEC functions<\/li>\n<li>STM32F101 \u2013 36 MHz CPU, up to 1 Mbyte of Flash<\/li>\n<li>STM32F102 \u2013 48 MHz CPU with USB FS<\/li>\n<li>STM32F103 \u2013 72 MHz, up to 1 Mbyte of Flash with motor control, USB and CAN<\/li>\n<li>STM32F105\/107 \u2013 72 MHz CPU with Ethernet MAC, CAN and USB 2.0 OTG<\/li>\n<\/ul>\n<h3>density<\/h3>\n<ul>\n<li>Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes.<\/li>\n<li>Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers where the Flash memory density ranges between 64 and 128 Kbytes.<\/li>\n<li>High-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 256 and 512 Kbytes.<\/li>\n<li>XL-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 768 Kbytes and 1 Mbyte.<\/li>\n<li>Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.<\/li>\n<\/ul>\n<h3>a<\/h3>\n<p>For this document, we are only interested in that the Cortex-M3 core is connected to the AHB system bus, which is then split into two bridges APB1 (low speed) and APB2 (high speed) with each bridge connecting to a set of peripherals.<\/p>\n<p>Let\u2019s start with describing MCU\u2019s startup procedure. After reset (power on) MCU works with HSI (internal high-speed oscilator) as system clock source. In my case (STM32F401RE), HSI = 16MHz. Assuming that we boot from Main Flash memory, MCU starts code execution from the boot memory starting from 0\u00d700000004. This is the place where we need to put an address of initialization function. This function is usually named Reset_Handler and must do the following job:<\/p>\n<ul>\n<li>set stack pointer (usually at the end of SRAM)<\/li>\n<li>copy <code>.data<\/code> section from flash to SRAM<\/li>\n<li>zero fill the <code>.bss<\/code> section (in SRAM)<\/li>\n<li>call CMSIS <code>SystemInit()<\/code> function<\/li>\n<li>call libc <code>__libc_init_array()<\/code> function<\/li>\n<li>call <code>main()<\/code><\/li>\n<\/ul>\n<table>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/eclipse_call_hierarchie_systeminit.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/eclipse_call_hierarchie_systeminit.png\" alt=\"\" width=\"662\" height=\"117\" class=\"alignleft size-full wp-image-5578\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/eclipse_call_hierarchie_systeminit.png 662w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/eclipse_call_hierarchie_systeminit-300x53.png 300w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/eclipse_call_hierarchie_systeminit-624x110.png 624w\" sizes=\"auto, (max-width: 662px) 100vw, 662px\" \/><\/a><\/td>\n<\/tr>\n<\/table>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\ntypedef enum {\r\n  GPIO_Mode_AIN         = 0x0,\r\n  GPIO_Mode_IN_FLOATING = 0x04,\r\n  GPIO_Mode_IPD         = 0x28,\r\n  GPIO_Mode_IPU         = 0x48,\r\n  GPIO_Mode_Out_OD      = 0x14,\r\n  GPIO_Mode_Out_PP      = 0x10,\r\n  GPIO_Mode_AF_OD       = 0x1C,\r\n  GPIO_Mode_AF_PP       = 0x18\r\n} GPIOMode_TypeDef;\r\n<\/pre>\n<h3>Alternate Function (+ Remapping)<\/h3>\n<p>The I\/Os alternate function configuration can be locked if needed following a specific sequence in order to avoid spurious writing to the I\/Os registers.<\/p>\n<p>STM32F103xx:  If several peripherals share the same I\/O pin, to avoid conflict between these alternate functions only one peripheral should be enabled at a time through the peripheral clock enable bit (in the corresponding RCC peripheral clock enable register)<br \/>\nSTM32F072xx:  Alternate functions selected through GPIOA_AFR registers<\/p>\n<p><a href=\"http:\/\/www.st.com\/content\/ccc\/resource\/technical\/document\/application_note\/8e\/c8\/8d\/e3\/ee\/ff\/44\/e6\/DM00073522.pdf\/files\/DM00073522.pdf\/jcr:content\/translations\/en.DM00073522.pdf\">AN4228 Migrating from STM32F1 to STM32F3 microcontrollers<\/a><\/p>\n<p><strong>3.7 GPIO interface<\/strong><br \/>\nThe STM32F3 GPIO peripheral embeds new features compared to STM32F1 series, below the main features:<\/p>\n<ul>\n<li>GPIO mapped on AHB bus for better performance<\/li>\n<li>I\/O pin multiplexer and mapping: pins are connected to on-chip peripherals\/modules through a multiplexer that allows only one peripheral alternate function (AF) connected to an I\/O pin at a time. In this way, there can be no conflict between peripherals sharing the same I\/O pin.<\/li>\n<li>More possibilities and features for I\/O configuration<\/li>\n<\/ul>\n<p>The STM32F3 series GPIO peripheral is a new design and thus the architecture, features and registers are different from the GPIO peripheral in the STM32F1 series. Any code written for the STM32F1 series using the GPIO needs to be rewritten to run on STM32F3 series.<\/p>\n<p><strong>3.7.1 Alternate function mode<\/strong><br \/>\nSTM32F1 series<br \/>\nThe configuration to use an I\/O as an alternate function depends on the peripheral mode used. For example, the USART Tx pin should be configured as an alternate function push-pull, while the USART Rx pin should be configured as input floating or input pull-up. To optimize the number of peripheral I\/O functions for different device packages (especially those with a low pin count), it is possible to remap some alternate functions to other pins by software. For example, the USART2_RX pin can be mapped on PA3 (default remap) or PD6 (by software remap).<\/p>\n<p>STM32F3 series<br \/>\nWhatever the peripheral mode used, the I\/O must be configured as an alternate function,<br \/>\nthen the system can use the I\/O in the proper way (input or output).<br \/>\nThe I\/O pins are connected to on-chip peripherals\/modules through a multiplexer that allows only one peripheral alternate function to be connected to an I\/O pin at a time. In this way, there can be no conflict between peripherals sharing the same I\/O pin. Each I\/O pin has a multiplexer with 16 alternate function inputs (AF0 to AF15) that can be configured through the GPIOx_AFRL and GPIOx_AFRH registers: the peripheral alternate functions are mapped by configuring AF0 to AF15.<br \/>\nIn addition to this flexible I\/O multiplexing architecture, each peripheral has alternate functions mapped on different I\/O pins to optimize the number of peripheral I\/O functions for different device packages. For example, the USART2_RX pin can be mapped on PA3 or PA15 pin.<\/p>\n<p><a href=\"http:\/\/www.st.com\/content\/ccc\/resource\/technical\/document\/reference_manual\/59\/b9\/ba\/7f\/11\/af\/43\/d5\/CD00171190.pdf\/files\/CD00171190.pdf\/jcr:content\/translations\/en.CD00171190.pdf\">RM0008 Reference manual for STM32F103xx<\/a><\/p>\n<ul>\n<li>9.1.4 Alternate functions (AF), <\/li>\n<li>9.1.5 Software remapping of I\/O alternate functions, <\/li>\n<li>9.1.9 Alternate function configuration, <\/li>\n<li>9.3 Alternate function I\/O and debug configuration (AFIO), p. 174<\/li>\n<\/ul>\n<p>To optimize the number of peripherals available for the 64-pin or the 100-pin or the 144-pin package, it is possible to remap some alternate functions to some other pins. This is achieved by software, by programming the AF remap and debug I\/O configuration register (AFIO_MAPR). In this case, the alternate functions are no longer mapped to their original assignations. <\/p>\n<h3>STM32Cube<\/h3>\n<p><a href=\"http:\/\/www.emcu.it\/STM32Cube\/STM32Cube.html\">STM32Cube &#038; STM32CubeMX<\/a><br \/>\n<a href=\"http:\/\/regalis.com.pl\/en\/arm-cortex-stm32-gnulinux\/\">Programming ARM Cortex (STM32) under GNU\/Linux<\/a><\/p>\n<h3>Cortex-M4 rather than Cortex-M3<\/h3>\n<p><a href=\"https:\/\/www.gitbook.com\/book\/feabhas\/stm32f4-cmsis\/details\">Building a Minimal C Project for the STM32F4 Processor using CMSIS<\/a><br \/>\n<a href=\"https:\/\/feabhas.gitbooks.io\/stm32f4-cmsis\/content\/gpiob_af_pins_setup.html\">GPIO B Alternative Function Setup<\/a><\/p>\n<table>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/tm4_gpio_control.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/tm4_gpio_control-300x239.png\" alt=\"\" width=\"300\" height=\"239\" class=\"alignleft size-medium wp-image-5590\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/tm4_gpio_control-300x239.png 300w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/tm4_gpio_control-624x497.png 624w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/tm4_gpio_control.png 724w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/td>\n<\/tr>\n<\/table>\n<p><strong>Tutorial for Cortex-M4<\/strong><\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\ntypedef struct\r\n{\r\n  __IO uint32_t MODER;    \/*!&lt; GPIO port mode register,               Address offset: 0x00      *\/\r\n  __IO uint32_t OTYPER;   \/*!&lt; GPIO port output type register,        Address offset: 0x04      *\/\r\n  __IO uint32_t OSPEEDR;  \/*!&lt; GPIO port output speed register,       Address offset: 0x08      *\/\r\n  __IO uint32_t PUPDR;    \/*!&lt; GPIO port pull-up\/pull-down register,  Address offset: 0x0C      *\/\r\n  __IO uint32_t IDR;      \/*!&lt; GPIO port input data register,         Address offset: 0x10      *\/\r\n  __IO uint32_t ODR;      \/*!&lt; GPIO port output data register,        Address offset: 0x14      *\/\r\n  __IO uint16_t BSRRL;    \/*!&lt; GPIO port bit set\/reset low register,  Address offset: 0x18      *\/\r\n  __IO uint16_t BSRRH;    \/*!&lt; GPIO port bit set\/reset high register, Address offset: 0x1A      *\/\r\n  __IO uint32_t LCKR;     \/*!&lt; GPIO port configuration lock register, Address offset: 0x1C      *\/\r\n  __IO uint32_t AFR&#x5B;2];   \/*!&lt; GPIO alternate function registers,     Address offset: 0x20-0x24 *\/\r\n} GPIO_TypeDef;\r\n<\/pre>\n<p><strong>Cortex-M3 from GNU ARM Eclipse Plug-In (CMSIS)<\/strong><\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\/** \r\n  * @brief General Purpose I\/O\r\n  *\/\r\ntypedef struct {\r\n  __IO uint32_t CRL;\r\n  __IO uint32_t CRH;\r\n  __IO uint32_t IDR;\r\n  __IO uint32_t ODR;\r\n  __IO uint32_t BSRR;\r\n  __IO uint32_t BRR;\r\n  __IO uint32_t LCKR;\r\n} GPIO_TypeDef;\r\n\r\n\/** \r\n  * @brief  GPIO Init structure definition  \r\n  *\/\r\ntypedef struct {\r\n  uint16_t GPIO_Pin;             \/*!&lt; Specifies the GPIO pins to be configured. This parameter can be any value of @ref GPIO_pins_define *\/\r\n  GPIOSpeed_TypeDef GPIO_Speed;  \/*!&lt; Specifies the speed for the selected pins. This parameter can be a value of @ref GPIOSpeed_TypeDef *\/\r\n  GPIOMode_TypeDef GPIO_Mode;    \/*!&lt; Specifies the operating mode for the selected pins. This parameter can be a value of @ref GPIOMode_TypeDef *\/\r\n} GPIO_InitTypeDef;\r\n\r\nvoid GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);\r\n\r\n<\/pre>\n<p><strong>Cortex-M0<\/strong><\/p>\n<pre class=\"brush: cpp; title: Drivers\/CMSIS\/Device\/ST\/STM32F0xx\/Include\/stm32f072xb.h; notranslate\" title=\"Drivers\/CMSIS\/Device\/ST\/STM32F0xx\/Include\/stm32f072xb.h\">\r\ntypedef struct\r\n{\r\n  __IO uint32_t MODER;        \/*!&lt; GPIO port mode register,                     Address offset: 0x00      *\/\r\n  __IO uint32_t OTYPER;       \/*!&lt; GPIO port output type register,              Address offset: 0x04      *\/\r\n  __IO uint32_t OSPEEDR;      \/*!&lt; GPIO port output speed register,             Address offset: 0x08      *\/\r\n  __IO uint32_t PUPDR;        \/*!&lt; GPIO port pull-up\/pull-down register,        Address offset: 0x0C      *\/\r\n  __IO uint32_t IDR;          \/*!&lt; GPIO port input data register,               Address offset: 0x10      *\/\r\n  __IO uint32_t ODR;          \/*!&lt; GPIO port output data register,              Address offset: 0x14      *\/\r\n  __IO uint32_t BSRR;         \/*!&lt; GPIO port bit set\/reset register,            Address offset: 0x1A      *\/\r\n  __IO uint32_t LCKR;         \/*!&lt; GPIO port configuration lock register,       Address offset: 0x1C      *\/\r\n  __IO uint32_t AFR&#x5B;2];       \/*!&lt; GPIO alternate function low register,        Address offset: 0x20-0x24 *\/\r\n  __IO uint32_t BRR;          \/*!&lt; GPIO bit reset register,                     Address offset: 0x28      *\/\r\n} GPIO_TypeDef;\r\n<\/pre>\n<pre class=\"brush: cpp; title: Drivers\/STM32F0xx_HAL_Driver\/Inc\/stm32f0xx_hal_gpio.h; notranslate\" title=\"Drivers\/STM32F0xx_HAL_Driver\/Inc\/stm32f0xx_hal_gpio.h\">\r\ntypedef struct\r\n{\r\n  uint32_t Pin;       \/*!&lt; Specifies the GPIO pins to be configured.\r\n                           This parameter can be any value of @ref GPIO_pins *\/\r\n  uint32_t Mode;      \/*!&lt; Specifies the operating mode for the selected pins.\r\n                           This parameter can be a value of @ref GPIO_mode *\/\r\n  uint32_t Pull;      \/*!&lt; Specifies the Pull-up or Pull-Down activation for the selected pins.\r\n                           This parameter can be a value of @ref GPIO_pull *\/\r\n  uint32_t Speed;     \/*!&lt; Specifies the speed for the selected pins.\r\n                           This parameter can be a value of @ref GPIO_speed *\/\r\n  uint32_t Alternate; \/*!&lt; Peripheral to be connected to the selected pins \r\n                           This parameter can be a value of @ref GPIOEx_Alternate_function_selection *\/\r\n} GPIO_InitTypeDef;\r\n<\/pre>\n<h3>STM32 HAL<\/h3>\n<p><a href=\"http:\/\/www.st.com\/content\/ccc\/resource\/technical\/document\/user_manual\/72\/52\/cc\/53\/05\/e3\/4c\/98\/DM00154093.pdf\/files\/DM00154093.pdf\/jcr:content\/translations\/en.DM00154093.pdf\">UM1850 Description of STM32F1xx HAL drivers<\/a><\/p>\n<ul>\n<li>p. 256, GPIOEx Firmware driver defines<\/li>\n<li>No AFR<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.st.com\/content\/ccc\/resource\/technical\/document\/user_manual\/a6\/79\/73\/ae\/6e\/1c\/44\/14\/DM00122016.pdf\/files\/DM00122016.pdf\/jcr:content\/translations\/en.DM00122016.pdf\">UM1786 Description of STM32F3 HAL drivers<\/a><\/p>\n<ul>\n<li>p. 261, GPIOEx Firmware driver defines, GPIOEx Alternate function selection<\/li>\n<li>p. 1809, Table 33: Correspondence between GPIO registers and GPIO low-layer driver functions<\/li>\n<\/ul>\n<h3>Libraries \/ System Calls<\/h3>\n<p><strong>NewLib<\/strong><br \/>\n<a href=\"http:\/\/stm32discovery.nano-age.co.uk\/open-source-development-with-the-stm32-discovery\/getting-newlib-to-work-with-stm32-and-code-sourcery-lite-eabi\">Getting NewLib and printf to work with the STM32 and Code Sourcery Lite eabi<\/a><\/p>\n<h3>Semihosting<\/h3>\n<p><a href=\"http:\/\/www.keil.com\/support\/man\/docs\/armcc\/armcc_pge1358787046598.htm\">What is semihosting?<\/a><br \/>\n<a href=\"http:\/\/klaus4.blogspot.ch\/2014\/05\/printf-ganz-einfach-per-semihosting-auf.html\">printf(&#8230;) ganz einfach per Semihosting auf dem STM32F4<\/a><\/p>\n<h3>Input\/Output Modes<\/h3>\n<p><a href=\"https:\/\/imagecraft.com\/help\/ICCV8CORTEX\/icccortex\/6-programmingcortex\/programming_the_stm32_mcu_peripherals.htm\">Programming the STM32 MCU Peripherals<\/a><\/p>\n<p><strong>Input:<\/strong><\/p>\n<ul>\n<li>Analog<\/li>\n<li>Floating \/ High Impedance, Tri-Stated<\/li>\n<li>Pull-down<\/li>\n<li>Pull-up<\/li>\n<\/ul>\n<p>When an input pin is in high impedance input mode, its state is indeterminate unless it is driven high or low by an external source. Pins configured as high impedance inputs and not currently driven are called <em>\u201cfloating\u201d<\/em>. Many times <em>\u201cfloat\u201d<\/em> or <em>\u201cfloating\u201d<\/em> is used interchaneably with <em>\u201chigh impedance\u201d<\/em> or <em>\u201ctri-stated\u201d<\/em>. To prevent pins from floating when they are not externally driven, internally pulling resistors are used.<\/p>\n<p><a href=\"http:\/\/electronics.stackexchange.com\/questions\/156930\/stm32-understanding-gpio-settings\">STM32 Understanding GPIO Settings<\/a><br \/>\n<a href=\"https:\/\/stratifylabs.co\/embedded%20design%20tips\/2013\/10\/21\/Tips-Understanding-Microcontroller-Pin-Input-Output-Modes\/\">Understanding Microcontroller Pin Input\/Output Modes<\/a><br \/>\n<a href=\"http:\/\/www.elektronik-kompendium.de\/public\/schaerer\/pullr.htm\">Was ist ein Pullup- und ein Pulldown-Widerstand?<\/a><\/p>\n<p><strong>Output:<\/strong><\/p>\n<ul>\n<li>Push-Pull => 2 x MOSFET (N-MOS, P-MOS)<\/li>\n<li>Tristate \/ High-Z \/ High Drive<\/li>\n<li>Open-Drain \/ Open-Collector<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.mikrocontroller.net\/articles\/Ausgangsstufen_Logik-ICs\">Ausgangsstufen Logik-ICs<\/a><br \/>\n<a href=\"https:\/\/de.wikipedia.org\/wiki\/Open-Collector-Ausgang\">Open-Collector-Ausgang<\/a><br \/>\n<a href=\"https:\/\/de.wikipedia.org\/wiki\/Gegentaktendstufe\">Gegentaktendstufe<\/a><\/p>\n<p><a href=\"http:\/\/www.emcu.it\/STM32\/STM32VLDiscovery_Test\/Things%20to%20remember%20when%20developing%20a%20program%20for%20STM32%20using%20STM32-Library.html\">Things to remember when developing a program for STM32 using STM32-Library<\/a><br \/>\n<a href=\"http:\/\/embeddedsystemengineering.blogspot.ch\/2015\/12\/arm-cortex-m3-stm32f103-tutorial-gpio.html\">ARM Cortex-M3 (STM32F103) Tutorial &#8211; GPIO &#8211; Control LED On\/Off<\/a><br \/>\n<a href=\"http:\/\/wiki.csie.ncku.edu.tw\/embedded\/GPIO\">General Purpose Input\/Output (GPIO)<\/a> (Chinese!!)<\/p>\n<h3>STM32F100xx LQFP64 Pin Functions<\/h3>\n<p><a href=\"https:\/\/startingelectronics.org\/articles\/STM32-microcontrollers\/STM32F100xx-LQFP64-pin-functions\/\">STM32F100xx LQFP64 Pin Functions<\/a><\/p>\n<table>\n<tr>\n<td><strong>Pins<\/strong><\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pins.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pins-294x300.png\" alt=\"\" width=\"294\" height=\"300\" class=\"alignleft size-medium wp-image-5547\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pins-294x300.png 294w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pins.png 520w\" sizes=\"auto, (max-width: 294px) 100vw, 294px\" \/><\/a><\/td>\n<\/tr>\n<\/table>\n<table>\n<tr>\n<td><strong>Power Dedicated Pins<\/strong><\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100xx-LQFP64-power-dedicated.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100xx-LQFP64-power-dedicated-294x300.png\" alt=\"\" width=\"294\" height=\"300\" class=\"alignleft size-medium wp-image-5548\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100xx-LQFP64-power-dedicated-294x300.png 294w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100xx-LQFP64-power-dedicated.png 500w\" sizes=\"auto, (max-width: 294px) 100vw, 294px\" \/><\/a><\/td>\n<\/tr>\n<\/table>\n<table>\n<tr>\n<td><strong>Oscillator and Debug Pins<\/strong><\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-debug-oscillator.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-debug-oscillator-300x279.png\" alt=\"\" width=\"300\" height=\"279\" class=\"alignleft size-medium wp-image-5549\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-debug-oscillator-300x279.png 300w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-debug-oscillator.png 541w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/td>\n<\/tr>\n<\/table>\n<table>\n<tr>\n<td><strong>Pins at Reset<\/strong><\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pins-at-reset.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pins-at-reset-296x300.png\" alt=\"\" width=\"296\" height=\"300\" class=\"alignleft size-medium wp-image-5550\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pins-at-reset-296x300.png 296w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pins-at-reset.png 520w\" sizes=\"auto, (max-width: 296px) 100vw, 296px\" \/><\/a><\/td>\n<\/tr>\n<\/table>\n<table>\n<tr>\n<td><strong>Alternate Function Pins<\/strong><\/td>\n<\/tr>\n<tr>\n<td>The alternate functions are the internal peripheral device connections to the external pins.<br \/>\nAlternate functions shown in red can be remapped to other port pins.<\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pin-alternate-functions.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pin-alternate-functions-300x271.png\" alt=\"\" width=\"300\" height=\"271\" class=\"alignleft size-medium wp-image-5551\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pin-alternate-functions-300x271.png 300w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pin-alternate-functions-624x563.png 624w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/01\/STM32F100RB-LQFP64-pin-alternate-functions.png 720w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/td>\n<\/tr>\n<\/table>\n<pre class=\"brush: plain; collapse: true; light: false; title: Build All Console Output; toolbar: true; notranslate\" title=\"Build All Console Output\">\r\n18:17:11 **** Build of configuration Debug for project blinky ****\r\nmake all \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/misc.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/misc.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/misc.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/misc.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/misc.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/misc.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_adc.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_adc.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_adc.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_adc.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_adc.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_adc.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_bkp.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_bkp.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_bkp.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_bkp.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_bkp.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_bkp.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_can.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_can.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_can.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_can.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_can.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_can.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_cec.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_cec.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_cec.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_cec.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_cec.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_cec.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_crc.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_crc.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_crc.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_crc.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_crc.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_crc.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_dac.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_dac.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_dac.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_dac.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_dac.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_dac.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_dbgmcu.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_dbgmcu.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_dbgmcu.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_dbgmcu.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_dbgmcu.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_dbgmcu.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_dma.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_dma.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_dma.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_dma.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_dma.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_dma.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_exti.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_exti.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_exti.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_exti.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_exti.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_exti.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_flash.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_flash.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_flash.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_flash.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_flash.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_flash.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_fsmc.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_fsmc.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_fsmc.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_fsmc.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_fsmc.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_fsmc.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_gpio.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_gpio.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_gpio.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_gpio.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_gpio.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_gpio.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_i2c.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_i2c.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_i2c.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_i2c.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_i2c.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_i2c.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_iwdg.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_iwdg.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_iwdg.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_iwdg.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_iwdg.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_iwdg.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_pwr.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_pwr.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_pwr.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_pwr.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_pwr.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_pwr.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_rcc.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_rcc.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_rcc.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_rcc.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_rcc.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_rcc.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_rtc.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_rtc.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_rtc.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_rtc.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_rtc.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_rtc.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_sdio.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_sdio.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_sdio.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_sdio.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_sdio.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_sdio.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_spi.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_spi.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_spi.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_spi.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_spi.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_spi.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_tim.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_tim.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_tim.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_tim.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_tim.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_tim.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_usart.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_usart.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_usart.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_usart.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_usart.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_usart.c\r\n \r\nBuilding file: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_wwdg.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_wwdg.d&quot; -MT&quot;system\/src\/stm32f1-stdperiph\/stm32f10x_wwdg.o&quot; -c -o &quot;system\/src\/stm32f1-stdperiph\/stm32f10x_wwdg.o&quot; &quot;..\/system\/src\/stm32f1-stdperiph\/stm32f10x_wwdg.c&quot;\r\nFinished building: ..\/system\/src\/stm32f1-stdperiph\/stm32f10x_wwdg.c\r\n \r\nBuilding file: ..\/system\/src\/newlib\/_cxx.cpp\r\nInvoking: Cross ARM C++ Compiler\r\narm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu++11 -fabi-version=0 -fno-exceptions -fno-rtti -fno-use-cxa-atexit -fno-threadsafe-statics -MMD -MP -MF&quot;system\/src\/newlib\/_cxx.d&quot; -MT&quot;system\/src\/newlib\/_cxx.o&quot; -c -o &quot;system\/src\/newlib\/_cxx.o&quot; &quot;..\/system\/src\/newlib\/_cxx.cpp&quot;\r\nFinished building: ..\/system\/src\/newlib\/_cxx.cpp\r\n \r\nBuilding file: ..\/system\/src\/newlib\/_exit.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/newlib\/_exit.d&quot; -MT&quot;system\/src\/newlib\/_exit.o&quot; -c -o &quot;system\/src\/newlib\/_exit.o&quot; &quot;..\/system\/src\/newlib\/_exit.c&quot;\r\nFinished building: ..\/system\/src\/newlib\/_exit.c\r\n \r\nBuilding file: ..\/system\/src\/newlib\/_sbrk.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/newlib\/_sbrk.d&quot; -MT&quot;system\/src\/newlib\/_sbrk.o&quot; -c -o &quot;system\/src\/newlib\/_sbrk.o&quot; &quot;..\/system\/src\/newlib\/_sbrk.c&quot;\r\nFinished building: ..\/system\/src\/newlib\/_sbrk.c\r\n \r\nBuilding file: ..\/system\/src\/newlib\/_startup.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/newlib\/_startup.d&quot; -MT&quot;system\/src\/newlib\/_startup.o&quot; -c -o &quot;system\/src\/newlib\/_startup.o&quot; &quot;..\/system\/src\/newlib\/_startup.c&quot;\r\nFinished building: ..\/system\/src\/newlib\/_startup.c\r\n \r\nBuilding file: ..\/system\/src\/newlib\/_syscalls.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/newlib\/_syscalls.d&quot; -MT&quot;system\/src\/newlib\/_syscalls.o&quot; -c -o &quot;system\/src\/newlib\/_syscalls.o&quot; &quot;..\/system\/src\/newlib\/_syscalls.c&quot;\r\nFinished building: ..\/system\/src\/newlib\/_syscalls.c\r\n \r\nBuilding file: ..\/system\/src\/newlib\/assert.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/newlib\/assert.d&quot; -MT&quot;system\/src\/newlib\/assert.o&quot; -c -o &quot;system\/src\/newlib\/assert.o&quot; &quot;..\/system\/src\/newlib\/assert.c&quot;\r\nFinished building: ..\/system\/src\/newlib\/assert.c\r\n \r\nBuilding file: ..\/system\/src\/diag\/Trace.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/diag\/Trace.d&quot; -MT&quot;system\/src\/diag\/Trace.o&quot; -c -o &quot;system\/src\/diag\/Trace.o&quot; &quot;..\/system\/src\/diag\/Trace.c&quot;\r\nFinished building: ..\/system\/src\/diag\/Trace.c\r\n \r\nBuilding file: ..\/system\/src\/diag\/trace_impl.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/diag\/trace_impl.d&quot; -MT&quot;system\/src\/diag\/trace_impl.o&quot; -c -o &quot;system\/src\/diag\/trace_impl.o&quot; &quot;..\/system\/src\/diag\/trace_impl.c&quot;\r\nFinished building: ..\/system\/src\/diag\/trace_impl.c\r\n \r\nBuilding file: ..\/system\/src\/cortexm\/_initialize_hardware.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/cortexm\/_initialize_hardware.d&quot; -MT&quot;system\/src\/cortexm\/_initialize_hardware.o&quot; -c -o &quot;system\/src\/cortexm\/_initialize_hardware.o&quot; &quot;..\/system\/src\/cortexm\/_initialize_hardware.c&quot;\r\nFinished building: ..\/system\/src\/cortexm\/_initialize_hardware.c\r\n \r\nBuilding file: ..\/system\/src\/cortexm\/_reset_hardware.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/cortexm\/_reset_hardware.d&quot; -MT&quot;system\/src\/cortexm\/_reset_hardware.o&quot; -c -o &quot;system\/src\/cortexm\/_reset_hardware.o&quot; &quot;..\/system\/src\/cortexm\/_reset_hardware.c&quot;\r\nFinished building: ..\/system\/src\/cortexm\/_reset_hardware.c\r\n \r\nBuilding file: ..\/system\/src\/cortexm\/exception_handlers.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/cortexm\/exception_handlers.d&quot; -MT&quot;system\/src\/cortexm\/exception_handlers.o&quot; -c -o &quot;system\/src\/cortexm\/exception_handlers.o&quot; &quot;..\/system\/src\/cortexm\/exception_handlers.c&quot;\r\nFinished building: ..\/system\/src\/cortexm\/exception_handlers.c\r\n \r\nBuilding file: ..\/system\/src\/cmsis\/system_stm32f10x.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/cmsis\/system_stm32f10x.d&quot; -MT&quot;system\/src\/cmsis\/system_stm32f10x.o&quot; -c -o &quot;system\/src\/cmsis\/system_stm32f10x.o&quot; &quot;..\/system\/src\/cmsis\/system_stm32f10x.c&quot;\r\nFinished building: ..\/system\/src\/cmsis\/system_stm32f10x.c\r\n \r\nBuilding file: ..\/system\/src\/cmsis\/vectors_stm32f10x.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;system\/src\/cmsis\/vectors_stm32f10x.d&quot; -MT&quot;system\/src\/cmsis\/vectors_stm32f10x.o&quot; -c -o &quot;system\/src\/cmsis\/vectors_stm32f10x.o&quot; &quot;..\/system\/src\/cmsis\/vectors_stm32f10x.c&quot;\r\nFinished building: ..\/system\/src\/cmsis\/vectors_stm32f10x.c\r\n \r\nBuilding file: ..\/src\/BlinkLed.cpp\r\nInvoking: Cross ARM C++ Compiler\r\narm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu++11 -fabi-version=0 -fno-exceptions -fno-rtti -fno-use-cxa-atexit -fno-threadsafe-statics -MMD -MP -MF&quot;src\/BlinkLed.d&quot; -MT&quot;src\/BlinkLed.o&quot; -c -o &quot;src\/BlinkLed.o&quot; &quot;..\/src\/BlinkLed.cpp&quot;\r\nFinished building: ..\/src\/BlinkLed.cpp\r\n \r\nBuilding file: ..\/src\/Timer.cpp\r\nInvoking: Cross ARM C++ Compiler\r\narm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu++11 -fabi-version=0 -fno-exceptions -fno-rtti -fno-use-cxa-atexit -fno-threadsafe-statics -MMD -MP -MF&quot;src\/Timer.d&quot; -MT&quot;src\/Timer.o&quot; -c -o &quot;src\/Timer.o&quot; &quot;..\/src\/Timer.cpp&quot;\r\nFinished building: ..\/src\/Timer.cpp\r\n \r\nBuilding file: ..\/src\/_write.c\r\nInvoking: Cross ARM C Compiler\r\narm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu11 -MMD -MP -MF&quot;src\/_write.d&quot; -MT&quot;src\/_write.o&quot; -c -o &quot;src\/_write.o&quot; &quot;..\/src\/_write.c&quot;\r\nFinished building: ..\/src\/_write.c\r\n \r\nBuilding file: ..\/src\/main.cpp\r\nInvoking: Cross ARM C++ Compiler\r\narm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -I&quot;..\/include&quot; -I&quot;..\/system\/include&quot; -I&quot;..\/system\/include\/cmsis&quot; -I&quot;..\/system\/include\/stm32f1-stdperiph&quot; -std=gnu++11 -fabi-version=0 -fno-exceptions -fno-rtti -fno-use-cxa-atexit -fno-threadsafe-statics -MMD -MP -MF&quot;src\/main.d&quot; -MT&quot;src\/main.o&quot; -c -o &quot;src\/main.o&quot; &quot;..\/src\/main.cpp&quot;\r\nFinished building: ..\/src\/main.cpp\r\n \r\nBuilding target: blinky.elf\r\nInvoking: Cross ARM C++ Linker\r\narm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra  -g3 -T mem.ld -T libs.ld -T sections.ld -nostartfiles -Xlinker --gc-sections -L&quot;..\/ldscripts&quot; -Wl,-Map,&quot;blinky.map&quot; --specs=nano.specs -o &quot;blinky.elf&quot;  .\/system\/src\/stm32f1-stdperiph\/misc.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_adc.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_bkp.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_can.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_cec.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_crc.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_dac.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_dbgmcu.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_dma.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_exti.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_flash.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_fsmc.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_gpio.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_i2c.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_iwdg.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_pwr.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_rcc.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_rtc.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_sdio.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_spi.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_tim.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_usart.o .\/system\/src\/stm32f1-stdperiph\/stm32f10x_wwdg.o  .\/system\/src\/newlib\/_cxx.o .\/system\/src\/newlib\/_exit.o .\/system\/src\/newlib\/_sbrk.o .\/system\/src\/newlib\/_startup.o .\/system\/src\/newlib\/_syscalls.o .\/system\/src\/newlib\/assert.o  .\/system\/src\/diag\/Trace.o .\/system\/src\/diag\/trace_impl.o  .\/system\/src\/cortexm\/_initialize_hardware.o .\/system\/src\/cortexm\/_reset_hardware.o .\/system\/src\/cortexm\/exception_handlers.o  .\/system\/src\/cmsis\/system_stm32f10x.o .\/system\/src\/cmsis\/vectors_stm32f10x.o  .\/src\/BlinkLed.o .\/src\/Timer.o .\/src\/_write.o .\/src\/main.o   \r\nFinished building target: blinky.elf\r\n \r\nInvoking: Cross ARM GNU Create Flash Image\r\narm-none-eabi-objcopy -O ihex &quot;blinky.elf&quot;  &quot;blinky.hex&quot;\r\nFinished building: blinky.hex\r\n \r\nInvoking: Cross ARM GNU Print Size\r\narm-none-eabi-size --format=berkeley &quot;blinky.elf&quot;\r\n   text\t   data\t    bss\t    dec\t    hex\tfilename\r\n   5639\t    176\t    416\t   6231\t   1857\tblinky.elf\r\nFinished building: blinky.siz\r\n \r\n\r\n18:17:16 Build Finished (took 4s.836ms)\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>STM32 F1. Cortex-M3 core, mainstream MCUs covers the needs of a large variety of applications in the industrial, medical and consumer markets STM32 F3: Cortex-M4 core (with FPU and DSP instructions) running at 72 MHz with a high number of integrated analog peripherals leading to cost reduction at application level and simplifying application design Types [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5546","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/5546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5546"}],"version-history":[{"count":72,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/5546\/revisions"}],"predecessor-version":[{"id":11218,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/5546\/revisions\/11218"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}