diff --git a/boards.txt b/boards.txt index b256e5804e..9ce9fc22b8 100644 --- a/boards.txt +++ b/boards.txt @@ -1,10 +1,11 @@ -# See: http://code.google.com/p/arduino/wiki/Platforms +# See: https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification + +menu.board_part_num=Board part number + +menu.Other_serial=Other serial instance +menu.USB_interface=USB interface menu.upload_method=Upload method -menu.Nucleo_32_board=Nucleo 32 boards -menu.Nucleo_64_board=Nucleo 64 boards -menu.Nucleo_144_board=Nucleo 144 boards -menu.Disco_board=Discovery boards ################################################################################ # Nucleo 144 boards @@ -18,27 +19,23 @@ Nucleo_144.pid.0=0x5711 Nucleo_144.build.core=arduino Nucleo_144.build.board=Nucleo_144 +Nucleo_144.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.enable_Serialx} # NUCLEO_F429ZI board - -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI=Nucleo F429ZI -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.node=NODE_F429ZI -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.upload.maximum_size=2097152 -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.upload.maximum_data_size=262144 -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.build.mcu=cortex-m4 -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.build.f_cpu=16000000L -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.build.usb_product="NUCLEO-F429ZI" -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.build.board=NUCLEO_F429ZI -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.build.series=STM32F4xx -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.build.variant=NUCLEO_F429ZI -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.build.cmsis_lib_gcc=arm_cortexM4l_math -#To enable USB add '-DUSBCON' -#To enable HID (keyboard and mouse support) add also '-DUSBD_USE_HID_COMPOSITE' -#To enable Serial1 (USART1 on PG9, PG14) add -DENABLE_SERIAL1 -#To enable Serial2 (USART2 on PD6, PD5) add -DENABLE_SERIAL2 -Nucleo_144.menu.Nucleo_144_board.NUCLEO_F429ZI.build.extra_flags=-DSTM32F429xx {build.usb_flags} - - +# Support: USB HID, Serial1 (USART1 on PG9, PG14) and Serial2 (USART2 on PD6, PD5) +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI=Nucleo F429ZI +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI.node=NODE_F429ZI +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI.upload.maximum_size=2097152 +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI.upload.maximum_data_size=262144 +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI.build.mcu=cortex-m4 +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI.build.f_cpu=16000000L +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI.build.board=NUCLEO_F429ZI +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI.build.series=STM32F4xx +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI.build.product_line=STM32F429xx +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI.build.variant=NUCLEO_F429ZI +Nucleo_144.menu.board_part_num.NUCLEO_F429ZI.build.cmsis_lib_gcc=arm_cortexM4l_math + +# Upload menu Nucleo_144.menu.upload_method.MassStorageMethod=Mass Storage Nucleo_144.menu.upload_method.MassStorageMethod.upload.protocol= Nucleo_144.menu.upload_method.MassStorageMethod.upload.tool=massStorageCopy @@ -59,84 +56,80 @@ Nucleo_64.pid.0=0x5711 Nucleo_64.build.core=arduino Nucleo_64.build.board=Nucleo_64 +Nucleo_64.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.enable_Serialx} # NUCLEO_F030R8 board - -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8=Nucleo F030R8 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8.node="NODE_F030R8,NUCLEO" -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8.upload.maximum_size=65536 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8.upload.maximum_data_size=8192 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8.build.mcu=cortex-m0 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8.build.f_cpu=48000000L -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8.build.board=NUCLEO_F030R8 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8.build.series=STM32F0xx -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8.build.variant=NUCLEO_F030R8 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8.build.cmsis_lib_gcc=arm_cortexM0l_math -#To enable Serial1 (USART1 on PA10, PA9) add -DENABLE_SERIAL1 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F030R8.build.extra_flags=-DSTM32F030x8 +# Support: Serial1 (USART1 on PA10, PA9) +Nucleo_64.menu.board_part_num.NUCLEO_F030R8=Nucleo F030R8 +Nucleo_64.menu.board_part_num.NUCLEO_F030R8.node="NODE_F030R8,NUCLEO" +Nucleo_64.menu.board_part_num.NUCLEO_F030R8.upload.maximum_size=65536 +Nucleo_64.menu.board_part_num.NUCLEO_F030R8.upload.maximum_data_size=8192 +Nucleo_64.menu.board_part_num.NUCLEO_F030R8.build.mcu=cortex-m0 +Nucleo_64.menu.board_part_num.NUCLEO_F030R8.build.f_cpu=48000000L +Nucleo_64.menu.board_part_num.NUCLEO_F030R8.build.board=NUCLEO_F030R8 +Nucleo_64.menu.board_part_num.NUCLEO_F030R8.build.series=STM32F0xx +Nucleo_64.menu.board_part_num.NUCLEO_F030R8.build.product_line=STM32F030x8 +Nucleo_64.menu.board_part_num.NUCLEO_F030R8.build.variant=NUCLEO_F030R8 +Nucleo_64.menu.board_part_num.NUCLEO_F030R8.build.cmsis_lib_gcc=arm_cortexM0l_math # NUCLEO_F091RC board - -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC=Nucleo F091RC -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC.node=NODE_F091RC -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC.upload.maximum_size=262144 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC.upload.maximum_data_size=32768 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC.build.mcu=cortex-m0 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC.build.f_cpu=8000000L -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC.build.board=NUCLEO_F091RC -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC.build.series=STM32F0xx -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC.build.variant=NUCLEO_F091RC -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC.build.cmsis_lib_gcc=arm_cortexM0l_math -#To enable Serial1 (USART1 on PA10, PA9) add -DENABLE_SERIAL1 -#To enable Serial2 (USART2 on PA1, PA0) add -DENABLE_SERIAL2 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F091RC.build.extra_flags=-DSTM32F091xC +# Support: Serial1 (USART1 on PA10, PA9) and Serial2 (USART2 on PA1, PA0) +Nucleo_64.menu.board_part_num.NUCLEO_F091RC=Nucleo F091RC +Nucleo_64.menu.board_part_num.NUCLEO_F091RC.node=NODE_F091RC +Nucleo_64.menu.board_part_num.NUCLEO_F091RC.upload.maximum_size=262144 +Nucleo_64.menu.board_part_num.NUCLEO_F091RC.upload.maximum_data_size=32768 +Nucleo_64.menu.board_part_num.NUCLEO_F091RC.build.mcu=cortex-m0 +Nucleo_64.menu.board_part_num.NUCLEO_F091RC.build.f_cpu=8000000L +Nucleo_64.menu.board_part_num.NUCLEO_F091RC.build.board=NUCLEO_F091RC +Nucleo_64.menu.board_part_num.NUCLEO_F091RC.build.series=STM32F0xx +Nucleo_64.menu.board_part_num.NUCLEO_F091RC.build.product_line=STM32F091xC +Nucleo_64.menu.board_part_num.NUCLEO_F091RC.build.variant=NUCLEO_F091RC +Nucleo_64.menu.board_part_num.NUCLEO_F091RC.build.cmsis_lib_gcc=arm_cortexM0l_math # NUCLEO_F303RE board - -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE=Nucleo F303RE -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE.node=NODE_F303RE -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE.upload.maximum_size=524288 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE.upload.maximum_data_size=65536 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE.build.mcu=cortex-m4 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE.build.f_cpu=8000000L -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE.build.board=NUCLEO_F303RE -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE.build.series=STM32F3xx -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE.build.variant=NUCLEO_F303RE -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE.build.cmsis_lib_gcc=arm_cortexM4l_math -#To enable Serial1 (USART1 on PA10, PA9) add -DENABLE_SERIAL1 -#To enable Serial2 (USART2 on PA1, PA0) add -DENABLE_SERIAL2 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_F303RE.build.extra_flags=-DSTM32F303xE +# Support: Serial1 (USART1 on PA10, PA9) and Serial2 (USART2 on PA1, PA0) +Nucleo_64.menu.board_part_num.NUCLEO_F303RE=Nucleo F303RE +Nucleo_64.menu.board_part_num.NUCLEO_F303RE.node=NODE_F303RE +Nucleo_64.menu.board_part_num.NUCLEO_F303RE.upload.maximum_size=524288 +Nucleo_64.menu.board_part_num.NUCLEO_F303RE.upload.maximum_data_size=65536 +Nucleo_64.menu.board_part_num.NUCLEO_F303RE.build.mcu=cortex-m4 +Nucleo_64.menu.board_part_num.NUCLEO_F303RE.build.f_cpu=8000000L +Nucleo_64.menu.board_part_num.NUCLEO_F303RE.build.board=NUCLEO_F303RE +Nucleo_64.menu.board_part_num.NUCLEO_F303RE.build.series=STM32F3xx +Nucleo_64.menu.board_part_num.NUCLEO_F303RE.build.product_line=STM32F303xE +Nucleo_64.menu.board_part_num.NUCLEO_F303RE.build.variant=NUCLEO_F303RE +Nucleo_64.menu.board_part_num.NUCLEO_F303RE.build.cmsis_lib_gcc=arm_cortexM4l_math # NUCLEO_L053R8 board - -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8=Nucleo L053R8 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8.node=NODE_L053R8 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8.upload.maximum_size=65536 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8.upload.maximum_data_size=8192 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8.build.mcu=cortex-m0 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8.build.f_cpu=2000000L -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8.build.board=NUCLEO_L053R8 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8.build.series=STM32L0xx -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8.build.variant=NUCLEO_L053R8 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8.build.cmsis_lib_gcc=arm_cortexM0l_math -#To enable Serial1 (USART1 on PA10, PA9) add -DENABLE_SERIAL1 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L053R8.build.extra_flags=-DSTM32L053xx -D__CORTEX_SC=0 +# Support: Serial1 (USART1 on PA10, PA9) +Nucleo_64.menu.board_part_num.NUCLEO_L053R8=Nucleo L053R8 +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.node=NODE_L053R8 +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.upload.maximum_size=65536 +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.upload.maximum_data_size=8192 +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.build.mcu=cortex-m0 +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.build.f_cpu=2000000L +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.build.board=NUCLEO_L053R8 +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.build.series=STM32L0xx +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.build.product_line=STM32L053xx +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.build.variant=NUCLEO_L053R8 +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.build.cmsis_lib_gcc=arm_cortexM0l_math +Nucleo_64.menu.board_part_num.NUCLEO_L053R8.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.enable_Serialx} -D__CORTEX_SC=0 # NUCLEO_L476RG board - -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG=Nucleo L476RG -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG.node=NODE_L476RG -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG.upload.maximum_size=1048576 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG.upload.maximum_data_size=131072 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG.build.mcu=cortex-m4 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG.build.f_cpu=4000000L -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG.build.board=NUCLEO_L476RG -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG.build.series=STM32L4xx -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG.build.variant=NUCLEO_L476RG -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG.build.cmsis_lib_gcc=arm_cortexM4l_math -#To enable Serial1 (USART1 on PA10, PA9) add -DENABLE_SERIAL1 -Nucleo_64.menu.Nucleo_64_board.NUCLEO_L476RG.build.extra_flags=-DSTM32L476xx - +# Support: Serial1 (USART1 on PA10, PA9) +Nucleo_64.menu.board_part_num.NUCLEO_L476RG=Nucleo L476RG +Nucleo_64.menu.board_part_num.NUCLEO_L476RG.node=NODE_L476RG +Nucleo_64.menu.board_part_num.NUCLEO_L476RG.upload.maximum_size=1048576 +Nucleo_64.menu.board_part_num.NUCLEO_L476RG.upload.maximum_data_size=131072 +Nucleo_64.menu.board_part_num.NUCLEO_L476RG.build.mcu=cortex-m4 +Nucleo_64.menu.board_part_num.NUCLEO_L476RG.build.f_cpu=4000000L +Nucleo_64.menu.board_part_num.NUCLEO_L476RG.build.board=NUCLEO_L476RG +Nucleo_64.menu.board_part_num.NUCLEO_L476RG.build.series=STM32L4xx +Nucleo_64.menu.board_part_num.NUCLEO_L476RG.build.product_line=STM32L476xx +Nucleo_64.menu.board_part_num.NUCLEO_L476RG.build.variant=NUCLEO_L476RG +Nucleo_64.menu.board_part_num.NUCLEO_L476RG.build.cmsis_lib_gcc=arm_cortexM4l_math + +# Upload menu Nucleo_64.menu.upload_method.MassStorageMethod=Mass Storage Nucleo_64.menu.upload_method.MassStorageMethod.upload.protocol= Nucleo_64.menu.upload_method.MassStorageMethod.upload.tool=massStorageCopy @@ -157,24 +150,23 @@ Nucleo_32.pid.0=0x5711 Nucleo_32.build.core=arduino Nucleo_32.build.board=Nucleo_32 +Nucleo_32.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.enable_Serialx} # NUCLEO_L432KC board - -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC=Nucleo L432KC -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.node=NODE_L432KC -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.upload.maximum_size=65536 -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.upload.maximum_data_size=262144 -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.build.mcu=cortex-m4 -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.build.f_cpu=80000000L -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.build.usb_product="NUCLEO-L432KC" -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.build.board=NUCLEO_L432KC -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.build.series=STM32L4xx -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.build.variant=NUCLEO_L432KC -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.build.cmsis_lib_gcc=arm_cortexM4l_math -#To enable Serial1 (USART1 on PA10, PA9) add -DENABLE_SERIAL1 -Nucleo_32.menu.Nucleo_32_board.NUCLEO_L432KC.build.extra_flags=-DSTM32L432xx {build.usb_flags} - - +# Support: Serial1 (USART1 on PA10, PA9) +Nucleo_32.menu.board_part_num.NUCLEO_L432KC=Nucleo L432KC +Nucleo_32.menu.board_part_num.NUCLEO_L432KC.node=NODE_L432KC +Nucleo_32.menu.board_part_num.NUCLEO_L432KC.upload.maximum_size=65536 +Nucleo_32.menu.board_part_num.NUCLEO_L432KC.upload.maximum_data_size=262144 +Nucleo_32.menu.board_part_num.NUCLEO_L432KC.build.mcu=cortex-m4 +Nucleo_32.menu.board_part_num.NUCLEO_L432KC.build.f_cpu=80000000L +Nucleo_32.menu.board_part_num.NUCLEO_L432KC.build.board=NUCLEO_L432KC +Nucleo_32.menu.board_part_num.NUCLEO_L432KC.build.series=STM32L4xx +Nucleo_32.menu.board_part_num.NUCLEO_L432KC.build.product_line=STM32L432xx +Nucleo_32.menu.board_part_num.NUCLEO_L432KC.build.variant=NUCLEO_L432KC +Nucleo_32.menu.board_part_num.NUCLEO_L432KC.build.cmsis_lib_gcc=arm_cortexM4l_math + +# Upload menu Nucleo_32.menu.upload_method.MassStorageMethod=Mass Storage Nucleo_32.menu.upload_method.MassStorageMethod.upload.protocol= Nucleo_32.menu.upload_method.MassStorageMethod.upload.tool=massStorageCopy @@ -186,60 +178,110 @@ Nucleo_32.menu.upload_method.STLinkMethod.upload.tool=stlink_upload ################################################################################ # Discovery boards -Disco_board.name=Discovery +Disco.name=Discovery -Disco_board.build.vid=0x0483 -Disco_board.build.pid=0x5711 -Disco_board.vid.0=0x0483 -Disco_board.pid.0=0x5711 +Disco.build.vid=0x0483 +Disco.build.pid=0x5711 +Disco.vid.0=0x0483 +Disco.pid.0=0x5711 -Disco_board.build.core=arduino -Disco_board.build.board=Disco_board +Disco.build.core=arduino +Disco.build.board=Disco +Disco.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.enable_Serialx} # DISCO_F407VG board - -Disco_board.menu.Disco_board.DISCO_F407VG=STM32F407G-DISC1 -Disco_board.menu.Disco_board.DISCO_F407VG.node=DIS_F407VG -Disco_board.menu.Disco_board.DISCO_F407VG.upload.maximum_size=1048576 -Disco_board.menu.Disco_board.DISCO_F407VG.upload.maximum_data_size=196608 -Disco_board.menu.Disco_board.DISCO_F407VG.build.mcu=cortex-m4 -Disco_board.menu.Disco_board.DISCO_F407VG.build.f_cpu=16000000L -Disco_board.menu.Disco_board.DISCO_F407VG.build.usb_product="DISCO-F407G" -Disco_board.menu.Disco_board.DISCO_F407VG.build.board=DISCO_F407VG -Disco_board.menu.Disco_board.DISCO_F407VG.build.series=STM32F4xx -Disco_board.menu.Disco_board.DISCO_F407VG.build.variant=DISCO_F407VG -Disco_board.menu.Disco_board.DISCO_F407VG.build.cmsis_lib_gcc=arm_cortexM4l_math -#To enable USB add '-DUSBCON' -#To enable HID (keyboard and mouse support) add also '-DUSBD_USE_HID_COMPOSITE' -Disco_board.menu.Disco_board.DISCO_F407VG.build.extra_flags=-DSTM32F407xx {build.usb_flags} +# Support: USB HID +Disco.menu.board_part_num.DISCO_F407VG=STM32F407G-DISC1 +Disco.menu.board_part_num.DISCO_F407VG.node=DIS_F407VG +Disco.menu.board_part_num.DISCO_F407VG.upload.maximum_size=1048576 +Disco.menu.board_part_num.DISCO_F407VG.upload.maximum_data_size=196608 +Disco.menu.board_part_num.DISCO_F407VG.build.mcu=cortex-m4 +Disco.menu.board_part_num.DISCO_F407VG.build.f_cpu=16000000L +Disco.menu.board_part_num.DISCO_F407VG.build.board=DISCO_F407VG +Disco.menu.board_part_num.DISCO_F407VG.build.series=STM32F4xx +Disco.menu.board_part_num.DISCO_F407VG.build.product_line=STM32F407xx +Disco.menu.board_part_num.DISCO_F407VG.build.variant=DISCO_F407VG +Disco.menu.board_part_num.DISCO_F407VG.build.cmsis_lib_gcc=arm_cortexM4l_math # DISCO_F746NG board - -Disco_board.menu.Disco_board.DISCO_F746NG=STM32F746G-DISCOVERY -Disco_board.menu.Disco_board.DISCO_F746NG.node=DIS_F746NG -Disco_board.menu.Disco_board.DISCO_F746NG.upload.maximum_size=1048576 -Disco_board.menu.Disco_board.DISCO_F746NG.upload.maximum_data_size=327680 -Disco_board.menu.Disco_board.DISCO_F746NG.build.mcu=cortex-m7 -Disco_board.menu.Disco_board.DISCO_F746NG.build.f_cpu=216000000L -Disco_board.menu.Disco_board.DISCO_F746NG.build.usb_product="DISCO-F746NG" -Disco_board.menu.Disco_board.DISCO_F746NG.build.board=DISCO_F746NG -Disco_board.menu.Disco_board.DISCO_F746NG.build.series=STM32F7xx -Disco_board.menu.Disco_board.DISCO_F746NG.build.variant=DISCO_F746NG -Disco_board.menu.Disco_board.DISCO_F746NG.build.cmsis_lib_gcc=arm_cortexM7l_math -#To enable USB add '-DUSBCON' -#To enable HID (keyboard and mouse support) add also '-DUSBD_USE_HID_COMPOSITE' -#To enable Serial1 (USART6 on PC7, PC6) add -DENABLE_SERIAL1 -#To enable Serial2 (UART7 on PF6, PF7) add -DENABLE_SERIAL2 -Disco_board.menu.Disco_board.DISCO_F746NG.build.extra_flags=-DSTM32F746xx {build.usb_flags} - - -Disco_board.menu.upload_method.MassStorageMethod=Mass Storage -Disco_board.menu.upload_method.MassStorageMethod.upload.protocol= -Disco_board.menu.upload_method.MassStorageMethod.upload.tool=massStorageCopy - -Disco_board.menu.upload_method.STLinkMethod=STLink -Disco_board.menu.upload_method.STLinkMethod.upload.protocol=STLink -Disco_board.menu.upload_method.STLinkMethod.upload.tool=stlink_upload +# Support: USB HID, Serial1 (USART6 on PC7, PC6) and Serial2 (UART7 on PF6, PF7) +Disco.menu.board_part_num.DISCO_F746NG=STM32F746G-DISCOVERY +Disco.menu.board_part_num.DISCO_F746NG.node=DIS_F746NG +Disco.menu.board_part_num.DISCO_F746NG.upload.maximum_size=1048576 +Disco.menu.board_part_num.DISCO_F746NG.upload.maximum_data_size=327680 +Disco.menu.board_part_num.DISCO_F746NG.build.mcu=cortex-m7 +Disco.menu.board_part_num.DISCO_F746NG.build.f_cpu=216000000L +Disco.menu.board_part_num.DISCO_F746NG.build.board=DISCO_F746NG +Disco.menu.board_part_num.DISCO_F746NG.build.series=STM32F7xx +Disco.menu.board_part_num.DISCO_F746NG.build.product_line=STM32F746xx +Disco.menu.board_part_num.DISCO_F746NG.build.variant=DISCO_F746NG +Disco.menu.board_part_num.DISCO_F746NG.build.cmsis_lib_gcc=arm_cortexM7l_math + +# Upload menu +Disco.menu.upload_method.MassStorageMethod=Mass Storage +Disco.menu.upload_method.MassStorageMethod.upload.protocol= +Disco.menu.upload_method.MassStorageMethod.upload.tool=massStorageCopy + +Disco.menu.upload_method.STLinkMethod=STLink +Disco.menu.upload_method.STLinkMethod.upload.protocol=STLink +Disco.menu.upload_method.STLinkMethod.upload.tool=stlink_upload ################################################################################ +# Serialx activation +Nucleo_144.menu.Other_serial.enable_Serial=None +Nucleo_144.menu.Other_serial.enable_SerialAll=All +Nucleo_144.menu.Other_serial.enable_SerialAll.build.enable_Serialx=-DENABLE_SERIAL1 -DENABLE_SERIAL2 +Nucleo_144.menu.Other_serial.enable_Serial1=Serial1 (if available) +Nucleo_144.menu.Other_serial.enable_Serial1.build.enable_Serialx=-DENABLE_SERIAL1 +Nucleo_144.menu.Other_serial.enable_Serial2=Serial2 (if available) +Nucleo_144.menu.Other_serial.enable_Serial2.build.enable_Serialx=-DENABLE_SERIAL2 + +Nucleo_64.menu.Other_serial.enable_Serial=None +Nucleo_64.menu.Other_serial.enable_SerialAll=All +Nucleo_64.menu.Other_serial.enable_SerialAll.build.enable_Serialx=-DENABLE_SERIAL1 -DENABLE_SERIAL2 +Nucleo_64.menu.Other_serial.enable_Serial1=Serial1 (if available) +Nucleo_64.menu.Other_serial.enable_Serial1.build.enable_Serialx=-DENABLE_SERIAL1 +Nucleo_64.menu.Other_serial.enable_Serial2=Serial2 (if available) +Nucleo_64.menu.Other_serial.enable_Serial2.build.enable_Serialx=-DENABLE_SERIAL2 + +Nucleo_32.menu.Other_serial.enable_Serial=None +Nucleo_32.menu.Other_serial.enable_SerialAll=All +Nucleo_32.menu.Other_serial.enable_SerialAll.build.enable_Serialx=-DENABLE_SERIAL1 -DENABLE_SERIAL2 +Nucleo_32.menu.Other_serial.enable_Serial1=Serial1 (if available) +Nucleo_32.menu.Other_serial.enable_Serial1.build.enable_Serialx=-DENABLE_SERIAL1 +Nucleo_32.menu.Other_serial.enable_Serial2=Serial2 (if available) +Nucleo_32.menu.Other_serial.enable_Serial2.build.enable_Serialx=-DENABLE_SERIAL2 + +Disco.menu.Other_serial.enable_Serial=None +Disco.menu.Other_serial.enable_SerialAll=All +Disco.menu.Other_serial.enable_SerialAll.build.enable_Serialx=-DENABLE_SERIAL1 -DENABLE_SERIAL2 +Disco.menu.Other_serial.enable_Serial1=Serial1 (if available) +Disco.menu.Other_serial.enable_Serial1.build.enable_Serialx=-DENABLE_SERIAL1 +Disco.menu.Other_serial.enable_Serial2=Serial2 (if available) +Disco.menu.Other_serial.enable_Serial2.build.enable_Serialx=-DENABLE_SERIAL2 + +# USB connectivity +Nucleo_144.menu.USB_interface.enable_USB=None +Nucleo_144.menu.USB_interface.enable_HID=HID keyboard and mouse support (if available) +Nucleo_144.menu.USB_interface.enable_HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE +Nucleo_144.menu.USB_interface.enable_CDC=CDC (if available) +Nucleo_144.menu.USB_interface.enable_CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS + +Nucleo_64.menu.USB_interface.enable_USB=None +Nucleo_64.menu.USB_interface.enable_HID=HID keyboard and mouse support (if available) +Nucleo_64.menu.USB_interface.enable_HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE +Nucleo_64.menu.USB_interface.enable_CDC=CDC (if available) +Nucleo_64.menu.USB_interface.enable_CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS + +Nucleo_32.menu.USB_interface.enable_USB=None +Nucleo_32.menu.USB_interface.enable_HID=HID keyboard and mouse support (if available) +Nucleo_32.menu.USB_interface.enable_HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE +Nucleo_32.menu.USB_interface.enable_CDC=CDC (if available) +Nucleo_32.menu.USB_interface.enable_CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS + +Disco.menu.USB_interface.enable_USB=None +Disco.menu.USB_interface.enable_HID=HID keyboard and mouse support (if available) +Disco.menu.USB_interface.enable_HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE +Disco.menu.USB_interface.enable_CDC=CDC (if available) +Disco.menu.USB_interface.enable_CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS diff --git a/cores/arduino/stm32/usb_interface.h b/cores/arduino/stm32/usb_interface.h index 0e23f1cb12..070b7bc861 100644 --- a/cores/arduino/stm32/usb_interface.h +++ b/cores/arduino/stm32/usb_interface.h @@ -41,7 +41,17 @@ #ifdef USBCON /* Includes ------------------------------------------------------------------*/ +#if __has_include("usbd_desc.h") #include "usbd_desc.h" +#else +#ifdef USBD_USE_HID_COMPOSITE +#error "This board does not support (yet?) USB HID! Select 'None' in the 'Tools->USB interface' menu" +#elif defined(USBD_USE_CDC) +#error "This board does not support (yet?) USB CDC! Select 'None' in the 'Tools->USB interface' menu" +#else +#error "This board does not support (yet?) USB! Select 'None' in the 'Tools->USB interface' menu" +#endif +#endif #include "usbd_hid_composite.h" #ifdef __cplusplus diff --git a/cores/arduino/utils.h b/cores/arduino/utils.h new file mode 100644 index 0000000000..7d106e204d --- /dev/null +++ b/cores/arduino/utils.h @@ -0,0 +1,30 @@ +/* + * + * Copyright (C) 2017, STMicroelectronics - All Rights Reserved + * Author: Frederic Pillon for STMicroelectronics. + * + * License type: GPLv2 + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see + * . + */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __UTILS_H +#define __UTILS_H + +// Concatenate 2 strings +#define CONCAT(s1, s2) (s1 s2) +// Concatenate 2 strings separated by space +#define CONCATS(s1, s2) (s1" " s2) + +#endif diff --git a/libraries/Keyboard/src/Keyboard.h b/libraries/Keyboard/src/Keyboard.h index 858f1dd210..640346e633 100644 --- a/libraries/Keyboard/src/Keyboard.h +++ b/libraries/Keyboard/src/Keyboard.h @@ -24,9 +24,9 @@ #include -#if !defined(USBCON) +#if !defined(USBCON) || !defined(USBD_USE_HID_COMPOSITE) -#warning "Using legacy HID core (non pluggable)" +#error "USB HID not enabled! Select 'HID' in the 'Tools->USB interface' menu." #else diff --git a/libraries/Mouse/src/Mouse.h b/libraries/Mouse/src/Mouse.h index 05e6e82661..0a28ffc250 100644 --- a/libraries/Mouse/src/Mouse.h +++ b/libraries/Mouse/src/Mouse.h @@ -24,9 +24,9 @@ #include -#if !defined(USBCON) +#if !defined(USBCON) || !defined(USBD_USE_HID_COMPOSITE) -#warning "Using legacy HID core (non pluggable)" +#error "USB HID not enabled! Select 'HID' in the 'Tools->USB interface' menu." #else diff --git a/platform.txt b/platform.txt index 646c7f09eb..d728a87a3d 100644 --- a/platform.txt +++ b/platform.txt @@ -55,12 +55,17 @@ compiler.arm.cmsis.c.flags="-I{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Include/" " compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" -l{build.cmsis_lib_gcc} # USB Flags # --------- -build.usb_flags=-DUSBD_VID={build.vid} -DUSBD_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' +build.usb_flags=-DUSBCON -DUSBD_VID={build.vid} -DUSBD_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT="{build.board}"' # Default usb manufacturer will be replaced at compile time using # numeric vendor ID if available or by board's specific value. build.usb_manufacturer="Unknown" +# +# Defaults config +# +build.enable_Serialx= +build.enable_usb= # compile patterns # --------------------- diff --git a/variants/DISCO_F407VG/usb/usbd_desc.c b/variants/DISCO_F407VG/usb/usbd_desc.c index 82b1346210..57da7a4f77 100644 --- a/variants/DISCO_F407VG/usb/usbd_desc.c +++ b/variants/DISCO_F407VG/usb/usbd_desc.c @@ -49,6 +49,7 @@ #include "usbd_core.h" #include "usbd_desc.h" #include "usbd_conf.h" +#include "utils.h" /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ @@ -64,14 +65,16 @@ #elif !defined(USB_MANUFACTURER) // Fall through to unknown if no manufacturer name was provided in a macro #define USBD_MANUFACTURER_STRING "Unknown" +#else +#define USBD_MANUFACTURER_STRING USB_MANUFACTURER #endif #ifdef USBD_USE_HID_COMPOSITE -#define USBD_HID_PRODUCT_HS_STRING "HID in HS Mode" -#define USBD_HID_PRODUCT_FS_STRING "HID in FS Mode" -#define USBD_HID_CONFIGURATION_HS_STRING "HID Config" -#define USBD_HID_INTERFACE_HS_STRING "HID Interface" -#define USBD_HID_CONFIGURATION_FS_STRING "HID Config" -#define USBD_HID_INTERFACE_FS_STRING "HID Interface" +#define USBD_HID_PRODUCT_HS_STRING CONCATS(USB_PRODUCT, "HID in HS Mode") +#define USBD_HID_PRODUCT_FS_STRING CONCATS(USB_PRODUCT, "HID in FS Mode") +#define USBD_HID_CONFIGURATION_HS_STRING CONCATS(USB_PRODUCT, "HID Config") +#define USBD_HID_INTERFACE_HS_STRING CONCATS(USB_PRODUCT, "HID Interface") +#define USBD_HID_CONFIGURATION_FS_STRING CONCATS(USB_PRODUCT, "HID Config") +#define USBD_HID_INTERFACE_FS_STRING CONCATS(USB_PRODUCT, "HID Interface") /* Private macro -------------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ diff --git a/variants/NUCLEO_F429ZI/usb/usbd_desc.c b/variants/NUCLEO_F429ZI/usb/usbd_desc.c index 96e2698f33..27f8df5e35 100644 --- a/variants/NUCLEO_F429ZI/usb/usbd_desc.c +++ b/variants/NUCLEO_F429ZI/usb/usbd_desc.c @@ -49,6 +49,8 @@ #include "usbd_core.h" #include "usbd_desc.h" #include "usbd_conf.h" +#include "utils.h" + /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ @@ -63,14 +65,16 @@ #elif !defined(USB_MANUFACTURER) // Fall through to unknown if no manufacturer name was provided in a macro #define USBD_MANUFACTURER_STRING "Unknown" +#else +#define USBD_MANUFACTURER_STRING USB_MANUFACTURER #endif #ifdef USBD_USE_HID_COMPOSITE -#define USBD_HID_PRODUCT_HS_STRING "HID in HS Mode" -#define USBD_HID_PRODUCT_FS_STRING "HID in FS Mode" -#define USBD_HID_CONFIGURATION_HS_STRING "HID Config" -#define USBD_HID_INTERFACE_HS_STRING "HID Interface" -#define USBD_HID_CONFIGURATION_FS_STRING "HID Config" -#define USBD_HID_INTERFACE_FS_STRING "HID Interface" +#define USBD_HID_PRODUCT_HS_STRING CONCATS(USB_PRODUCT, "HID in HS Mode") +#define USBD_HID_PRODUCT_FS_STRING CONCATS(USB_PRODUCT, "HID in FS Mode") +#define USBD_HID_CONFIGURATION_HS_STRING CONCATS(USB_PRODUCT, "HID Config") +#define USBD_HID_INTERFACE_HS_STRING CONCATS(USB_PRODUCT, "HID Interface") +#define USBD_HID_CONFIGURATION_FS_STRING CONCATS(USB_PRODUCT, "HID Config") +#define USBD_HID_INTERFACE_FS_STRING CONCATS(USB_PRODUCT, "HID Interface") /* Private macro -------------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/