Demo of the usage USBDevice library with Blue Pill STM32F103C8T6 board.
STM32F103C8T6 USBSerial Demo
This project contains demo of the USB serial usage for a cheap developer board Blue Pill with STM32F103C8T6 mcu.
The USB serial port provides a good communication channel between PC and microcontroller. Especially it can be useful for a debug purposes.
Notes
- by the specifications this board has only 64KB of the flash, but actually it can have 128KB, that will be useful for a debug builds as it requires about 100KB of the flash for this demo.
- the board can have some problems with an USB because it has wrong value of the pull-up resistor
- for steady reading of data from a serial port, the project contains python script serial_reader.py (it requires PySerial and six python libraries), that is steady to the board reloading
- the project depends on the fork of the USBDevice library. This fork contains some fixes and support of the BLUE_PILL_STM32F103C8 target.
- the mbed-os now contains correct code for a clock initialization of the BLUE_PILL_STM32F103C8 target, so you don't need to adjust the board clocks separately
Diff: Makefile
- Revision:
- 0:24604e97c40c
diff -r 000000000000 -r 24604e97c40c Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Fri Aug 04 18:41:22 2017 +0300 @@ -0,0 +1,584 @@ +# This file was automagically generated by mbed.org. For more information, +# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded + +############################################################################### +# Boiler-plate + +# cross-platform directory manipulation +ifeq ($(shell echo $$OS),$$OS) + MAKEDIR = if not exist "$(1)" mkdir "$(1)" + RM = rmdir /S /Q "$(1)" +else + MAKEDIR = '$(SHELL)' -c "mkdir -p \"$(1)\"" + RM = '$(SHELL)' -c "rm -rf \"$(1)\"" +endif + +OBJDIR := BUILD +# Move to the build directory +ifeq (,$(filter $(OBJDIR),$(notdir $(CURDIR)))) +.SUFFIXES: +mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) +MAKETARGET = '$(MAKE)' --no-print-directory -C $(OBJDIR) -f '$(mkfile_path)' \ + 'SRCDIR=$(CURDIR)' $(MAKECMDGOALS) +.PHONY: $(OBJDIR) clean +all: + +@$(call MAKEDIR,$(OBJDIR)) + +@$(MAKETARGET) +$(OBJDIR): all +Makefile : ; +% :: $(OBJDIR) ; : +clean : + $(call RM,$(OBJDIR)) + +else + +# trick rules into thinking we are in the root, when we are in the bulid dir +VPATH = .. + +# Boiler-plate +############################################################################### +# Project settings + +PROJECT := Example1_USBSerial + + +# Project settings +############################################################################### +# Objects and Paths + +OBJECTS += ./libs/USBDevice/USBAudio/USBAudio.o +OBJECTS += ./libs/USBDevice/USBDevice/USBDevice.o +OBJECTS += ./libs/USBDevice/USBHID/USBHID.o +OBJECTS += ./libs/USBDevice/USBHID/USBKeyboard.o +OBJECTS += ./libs/USBDevice/USBHID/USBMouse.o +OBJECTS += ./libs/USBDevice/USBHID/USBMouseKeyboard.o +OBJECTS += ./libs/USBDevice/USBMIDI/USBMIDI.o +OBJECTS += ./libs/USBDevice/USBMSD/USBMSD.o +OBJECTS += ./libs/USBDevice/USBSerial/USBCDC.o +OBJECTS += ./libs/USBDevice/USBSerial/USBSerial.o +OBJECTS += ./libs/USBDevice/targets/TARGET_STM/USBHAL_STM32.o +OBJECTS += ./libs/USBDevice/targets/TARGET_STM/USBHAL_STM32F4.o +OBJECTS += ./main.o +OBJECTS += ./mbed-os/drivers/AnalogIn.o +OBJECTS += ./mbed-os/drivers/BusIn.o +OBJECTS += ./mbed-os/drivers/BusInOut.o +OBJECTS += ./mbed-os/drivers/BusOut.o +OBJECTS += ./mbed-os/drivers/CAN.o +OBJECTS += ./mbed-os/drivers/Ethernet.o +OBJECTS += ./mbed-os/drivers/FlashIAP.o +OBJECTS += ./mbed-os/drivers/I2C.o +OBJECTS += ./mbed-os/drivers/I2CSlave.o +OBJECTS += ./mbed-os/drivers/InterruptIn.o +OBJECTS += ./mbed-os/drivers/InterruptManager.o +OBJECTS += ./mbed-os/drivers/RawSerial.o +OBJECTS += ./mbed-os/drivers/SPI.o +OBJECTS += ./mbed-os/drivers/SPISlave.o +OBJECTS += ./mbed-os/drivers/Serial.o +OBJECTS += ./mbed-os/drivers/SerialBase.o +OBJECTS += ./mbed-os/drivers/Ticker.o +OBJECTS += ./mbed-os/drivers/Timeout.o +OBJECTS += ./mbed-os/drivers/Timer.o +OBJECTS += ./mbed-os/drivers/TimerEvent.o +OBJECTS += ./mbed-os/drivers/UARTSerial.o +OBJECTS += ./mbed-os/events/EventQueue.o +OBJECTS += ./mbed-os/events/equeue/equeue.o +OBJECTS += ./mbed-os/events/equeue/equeue_mbed.o +OBJECTS += ./mbed-os/events/equeue/equeue_posix.o +OBJECTS += ./mbed-os/features/filesystem/Dir.o +OBJECTS += ./mbed-os/features/filesystem/File.o +OBJECTS += ./mbed-os/features/filesystem/FileSystem.o +OBJECTS += ./mbed-os/features/filesystem/bd/ChainingBlockDevice.o +OBJECTS += ./mbed-os/features/filesystem/bd/HeapBlockDevice.o +OBJECTS += ./mbed-os/features/filesystem/bd/MBRBlockDevice.o +OBJECTS += ./mbed-os/features/filesystem/bd/SlicingBlockDevice.o +OBJECTS += ./mbed-os/features/filesystem/fat/ChaN/ccsbcs.o +OBJECTS += ./mbed-os/features/filesystem/fat/ChaN/ff.o +OBJECTS += ./mbed-os/features/filesystem/fat/FATFileSystem.o +OBJECTS += ./mbed-os/features/frameworks/greentea-client/source/greentea_metrics.o +OBJECTS += ./mbed-os/features/frameworks/greentea-client/source/greentea_serial.o +OBJECTS += ./mbed-os/features/frameworks/greentea-client/source/greentea_test_env.o +OBJECTS += ./mbed-os/features/frameworks/unity/source/unity.o +OBJECTS += ./mbed-os/features/frameworks/utest/mbed-utest-shim.o +OBJECTS += ./mbed-os/features/frameworks/utest/source/unity_handler.o +OBJECTS += ./mbed-os/features/frameworks/utest/source/utest_case.o +OBJECTS += ./mbed-os/features/frameworks/utest/source/utest_default_handlers.o +OBJECTS += ./mbed-os/features/frameworks/utest/source/utest_greentea_handlers.o +OBJECTS += ./mbed-os/features/frameworks/utest/source/utest_harness.o +OBJECTS += ./mbed-os/features/frameworks/utest/source/utest_shim.o +OBJECTS += ./mbed-os/features/frameworks/utest/source/utest_stack_trace.o +OBJECTS += ./mbed-os/features/frameworks/utest/source/utest_types.o +OBJECTS += ./mbed-os/features/mbedtls/platform/src/mbed_trng.o +OBJECTS += ./mbed-os/features/mbedtls/src/aes.o +OBJECTS += ./mbed-os/features/mbedtls/src/aesni.o +OBJECTS += ./mbed-os/features/mbedtls/src/arc4.o +OBJECTS += ./mbed-os/features/mbedtls/src/asn1parse.o +OBJECTS += ./mbed-os/features/mbedtls/src/asn1write.o +OBJECTS += ./mbed-os/features/mbedtls/src/base64.o +OBJECTS += ./mbed-os/features/mbedtls/src/bignum.o +OBJECTS += ./mbed-os/features/mbedtls/src/blowfish.o +OBJECTS += ./mbed-os/features/mbedtls/src/camellia.o +OBJECTS += ./mbed-os/features/mbedtls/src/ccm.o +OBJECTS += ./mbed-os/features/mbedtls/src/certs.o +OBJECTS += ./mbed-os/features/mbedtls/src/cipher.o +OBJECTS += ./mbed-os/features/mbedtls/src/cipher_wrap.o +OBJECTS += ./mbed-os/features/mbedtls/src/cmac.o +OBJECTS += ./mbed-os/features/mbedtls/src/ctr_drbg.o +OBJECTS += ./mbed-os/features/mbedtls/src/debug.o +OBJECTS += ./mbed-os/features/mbedtls/src/des.o +OBJECTS += ./mbed-os/features/mbedtls/src/dhm.o +OBJECTS += ./mbed-os/features/mbedtls/src/ecdh.o +OBJECTS += ./mbed-os/features/mbedtls/src/ecdsa.o +OBJECTS += ./mbed-os/features/mbedtls/src/ecjpake.o +OBJECTS += ./mbed-os/features/mbedtls/src/ecp.o +OBJECTS += ./mbed-os/features/mbedtls/src/ecp_curves.o +OBJECTS += ./mbed-os/features/mbedtls/src/entropy.o +OBJECTS += ./mbed-os/features/mbedtls/src/entropy_poll.o +OBJECTS += ./mbed-os/features/mbedtls/src/error.o +OBJECTS += ./mbed-os/features/mbedtls/src/gcm.o +OBJECTS += ./mbed-os/features/mbedtls/src/havege.o +OBJECTS += ./mbed-os/features/mbedtls/src/hmac_drbg.o +OBJECTS += ./mbed-os/features/mbedtls/src/md.o +OBJECTS += ./mbed-os/features/mbedtls/src/md2.o +OBJECTS += ./mbed-os/features/mbedtls/src/md4.o +OBJECTS += ./mbed-os/features/mbedtls/src/md5.o +OBJECTS += ./mbed-os/features/mbedtls/src/md_wrap.o +OBJECTS += ./mbed-os/features/mbedtls/src/memory_buffer_alloc.o +OBJECTS += ./mbed-os/features/mbedtls/src/net_sockets.o +OBJECTS += ./mbed-os/features/mbedtls/src/oid.o +OBJECTS += ./mbed-os/features/mbedtls/src/padlock.o +OBJECTS += ./mbed-os/features/mbedtls/src/pem.o +OBJECTS += ./mbed-os/features/mbedtls/src/pk.o +OBJECTS += ./mbed-os/features/mbedtls/src/pk_wrap.o +OBJECTS += ./mbed-os/features/mbedtls/src/pkcs11.o +OBJECTS += ./mbed-os/features/mbedtls/src/pkcs12.o +OBJECTS += ./mbed-os/features/mbedtls/src/pkcs5.o +OBJECTS += ./mbed-os/features/mbedtls/src/pkparse.o +OBJECTS += ./mbed-os/features/mbedtls/src/pkwrite.o +OBJECTS += ./mbed-os/features/mbedtls/src/platform.o +OBJECTS += ./mbed-os/features/mbedtls/src/ripemd160.o +OBJECTS += ./mbed-os/features/mbedtls/src/rsa.o +OBJECTS += ./mbed-os/features/mbedtls/src/sha1.o +OBJECTS += ./mbed-os/features/mbedtls/src/sha256.o +OBJECTS += ./mbed-os/features/mbedtls/src/sha512.o +OBJECTS += ./mbed-os/features/mbedtls/src/ssl_cache.o +OBJECTS += ./mbed-os/features/mbedtls/src/ssl_ciphersuites.o +OBJECTS += ./mbed-os/features/mbedtls/src/ssl_cli.o +OBJECTS += ./mbed-os/features/mbedtls/src/ssl_cookie.o +OBJECTS += ./mbed-os/features/mbedtls/src/ssl_srv.o +OBJECTS += ./mbed-os/features/mbedtls/src/ssl_ticket.o +OBJECTS += ./mbed-os/features/mbedtls/src/ssl_tls.o +OBJECTS += ./mbed-os/features/mbedtls/src/threading.o +OBJECTS += ./mbed-os/features/mbedtls/src/timing.o +OBJECTS += ./mbed-os/features/mbedtls/src/version.o +OBJECTS += ./mbed-os/features/mbedtls/src/version_features.o +OBJECTS += ./mbed-os/features/mbedtls/src/x509.o +OBJECTS += ./mbed-os/features/mbedtls/src/x509_create.o +OBJECTS += ./mbed-os/features/mbedtls/src/x509_crl.o +OBJECTS += ./mbed-os/features/mbedtls/src/x509_crt.o +OBJECTS += ./mbed-os/features/mbedtls/src/x509_csr.o +OBJECTS += ./mbed-os/features/mbedtls/src/x509write_crt.o +OBJECTS += ./mbed-os/features/mbedtls/src/x509write_csr.o +OBJECTS += ./mbed-os/features/mbedtls/src/xtea.o +OBJECTS += ./mbed-os/features/mbedtls/targets/TARGET_STM/aes_alt.o +OBJECTS += ./mbed-os/features/mbedtls/targets/TARGET_STM/sha1_alt.o +OBJECTS += ./mbed-os/features/mbedtls/targets/TARGET_STM/sha256_alt.o +OBJECTS += ./mbed-os/features/netsocket/NetworkInterface.o +OBJECTS += ./mbed-os/features/netsocket/NetworkStack.o +OBJECTS += ./mbed-os/features/netsocket/Socket.o +OBJECTS += ./mbed-os/features/netsocket/SocketAddress.o +OBJECTS += ./mbed-os/features/netsocket/TCPServer.o +OBJECTS += ./mbed-os/features/netsocket/TCPSocket.o +OBJECTS += ./mbed-os/features/netsocket/UDPSocket.o +OBJECTS += ./mbed-os/features/netsocket/WiFiAccessPoint.o +OBJECTS += ./mbed-os/features/netsocket/cellular/generic_modem_driver/OnboardCellularInterface.o +OBJECTS += ./mbed-os/features/netsocket/cellular/generic_modem_driver/PPPCellularInterface.o +OBJECTS += ./mbed-os/features/netsocket/cellular/generic_modem_driver/UARTCellularInterface.o +OBJECTS += ./mbed-os/features/netsocket/nsapi_dns.o +OBJECTS += ./mbed-os/hal/mbed_flash_api.o +OBJECTS += ./mbed-os/hal/mbed_gpio.o +OBJECTS += ./mbed-os/hal/mbed_lp_ticker_api.o +OBJECTS += ./mbed-os/hal/mbed_pinmap_common.o +OBJECTS += ./mbed-os/hal/mbed_ticker_api.o +OBJECTS += ./mbed-os/hal/mbed_us_ticker_api.o +OBJECTS += ./mbed-os/platform/ATCmdParser.o +OBJECTS += ./mbed-os/platform/CallChain.o +OBJECTS += ./mbed-os/platform/FileBase.o +OBJECTS += ./mbed-os/platform/FileHandle.o +OBJECTS += ./mbed-os/platform/FilePath.o +OBJECTS += ./mbed-os/platform/FileSystemHandle.o +OBJECTS += ./mbed-os/platform/LocalFileSystem.o +OBJECTS += ./mbed-os/platform/Stream.o +OBJECTS += ./mbed-os/platform/mbed_alloc_wrappers.o +OBJECTS += ./mbed-os/platform/mbed_application.o +OBJECTS += ./mbed-os/platform/mbed_assert.o +OBJECTS += ./mbed-os/platform/mbed_board.o +OBJECTS += ./mbed-os/platform/mbed_critical.o +OBJECTS += ./mbed-os/platform/mbed_error.o +OBJECTS += ./mbed-os/platform/mbed_interface.o +OBJECTS += ./mbed-os/platform/mbed_mem_trace.o +OBJECTS += ./mbed-os/platform/mbed_mktime.o +OBJECTS += ./mbed-os/platform/mbed_poll.o +OBJECTS += ./mbed-os/platform/mbed_retarget.o +OBJECTS += ./mbed-os/platform/mbed_rtc_time.o +OBJECTS += ./mbed-os/platform/mbed_sdk_boot.o +OBJECTS += ./mbed-os/platform/mbed_semihost_api.o +OBJECTS += ./mbed-os/platform/mbed_stats.o +OBJECTS += ./mbed-os/platform/mbed_wait_api_no_rtos.o +OBJECTS += ./mbed-os/platform/mbed_wait_api_rtos.o +OBJECTS += ./mbed-os/rtos/Mutex.o +OBJECTS += ./mbed-os/rtos/RtosTimer.o +OBJECTS += ./mbed-os/rtos/Semaphore.o +OBJECTS += ./mbed-os/rtos/Thread.o +OBJECTS += ./mbed-os/rtos/mbed_boot.o +OBJECTS += ./mbed-os/rtos/rtos_idle.o +OBJECTS += ./mbed-os/rtos/rtx4/cmsis_os1.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/RTX_Config.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/TARGET_M3/TOOLCHAIN_GCC/irq_cm3.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rt_OsEventObserver.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_delay.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_evflags.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_evr.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_kernel.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_lib.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_memory.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_mempool.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_msgqueue.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_mutex.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_semaphore.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_system.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_thread.o +OBJECTS += ./mbed-os/rtos/rtx5/TARGET_CORTEX_M/rtx_timer.o +OBJECTS += ./mbed-os/rtos/rtx5/mbed_rtx_handlers.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/TARGET_BLUEPILL_F103C8/PeripheralPins.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/TARGET_BLUEPILL_F103C8/device/TOOLCHAIN_GCC_ARM/startup_stm32f103xb.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/TARGET_BLUEPILL_F103C8/device/system_clock.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/analogin_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_adc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_adc_ex.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_can.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_cec.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_cortex.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_crc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_dac.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_dac_ex.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_dma.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_eth.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_flash.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_flash_ex.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_gpio.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_gpio_ex.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_hcd.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_i2c.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_i2s.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_irda.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_iwdg.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_mmc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_nand.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_nor.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_pccard.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_pcd.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_pcd_ex.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_pwr.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_rcc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_rcc_ex.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_rtc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_rtc_ex.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_sd.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_smartcard.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_spi.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_spi_ex.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_sram.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_tim.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_tim_ex.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_uart.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_usart.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_wwdg.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_adc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_crc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_dac.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_dma.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_exti.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_fsmc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_gpio.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_i2c.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_pwr.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_rcc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_rtc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_sdmmc.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_spi.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_tim.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_usart.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_usb.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_ll_utils.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/device/system_stm32f1xx.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/gpio_irq_device.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/pwmout_device.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/serial_device.o +OBJECTS += ./mbed-os/targets/TARGET_STM/TARGET_STM32F1/spi_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/analogout_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/can_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/gpio_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/gpio_irq_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/hal_tick_16b.o +OBJECTS += ./mbed-os/targets/TARGET_STM/hal_tick_32b.o +OBJECTS += ./mbed-os/targets/TARGET_STM/i2c_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/lp_ticker.o +OBJECTS += ./mbed-os/targets/TARGET_STM/mbed_overrides.o +OBJECTS += ./mbed-os/targets/TARGET_STM/pinmap.o +OBJECTS += ./mbed-os/targets/TARGET_STM/port_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/pwmout_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/rtc_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/serial_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/sleep.o +OBJECTS += ./mbed-os/targets/TARGET_STM/stm_spi_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/trng_api.o +OBJECTS += ./mbed-os/targets/TARGET_STM/us_ticker_16b.o +OBJECTS += ./mbed-os/targets/TARGET_STM/us_ticker_32b.o + + +INCLUDE_PATHS += -I../ +INCLUDE_PATHS += -I../. +INCLUDE_PATHS += -I.././libs +INCLUDE_PATHS += -I.././libs/USBDevice +INCLUDE_PATHS += -I.././libs/USBDevice/USBAudio +INCLUDE_PATHS += -I.././libs/USBDevice/USBDevice +INCLUDE_PATHS += -I.././libs/USBDevice/USBHID +INCLUDE_PATHS += -I.././libs/USBDevice/USBMIDI +INCLUDE_PATHS += -I.././libs/USBDevice/USBMSD +INCLUDE_PATHS += -I.././libs/USBDevice/USBSerial +INCLUDE_PATHS += -I.././libs/USBDevice/targets +INCLUDE_PATHS += -I.././libs/USBDevice/targets/TARGET_STM +INCLUDE_PATHS += -I.././libs/USBDevice/targets/TARGET_STM/TARGET_STM32F1 +INCLUDE_PATHS += -I.././libs/USBDevice/targets/TARGET_STM/TARGET_STM32F1/TARGET_BLUEPILL_F103C8 +INCLUDE_PATHS += -I.././mbed-os +INCLUDE_PATHS += -I.././mbed-os/cmsis +INCLUDE_PATHS += -I.././mbed-os/cmsis/TARGET_CORTEX_M +INCLUDE_PATHS += -I.././mbed-os/cmsis/TARGET_CORTEX_M/TOOLCHAIN_GCC +INCLUDE_PATHS += -I.././mbed-os/drivers +INCLUDE_PATHS += -I.././mbed-os/events +INCLUDE_PATHS += -I.././mbed-os/events/equeue +INCLUDE_PATHS += -I.././mbed-os/features +INCLUDE_PATHS += -I.././mbed-os/features/filesystem +INCLUDE_PATHS += -I.././mbed-os/features/filesystem/bd +INCLUDE_PATHS += -I.././mbed-os/features/filesystem/fat +INCLUDE_PATHS += -I.././mbed-os/features/filesystem/fat/ChaN +INCLUDE_PATHS += -I.././mbed-os/features/frameworks +INCLUDE_PATHS += -I.././mbed-os/features/frameworks/greentea-client +INCLUDE_PATHS += -I.././mbed-os/features/frameworks/greentea-client/greentea-client +INCLUDE_PATHS += -I.././mbed-os/features/frameworks/greentea-client/source +INCLUDE_PATHS += -I.././mbed-os/features/frameworks/unity +INCLUDE_PATHS += -I.././mbed-os/features/frameworks/unity/source +INCLUDE_PATHS += -I.././mbed-os/features/frameworks/unity/unity +INCLUDE_PATHS += -I.././mbed-os/features/frameworks/utest +INCLUDE_PATHS += -I.././mbed-os/features/frameworks/utest/source +INCLUDE_PATHS += -I.././mbed-os/features/frameworks/utest/utest +INCLUDE_PATHS += -I.././mbed-os/features/mbedtls +INCLUDE_PATHS += -I.././mbed-os/features/mbedtls/importer +INCLUDE_PATHS += -I.././mbed-os/features/mbedtls/inc +INCLUDE_PATHS += -I.././mbed-os/features/mbedtls/inc/mbedtls +INCLUDE_PATHS += -I.././mbed-os/features/mbedtls/platform +INCLUDE_PATHS += -I.././mbed-os/features/mbedtls/platform/inc +INCLUDE_PATHS += -I.././mbed-os/features/mbedtls/platform/src +INCLUDE_PATHS += -I.././mbed-os/features/mbedtls/src +INCLUDE_PATHS += -I.././mbed-os/features/mbedtls/targets +INCLUDE_PATHS += -I.././mbed-os/features/mbedtls/targets/TARGET_STM +INCLUDE_PATHS += -I.././mbed-os/features/nanostack +INCLUDE_PATHS += -I.././mbed-os/features/netsocket +INCLUDE_PATHS += -I.././mbed-os/features/netsocket/cellular +INCLUDE_PATHS += -I.././mbed-os/features/netsocket/cellular/generic_modem_driver +INCLUDE_PATHS += -I.././mbed-os/features/netsocket/cellular/utils +INCLUDE_PATHS += -I.././mbed-os/features/storage +INCLUDE_PATHS += -I.././mbed-os/hal +INCLUDE_PATHS += -I.././mbed-os/hal/storage_abstraction +INCLUDE_PATHS += -I.././mbed-os/platform +INCLUDE_PATHS += -I.././mbed-os/rtos +INCLUDE_PATHS += -I.././mbed-os/rtos/rtx4 +INCLUDE_PATHS += -I.././mbed-os/rtos/rtx5 +INCLUDE_PATHS += -I.././mbed-os/rtos/rtx5/TARGET_CORTEX_M +INCLUDE_PATHS += -I.././mbed-os/rtos/rtx5/TARGET_CORTEX_M/TARGET_M3 +INCLUDE_PATHS += -I.././mbed-os/rtos/rtx5/TARGET_CORTEX_M/TARGET_M3/TOOLCHAIN_GCC +INCLUDE_PATHS += -I.././mbed-os/targets +INCLUDE_PATHS += -I.././mbed-os/targets/TARGET_STM +INCLUDE_PATHS += -I.././mbed-os/targets/TARGET_STM/TARGET_STM32F1 +INCLUDE_PATHS += -I.././mbed-os/targets/TARGET_STM/TARGET_STM32F1/TARGET_BLUEPILL_F103C8 +INCLUDE_PATHS += -I.././mbed-os/targets/TARGET_STM/TARGET_STM32F1/TARGET_BLUEPILL_F103C8/device +INCLUDE_PATHS += -I.././mbed-os/targets/TARGET_STM/TARGET_STM32F1/TARGET_BLUEPILL_F103C8/device/TOOLCHAIN_GCC_ARM +INCLUDE_PATHS += -I.././mbed-os/targets/TARGET_STM/TARGET_STM32F1/device +INCLUDE_PATHS += -I.././patches + +LIBRARY_PATHS := +LIBRARIES := +LINKER_SCRIPT ?= patches/STM32F103C8T6_128KB.ld + +# Objects and Paths +############################################################################### +# Tools and Flags + +AS = 'arm-none-eabi-gcc' '-x' 'assembler-with-cpp' '-c' '-Wall' '-Wextra' '-Wno-unused-parameter' '-Wno-missing-field-initializers' '-fmessage-length=0' '-fno-exceptions' '-fno-builtin' '-ffunction-sections' '-fdata-sections' '-funsigned-char' '-MMD' '-fno-delete-null-pointer-checks' '-fomit-frame-pointer' '-O0' '-g3' '-DMBED_DEBUG' '-DMBED_TRAP_ERRORS_ENABLED=1' '-mcpu=cortex-m3' '-mthumb' +CC = 'arm-none-eabi-gcc' '-std=gnu99' '-c' '-Wall' '-Wextra' '-Wno-unused-parameter' '-Wno-missing-field-initializers' '-fmessage-length=0' '-fno-exceptions' '-fno-builtin' '-ffunction-sections' '-fdata-sections' '-funsigned-char' '-MMD' '-fno-delete-null-pointer-checks' '-fomit-frame-pointer' '-O0' '-g3' '-DMBED_DEBUG' '-DMBED_TRAP_ERRORS_ENABLED=1' '-mcpu=cortex-m3' '-mthumb' +CPP = 'arm-none-eabi-g++' '-std=gnu++98' '-fno-rtti' '-Wvla' '-c' '-Wall' '-Wextra' '-Wno-unused-parameter' '-Wno-missing-field-initializers' '-fmessage-length=0' '-fno-exceptions' '-fno-builtin' '-ffunction-sections' '-fdata-sections' '-funsigned-char' '-MMD' '-fno-delete-null-pointer-checks' '-fomit-frame-pointer' '-O0' '-g3' '-DMBED_DEBUG' '-DMBED_TRAP_ERRORS_ENABLED=1' '-mcpu=cortex-m3' '-mthumb' +LD = 'arm-none-eabi-gcc' +ELF2BIN = 'arm-none-eabi-objcopy' +PREPROC = 'arm-none-eabi-cpp' '-E' '-P' '-Wl,--gc-sections' '-Wl,--wrap,main' '-Wl,--wrap,_malloc_r' '-Wl,--wrap,_free_r' '-Wl,--wrap,_realloc_r' '-Wl,--wrap,_memalign_r' '-Wl,--wrap,_calloc_r' '-Wl,--wrap,exit' '-Wl,--wrap,atexit' '-Wl,-n' '-mcpu=cortex-m3' '-mthumb' + + +C_FLAGS += -std=gnu99 +C_FLAGS += -DMBED_BUILD_TIMESTAMP=1501851115.89 +C_FLAGS += -D__MBED__=1 +C_FLAGS += -DDEVICE_I2CSLAVE=1 +C_FLAGS += -DTARGET_LIKE_MBED +C_FLAGS += -DDEVICE_PORTOUT=1 +C_FLAGS += -DDEVICE_PORTINOUT=1 +C_FLAGS += -D__MBED_CMSIS_RTOS_CM +C_FLAGS += -DTARGET_STM32F1 +C_FLAGS += -DTOOLCHAIN_object +C_FLAGS += -D__CMSIS_RTOS +C_FLAGS += -DTOOLCHAIN_GCC +C_FLAGS += -DDEVICE_I2C_ASYNCH=1 +C_FLAGS += -DTARGET_BLUEPILL_F103C8 +C_FLAGS += -DTARGET_CORTEX_M +C_FLAGS += -DTARGET_DEBUG +C_FLAGS += -DARM_MATH_CM3 +C_FLAGS += -DTARGET_STM32F103C8 +C_FLAGS += -DTARGET_UVISOR_UNSUPPORTED +C_FLAGS += -DTARGET_M3 +C_FLAGS += -DDEVICE_SERIAL=1 +C_FLAGS += -DDEVICE_SPI_ASYNCH=1 +C_FLAGS += -DDEVICE_INTERRUPTIN=1 +C_FLAGS += -DDEVICE_I2C=1 +C_FLAGS += -DTRANSACTION_QUEUE_SIZE_SPI=2 +C_FLAGS += -D__CORTEX_M3 +C_FLAGS += -DTARGET_FAMILY_STM32 +C_FLAGS += -DTARGET_STM +C_FLAGS += -DDEVICE_PORTIN=1 +C_FLAGS += -DDEVICE_SLEEP=1 +C_FLAGS += -DTOOLCHAIN_GCC_ARM +C_FLAGS += -DINITIAL_SP=0x20005000UL +C_FLAGS += -DDEVICE_SPI=1 +C_FLAGS += -DDEVICE_SPISLAVE=1 +C_FLAGS += -DDEVICE_ANALOGIN=1 +C_FLAGS += -DDEVICE_PWMOUT=1 +C_FLAGS += -DTARGET_LIKE_CORTEX_M3 +C_FLAGS += -include +C_FLAGS += mbed_config.h + +CXX_FLAGS += -std=gnu++98 +CXX_FLAGS += -fno-rtti +CXX_FLAGS += -Wvla +CXX_FLAGS += -DMBED_BUILD_TIMESTAMP=1501851115.89 +CXX_FLAGS += -D__MBED__=1 +CXX_FLAGS += -DDEVICE_I2CSLAVE=1 +CXX_FLAGS += -DTARGET_LIKE_MBED +CXX_FLAGS += -DDEVICE_PORTOUT=1 +CXX_FLAGS += -DDEVICE_PORTINOUT=1 +CXX_FLAGS += -D__MBED_CMSIS_RTOS_CM +CXX_FLAGS += -DTARGET_STM32F1 +CXX_FLAGS += -DTOOLCHAIN_object +CXX_FLAGS += -D__CMSIS_RTOS +CXX_FLAGS += -DTOOLCHAIN_GCC +CXX_FLAGS += -DDEVICE_I2C_ASYNCH=1 +CXX_FLAGS += -DTARGET_BLUEPILL_F103C8 +CXX_FLAGS += -DTARGET_CORTEX_M +CXX_FLAGS += -DTARGET_DEBUG +CXX_FLAGS += -DARM_MATH_CM3 +CXX_FLAGS += -DTARGET_STM32F103C8 +CXX_FLAGS += -DTARGET_UVISOR_UNSUPPORTED +CXX_FLAGS += -DTARGET_M3 +CXX_FLAGS += -DDEVICE_SERIAL=1 +CXX_FLAGS += -DDEVICE_SPI_ASYNCH=1 +CXX_FLAGS += -DDEVICE_INTERRUPTIN=1 +CXX_FLAGS += -DDEVICE_I2C=1 +CXX_FLAGS += -DTRANSACTION_QUEUE_SIZE_SPI=2 +CXX_FLAGS += -D__CORTEX_M3 +CXX_FLAGS += -DTARGET_FAMILY_STM32 +CXX_FLAGS += -DTARGET_STM +CXX_FLAGS += -DDEVICE_PORTIN=1 +CXX_FLAGS += -DDEVICE_SLEEP=1 +CXX_FLAGS += -DTOOLCHAIN_GCC_ARM +CXX_FLAGS += -DINITIAL_SP=0x20005000UL +CXX_FLAGS += -DDEVICE_SPI=1 +CXX_FLAGS += -DDEVICE_SPISLAVE=1 +CXX_FLAGS += -DDEVICE_ANALOGIN=1 +CXX_FLAGS += -DDEVICE_PWMOUT=1 +CXX_FLAGS += -DTARGET_LIKE_CORTEX_M3 +CXX_FLAGS += -include +CXX_FLAGS += mbed_config.h + +ASM_FLAGS += -x +ASM_FLAGS += assembler-with-cpp +ASM_FLAGS += -DTRANSACTION_QUEUE_SIZE_SPI=2 +ASM_FLAGS += -D__CORTEX_M3 +ASM_FLAGS += -DINITIAL_SP=0x20005000UL +ASM_FLAGS += -DARM_MATH_CM3 +ASM_FLAGS += -D__MBED_CMSIS_RTOS_CM +ASM_FLAGS += -D__CMSIS_RTOS + + +LD_FLAGS :=-Wl,--gc-sections -Wl,--wrap,main -Wl,--wrap,_malloc_r -Wl,--wrap,_free_r -Wl,--wrap,_realloc_r -Wl,--wrap,_memalign_r -Wl,--wrap,_calloc_r -Wl,--wrap,exit -Wl,--wrap,atexit -Wl,-n -mcpu=cortex-m3 -mthumb +LD_SYS_LIBS :=-Wl,--start-group -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys -Wl,--end-group + +# Tools and Flags +############################################################################### +# Rules + +.PHONY: all lst size + + +all: $(PROJECT).bin $(PROJECT).hex size + + +.asm.o: + +@$(call MAKEDIR,$(dir $@)) + +@echo "Assemble: $(notdir $<)" + @$(AS) -c $(ASM_FLAGS) $(INCLUDE_PATHS) -o $@ $< + +.s.o: + +@$(call MAKEDIR,$(dir $@)) + +@echo "Assemble: $(notdir $<)" + @$(AS) -c $(ASM_FLAGS) $(INCLUDE_PATHS) -o $@ $< + +.S.o: + +@$(call MAKEDIR,$(dir $@)) + +@echo "Assemble: $(notdir $<)" + @$(AS) -c $(ASM_FLAGS) $(INCLUDE_PATHS) -o $@ $< + +.c.o: + +@$(call MAKEDIR,$(dir $@)) + +@echo "Compile: $(notdir $<)" + @$(CC) $(C_FLAGS) $(INCLUDE_PATHS) -o $@ $< + +.cpp.o: + +@$(call MAKEDIR,$(dir $@)) + +@echo "Compile: $(notdir $<)" + @$(CPP) $(CXX_FLAGS) $(INCLUDE_PATHS) -o $@ $< + + +$(PROJECT).link_script.ld: $(LINKER_SCRIPT) + @$(PREPROC) $< -o $@ + + + +$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS) $(PROJECT).link_script.ld + +@echo "link: $(notdir $@)" + @$(LD) $(LD_FLAGS) -T $(filter %.ld, $^) $(LIBRARY_PATHS) --output $@ $(filter %.o, $^) $(LIBRARIES) $(LD_SYS_LIBS) + + +$(PROJECT).bin: $(PROJECT).elf + $(ELF2BIN) -O binary $< $@ + +@echo "===== bin file ready to flash: $(OBJDIR)/$@ =====" + +$(PROJECT).hex: $(PROJECT).elf + $(ELF2BIN) -O ihex $< $@ + + +# Rules +############################################################################### +# Dependencies + +DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d) +-include $(DEPS) +endif + +# Dependencies +###############################################################################