{"id":9184,"date":"2019-02-19T16:41:22","date_gmt":"2019-02-19T16:41:22","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=9184"},"modified":"2019-06-11T07:05:46","modified_gmt":"2019-06-11T07:05:46","slug":"chibios-stm32-with-hal","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=9184","title":{"rendered":"ChibiOS STM32 with HAL"},"content":{"rendered":"<h3>Datasheet<\/h3>\n<p><a href=\"https:\/\/www.st.com\/content\/st_com\/en\/products\/microcontrollers-microprocessors\/stm32-32-bit-arm-cortex-mcus\/stm32-mainstream-mcus\/stm32f0-series\/stm32f0x2\/stm32f072rb.html\">STM32F072RB<\/a>, 128 Kbytes Flash, 48 MHz CPU, USB, CAN and CEC functions<br \/>\n<a href=\"https:\/\/www.st.com\/content\/st_com\/en\/products\/microcontrollers-microprocessors\/stm32-32-bit-arm-cortex-mcus\/stm32-mainstream-mcus\/stm32f0-series\/stm32f0x2\/stm32f072cb.html\">STM32F072CB<\/a>, 128 Kbytes Flash, 48 MHz CPU, USB, CAN and CEC functions<br \/>\n<a href=\"https:\/\/www.st.com\/content\/st_com\/en\/products\/evaluation-tools\/product-evaluation-tools\/mcu-mpu-eval-tools\/stm32-mcu-mpu-eval-tools\/stm32-nucleo-boards\/nucleo-f072rb.html#design-scroll\">NUCLEO-F072RB<\/a><\/p>\n<h3>Tutorials<\/h3>\n<p><a href=\"https:\/\/www.playembedded.org\/blog\/category\/articles\/chibios-stm32\/\">ChibiOS and STM32<\/a><br \/>\n<a href=\"https:\/\/www.playembedded.org\/blog\/from-0-to-stm32\/\">From 0 to STM32<\/a><br \/>\n<a href=\"https:\/\/www.playembedded.org\/blog\/buttons-stm32\/\">Dealing with push-buttons using an STM32<\/a><br \/>\n<a href=\"https:\/\/www.playembedded.org\/blog\/leds-stm32\/\">Dealing with LEDs using an STM32<\/a><br \/>\n<a href=\"https:\/\/www.playembedded.org\/blog\/stm32-gpio-chibios-pal\/\">Using STM32 GPIO with ChibiOS PAL Driver<\/a><br \/>\n<a href=\"https:\/\/www.playembedded.org\/blog\/chibioshal-design-an-object-oriented-approach\/\">ChibiOS\/HAL design: an object-oriented approach<\/a><br \/>\n<a href=\"https:\/\/www.playembedded.org\/blog\/stm32-usart-chibios-serial\/\">Using STM32 USART with ChibiOS Serial Driver<\/a><br \/>\n<a href=\"https:\/\/www.playembedded.org\/blog\/stm32-tim-chibios-pwm\/\">PWM in hardware with STM32 Timer and ChibiOS<\/a><br \/>\n<a href=\"https:\/\/www.playembedded.org\/blog\/stm32-spi-chibios\/\">Using STM32 SPI with ChibiOS<\/a><\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=0kagFlepmqA\">nRF24L01 on ChibiOS\/RT 3.0 using STM32<\/a><\/p>\n<h3>Product<\/h3>\n<p><a href=\"http:\/\/www.chibios.org\/dokuwiki\/doku.php?id=chibios:product:hal:start\">ChibiOS\/HAL<\/a><br \/>\n<a href=\"http:\/\/www.chibios.org\/dokuwiki\/doku.php?id=chibios:product:hal:osal\">The OSAL<\/a><br \/>\n<a href=\"http:\/\/www.chibios.org\/dokuwiki\/doku.php?id=chibios:product:hal:features\">HAL Features<\/a><br \/>\n<a href=\"http:\/\/www.chibios.org\/dokuwiki\/doku.php?id=chibios:product:hal:osal\">The OSAL<\/a><\/p>\n<ul>\n<li>SDC, abstraction of an SDIO interface to SD\/MMC cards. Implements a block interface<\/li>\n<li>MMC\/SD over SPI, MMC and SD cards handling on top of the SPI driver. Implements a block interface.<\/li>\n<\/ul>\n<h2>DokuWiki<\/h2>\n<h4>Product<\/h2>\n<p><a href=\"http:\/\/www.chibios.org\/dokuwiki\/doku.php?id=chibios:product:hal:start\">ChibiOS\/HAL<\/a><\/p>\n<h4>Articles<\/h4>\n<p><a href=\"http:\/\/www.chibios.org\/dokuwiki\/doku.php?id=chibios:articles:start\">Articles Start<\/a><br \/>\n<a href=\"http:\/\/www.chibios.org\/dokuwiki\/doku.php?id=chibios:articles:hal_integration_guide\">ChibiOS\/HAL Integration Guide<\/a><\/p>\n<h4>Book<\/h4>\n<p><a href=\"http:\/\/www.chibios.org\/dokuwiki\/doku.php?id=chibios:book:kernel_vt\">RT Virtual Timers<\/a><\/p>\n<h4>Documentation<\/h4>\n<p><a href=\"http:\/\/www.chibios.org\/dokuwiki\/doku.php?id=chibios:documentation:start\">Documentation<\/a><\/p>\n<h4>HAL 6.1.0<\/h4>\n<p><a href=\"http:\/\/chibios.sourceforge.net\/docs3\/hal\/index.html\">ChibiOS\/HAL Introduction<\/a><br \/>\n<a href=\"http:\/\/chibios.sourceforge.net\/docs3\/hal\/group___p_a_l.html\">PAL Driver<\/a>, I\/O Ports Abstraction Layer<br \/>\n<a href=\"http:\/\/chibios.sourceforge.net\/docs3\/hal\/group___g_p_t.html\">GPT Driver<\/a>, Generic GPT (General Purpose Timer) Driver<br \/>\n<a href=\"http:\/\/chibios.sourceforge.net\/docs3\/hal\/group___s_d_c.html\">SDC Driver<\/a>Generic SD Card (Secure Digital Card) Driver, <code>sdcStart()<\/code><br \/>\n<a href=\"http:\/\/chibios.sourceforge.net\/docs3\/hal\/group___s_t.html\">ST Driver<\/a>, Generic System Tick Driver<br \/>\n<a href=\"http:\/\/chibios.sourceforge.net\/docs3\/hal\/group___s_e_r_i_a_l.html\">Serial Driver<\/a>, Generic Serial Driver., <code>sdStart()<\/code><br \/>\n<a href=\"http:\/\/chibios.sourceforge.net\/docs3\/hal\/group___i_o___b_l_o_c_k.html\">Abstract I\/O Block Device<\/a><\/p>\n<h4>RT 5.1.0<\/h4>\n<p><a href=\"http:\/\/chibios.sourceforge.net\/docs3\/rt\/index.html\">ChibiOS\/RT Introduction<\/a><\/p>\n<h3>Forum<\/h3>\n<p><a href=\"http:\/\/www.chibios.com\/forum\/viewtopic.php?f=2&#038;t=1657\">SD-Card Insert\/Remove Handlers<\/a><br \/>\n<a href=\"http:\/\/www.chibios.com\/forum\/viewtopic.php?t=1890\">TM-Subsystem \/ SD-Card \/ STM32F0 \/ unknown type name &#8216;halrtc<\/a><br \/>\n<a href=\"http:\/\/www.chibios.com\/forum\/viewtopic.php?f=16&#038;t=1591\">eMMC not working with STM32F4<\/a><br \/>\n<a href=\"http:\/\/www.chibios.com\/forum\/viewtopic.php?t=498\">micro SD slots with no card detect signal<\/a><br \/>\n<a href=\"http:\/\/www.chibios.com\/forum\/viewtopic.php?t=386\">The FatFS topic<\/a><br \/>\n<a href=\"http:\/\/www.chibios.com\/forum\/viewtopic.php?t=1320\">difference between UART and Serial driver<\/a><\/p>\n<h3>github<\/h3>\n<p><a href=\"https:\/\/github.com\/jed-frey\/ARMCM4-STM32F407-STF4BB-FATFS\">github.com\/jed-frey\/ARMCM4-STM32F407-STF4BB-FATFS<\/a>, ChibiOS FatFS example for DM-STF4BB with STM32F4Discovery<br \/>\n<a href=\"https:\/\/github.com\/ChibiOS\/ChibiOS\/blob\/master\/demos\/STM32\/RT-STM32F103-OLIMEX_STM32_P103-FATFS\/main.c\">github.com\/ChibiOS\/ChibiOS\/tree\/master\/demos\/STM32\/RT-STM32F103-OLIMEX_STM32_P103-FATFS<\/a><br \/>\n<a href=\"https:\/\/github.com\/ChibiOS\/ChibiOS\/blob\/master\/os\/rt\/include\/ch.h\">github.com\/ChibiOS\/ChibiOS\/blob\/master\/os\/rt\/include\/ch.h<\/a><br \/>\n<a href=\"https:\/\/github.com\/ChibiOS\/ChibiOS\/tree\/master\/os\/various\/fatfs_bindings\">github.com\/ChibiOS\/ChibiOS\/tree\/master\/os\/various\/fatfs_bindings<\/a><\/p>\n<h3>Compilation<\/h3>\n<pre class=\"brush: plain; collapse: true; light: false; title: compile; toolbar: true; notranslate\" title=\"compile\">\r\narm-atollic-eabi-gcc\r\n-c ..\\src\\chibi\\platform\\gpt_lld.c\r\n-mthumb\r\n-mcpu=cortex-m0\r\n-std=gnu11\r\n-DCRT1_AREAS_NUMBER=1\r\n-DARM_MATH_CM0\r\n-DSTM32F072B_DISCO\r\n-DSTM32F072RBTx\r\n-DSTM32F0\r\n-DSTM32\r\n-DDEBUG\r\n-DHAL_USE_USB=TRUE\r\n-DHAL_USE_SPI=TRUE\r\n-DHAL_USE_SERIAL=TRUE\r\n-DHAL_USE_ADC=TRUE\r\n-DHAL_USE_UART=FALSE\r\n-DHAL_USE_GPT=TRUE\r\n-DSTM32_GPT_USE_TIM14=TRUE\r\n-IC:\/msys64\/home\/bachman0\/Fluoedema\/Firmware\/inc\r\n-IC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\inc\\chibi\\board\r\n-IC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\inc\\chibi\\hal\r\n-IC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\inc\\chibi\\osal\r\n-IC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\inc\\chibi\\platform\r\n-IC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\inc\\chibi\\startup\\CMSIS\r\n-IC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\inc\\chibi\\startup\\ST\r\n-IC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\inc\\chibi\\startup\r\n-IC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\src\r\n-IC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\inc\\chibi\\various\r\n-IC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\inc\\chibi\\lib\r\n-Og\r\n-ffunction-sections\r\n-g3\r\n-fstack-usage\r\n-Wall\r\n-fmessage-length=0\r\n-specs=nano.specs\r\n-o src\\chibi\\platform\\gpt_lld.o \r\n<\/pre>\n<pre class=\"brush: plain; collapse: true; light: false; title: link; toolbar: true; notranslate\" title=\"link\">\r\narm-atollic-eabi-gcc\r\n-o chibi_hal_debug.elf\r\nsrc\\cdc.o\r\nsrc\\cfg.o\r\nsrc\\chibi\\board\\board.o\r\nsrc\\chibi\\hal\\adc.o\r\nsrc\\chibi\\hal\\can.o\r\nsrc\\chibi\\hal\\dac.o\r\nsrc\\chibi\\hal\\ext.o\r\nsrc\\chibi\\hal\\gpt.o\r\nsrc\\chibi\\hal\\hal.o\r\nsrc\\chibi\\hal\\hal_buffers.o\r\nsrc\\chibi\\hal\\hal_mmcsd.o\r\nsrc\\chibi\\hal\\hal_queues.o\r\nsrc\\chibi\\hal\\i2c.o\r\nsrc\\chibi\\hal\\i2s.o\r\nsrc\\chibi\\hal\\icu.o\r\nsrc\\chibi\\hal\\mac.o\r\nsrc\\chibi\\hal\\mmc_spi.o\r\nsrc\\chibi\\hal\\pal.o\r\nsrc\\chibi\\hal\\pwm.o\r\nsrc\\chibi\\hal\\rtc.o\r\nsrc\\chibi\\hal\\sdc.o\r\nsrc\\chibi\\hal\\serial.o\r\nsrc\\chibi\\hal\\serial_usb.o\r\nsrc\\chibi\\hal\\spi.o\r\nsrc\\chibi\\hal\\st.o\r\nsrc\\chibi\\hal\\uart.o\r\nsrc\\chibi\\hal\\usb.o\r\nsrc\\chibi\\hal\\wdg.o\r\nsrc\\chibi\\lib\\chprintf.o\r\nsrc\\chibi\\lib\\memstreams.o\r\nsrc\\chibi\\lib\\nullstreams.o\r\nsrc\\chibi\\osal\\osal.o\r\nsrc\\chibi\\platform\\adc_lld.o\r\nsrc\\chibi\\platform\\can_lld.o\r\nsrc\\chibi\\platform\\dac_lld.o\r\nsrc\\chibi\\platform\\ext_lld.o\r\nsrc\\chibi\\platform\\ext_lld_isr.o\r\nsrc\\chibi\\platform\\gpt_lld.o\r\nsrc\\chibi\\platform\\hal_lld.o\r\nsrc\\chibi\\platform\\i2c_lld.o\r\nsrc\\chibi\\platform\\i2s_lld.o\r\nsrc\\chibi\\platform\\icu_lld.o\r\nsrc\\chibi\\platform\\nvic.o\r\nsrc\\chibi\\platform\\pal_lld.o\r\nsrc\\chibi\\platform\\pwm_lld.o\r\nsrc\\chibi\\platform\\rtc_lld.o\r\nsrc\\chibi\\platform\\serial_lld.o\r\nsrc\\chibi\\platform\\spi_lld.o\r\nsrc\\chibi\\platform\\st_lld.o\r\nsrc\\chibi\\platform\\stm32_dma.o\r\nsrc\\chibi\\platform\\uart_lld.o\r\nsrc\\chibi\\platform\\usb_lld.o\r\nsrc\\chibi\\platform\\wdg_lld.o\r\nsrc\\chibi\\startup\\crt1.o\r\nsrc\\chibi\\startup\\vectors.o\r\nsrc\\cmd.o\r\nsrc\\debug.o\r\nsrc\\eeprom\\eeprom.o\r\nsrc\\eeprom\\stm32f0xx_flash.o\r\nsrc\\iad.o\r\nsrc\\ifc.o\r\nsrc\\lym.o\r\nsrc\\main.o\r\nsrc\\que.o\r\nsrc\\ssd\\cmds.o\r\nsrc\\ssd\\com.o\r\nsrc\\ssd\\ssd.o\r\nsrc\\ssd\\util.o\r\nsrc\\ugui\\ugui.o\r\nsrc\\usbcfg.o\r\nsrc\\vis.o\r\nstartup\\crt0_v6m.o\r\nstartup\\sysmem.o\r\n-larm_cortexM0l_math\r\n-lm\r\n-mthumb\r\n-mcpu=cortex-m0\r\n-TC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\LinkerScript.ld\r\n-specs=nosys.specs\r\n-static\r\n-LC:\\msys64\\home\\bachman0\\Fluoedema\\Firmware\\bin\r\n-Wl,--defsym=__process_stack_size__=0x000,--defsym=__main_stack_size__=0x800\r\n-u _printf_float\r\n-Wl,-Map=chibi_hal_debug.map\r\n-Wl,--gc-sections\r\n-Wl,--defsym=malloc_getpagesize_P=0x80\r\n-Wl,--start-group -lc -lm -Wl,--end-group\r\n-specs=nano.specs \r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Datasheet STM32F072RB, 128 Kbytes Flash, 48 MHz CPU, USB, CAN and CEC functions STM32F072CB, 128 Kbytes Flash, 48 MHz CPU, USB, CAN and CEC functions NUCLEO-F072RB Tutorials ChibiOS and STM32 From 0 to STM32 Dealing with push-buttons using an STM32 Dealing with LEDs using an STM32 Using STM32 GPIO with ChibiOS PAL Driver ChibiOS\/HAL design: [&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-9184","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/9184","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=9184"}],"version-history":[{"count":24,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/9184\/revisions"}],"predecessor-version":[{"id":9712,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/9184\/revisions\/9712"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}