Skip to content

CDC implementation without any timers #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 32 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
fa1c635
[USB] Update STM32 USB Device library to v2.5.1
fpistm Nov 26, 2018
5d6e8a2
[USB] Update STM32 USB Device library to v3.3.1
fpistm Nov 26, 2018
74794c4
Update License
fpistm Nov 26, 2018
b602d3b
[USB] Generic Device config
fpistm Nov 27, 2018
480bfca
[USB] Generic Device descriptor
fpistm Nov 27, 2018
b1e1ae1
[USB] Update usbd_hid_composite
fpistm Nov 28, 2018
d225803
[USB] Introduce USB HS
fpistm Nov 29, 2018
3d96e35
[USB] Clean up useless pid/vid
fpistm Nov 27, 2018
0b691a6
[USB] Clean up devices interface
fpistm Nov 28, 2018
5684548
[USB] Update menu
fpistm Nov 30, 2018
d4814fb
[USB] Clean up platform.txt
fpistm Nov 27, 2018
c4858f1
[USB] Sort source file
fpistm Dec 3, 2018
358dfdd
[USB] Clean up switch
fpistm Dec 3, 2018
d9fbf6c
[USB] Allow user customization
fpistm Dec 3, 2018
5f7005b
[USB] HAL PCD management
fpistm Dec 3, 2018
00269bb
[USB] Fix across series
fpistm Dec 3, 2018
caf17a9
[USB] Update PeripheralPins.c and PinNamesVar.h
fpistm Dec 9, 2018
c32d954
[USB] Use pin map for GPIO configuration
fpistm Dec 7, 2018
8a6858f
[USB] Add CDC Class
fpistm Dec 10, 2018
ab52564
[USB] Add CDC to descriptor
fpistm Dec 11, 2018
84ba7f1
[USB] Update menu and path for CDC
fpistm Dec 11, 2018
fb22095
[USB] Add CDC to USBD interface
fpistm Dec 11, 2018
12917f9
[USB] CDC interface
fpistm Dec 12, 2018
a5c8ac0
[USB] Add USBSerial class
fpistm Dec 12, 2018
b9b3ae4
[USB] usbd_interface_init() weak
fpistm Dec 12, 2018
f05454e
Fix comparison if Serial is not of HardwareSerial type
fpistm Dec 12, 2018
825433b
Add fixes for CDC library
hasenbanck Dec 12, 2018
02ada27
[USB CDC] Add proposed speed improvements
hasenbanck Dec 12, 2018
274375d
[USB] Update Generic F4
fpistm Dec 20, 2018
880c1c0
[USB] Update TIM definition
fpistm Dec 20, 2018
e549372
CDC implementation without any timers and with reducted count of memo…
makarenya Dec 27, 2018
860c6e8
To pass build test
makarenya Dec 27, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 6 additions & 12 deletions License.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Note: most license information is available on top of each source file
* system/Drivers/ subfolders include the STMicroelectronics HAL Drivers and CMSIS
ST device.

[MCD-ST Liberty SW License](#mcd-st-liberty-sw-license) is used for:
[Ultimate Liberty License](#Ultimate-Liberty-License) is used for:
* system/Middlewares/STM32_USB_*_Library/ folders

[Apache License](#apache-license) is used for:
Expand Down Expand Up @@ -558,18 +558,12 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-------------------------------------------------------------------------------
## MCD-ST Liberty SW License
## Ultimate Liberty License

Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); You may
not use this package except in compliance with the License. You may obtain a
copy of the License at:

http://www.st.com/software_license_agreement_liberty_v2

Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.
This software component is licensed by ST under Ultimate Liberty license
SLA0044, the "License"; You may not use this file except in compliance with
the License. You may obtain a copy of the License at:
http://www.st.com/SLA0044

-------------------------------------------------------------------------------
## Apache License
Expand Down
131 changes: 72 additions & 59 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
menu.pnum=Board part number

menu.xserial=Serial interface
menu.usb=USB interface
menu.usb=USB interface (if available)

menu.opt=Optimize
menu.rtlib=C Runtime Library
Expand All @@ -17,10 +17,6 @@ menu.ram=RAM Size
Nucleo_144.name=Nucleo-144

Nucleo_144.build.vid=0x0483
Nucleo_144.build.pid=0x5711
Nucleo_144.vid.0=0x0483
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.xSerial}
Expand Down Expand Up @@ -126,10 +122,6 @@ Nucleo_144.menu.upload_method.STLink.upload.tool=stlink_upload
Nucleo_64.name=Nucleo-64

Nucleo_64.build.vid=0x0483
Nucleo_64.build.pid=0x5711
Nucleo_64.vid.0=0x0483
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.xSerial}
Expand Down Expand Up @@ -305,10 +297,6 @@ Nucleo_64.menu.upload_method.STLink.upload.tool=stlink_upload
Nucleo_32.name=Nucleo-32

Nucleo_32.build.vid=0x0483
Nucleo_32.build.pid=0x5711
Nucleo_32.vid.0=0x0483
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.xSerial}
Expand Down Expand Up @@ -367,10 +355,6 @@ Nucleo_32.menu.upload_method.STLink.upload.tool=stlink_upload
Disco.name=Discovery

Disco.build.vid=0x0483
Disco.build.pid=0x5711
Disco.vid.0=0x0483
Disco.pid.0=0x5711

Disco.build.core=arduino
Disco.build.board=Disco
Disco.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
Expand Down Expand Up @@ -500,10 +484,6 @@ GenF0.menu.upload_method.serialMethod.upload.tool=serial_upload
GenF103.name=Generic STM32F103 series

GenF103.build.vid=0x1EAF
GenF103.build.pid=0x0004
GenF103.vid.0=0x1EAF
GenF103.pid.0=0x0004

GenF103.build.core=arduino
GenF103.build.board=GenF103
GenF103.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
Expand Down Expand Up @@ -544,11 +524,7 @@ GenF103.menu.upload_method.bmpMethod.upload.tool=bmp_upload

GenF4.name=Generic STM32F4 series

GenF4.build.vid=0x1EAF
GenF4.build.pid=0x0004
GenF4.vid.0=0x1EAF
GenF4.pid.0=0x0004

GenF4.build.vid=0x0483
GenF4.build.core=arduino
GenF4.build.board=GenF4
GenF4.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
Expand Down Expand Up @@ -597,10 +573,6 @@ GenF4.menu.upload_method.bmpMethod.upload.tool=bmp_upload
Maple.name=Maple series

Maple.build.vid=0x1EAF
Maple.build.pid=0x0004
Maple.vid.0=0x1EAF
Maple.pid.0=0x0004

Maple.build.core=arduino
Maple.build.board=Maple
Maple.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
Expand Down Expand Up @@ -632,10 +604,6 @@ Maple.menu.upload_method.serialMethod.upload.tool=serial_upload
RAK.name=RAKWireless

RAK.build.vid=0x0483
RAK.build.pid=0x5711
RAK.vid.0=0x0483
RAK.pid.0=0x5711

RAK.build.core=arduino
RAK.build.board=RAK
RAK.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
Expand Down Expand Up @@ -674,10 +642,6 @@ RAK.menu.upload_method.STLink.upload.tool=stlink_upload
3dprinter.name=3D printer boards

3dprinter.build.vid=0x0483
3dprinter.build.pid=0x5711
3dprinter.vid.0=0x0483
3dprinter.pid.0=0x5711

3dprinter.build.core=arduino
3dprinter.build.board=3dprinter
3dprinter.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
Expand Down Expand Up @@ -707,11 +671,6 @@ RAK.menu.upload_method.STLink.upload.tool=stlink_upload
3dprinter.menu.pnum.REMRAM_V1.build.variant=REMRAM_V1
3dprinter.menu.pnum.REMRAM_V1.build.cmsis_lib_gcc=arm_cortexM7l_math

# Virtual COM port
#3dprinter.menu.usb.none=None
#3dprinter.menu.usb.CDC=CDC
#3dprinter.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS

# Upload menu
3dprinter.menu.upload_method.STLinkMethod=STLink
3dprinter.menu.upload_method.STLinkMethod.upload.protocol=STLink
Expand Down Expand Up @@ -785,28 +744,82 @@ RAK.menu.xserial.disabled.build.xSerial=

# USB connectivity
Nucleo_144.menu.usb.none=None
Nucleo_144.menu.usb.HID=HID keyboard and mouse support (if available)
Nucleo_144.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
#Nucleo_144.menu.usb.CDC=CDC (if available)
#Nucleo_144.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS
Nucleo_144.menu.usb.none=None
Nucleo_144.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
Nucleo_144.menu.usb.HIDFS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Nucleo_144.menu.usb.HIDHS=HID keyboard and mouse support High Speed
Nucleo_144.menu.usb.HIDHS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE -DUSE_USB_HS
Nucleo_144.menu.usb.CDCFS=CDC Full Speed
Nucleo_144.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Nucleo_144.menu.usb.CDCHS=CDC High Speed
Nucleo_144.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS

Nucleo_64.menu.usb.none=None
Nucleo_64.menu.usb.HID=HID keyboard and mouse support (if available)
Nucleo_64.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
#Nucleo_64.menu.usb.CDC=CDC (if available)
#Nucleo_64.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS
Nucleo_64.menu.usb.none=None
Nucleo_64.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
Nucleo_64.menu.usb.HIDFS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Nucleo_64.menu.usb.HIDHS=HID keyboard and mouse support High Speed
Nucleo_64.menu.usb.HIDHS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE -DUSE_USB_HS
Nucleo_64.menu.usb.CDCFS=CDC Full Speed
Nucleo_64.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Nucleo_64.menu.usb.CDCHS=CDC High Speed
Nucleo_64.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS

Nucleo_32.menu.usb.none=None
Nucleo_32.menu.usb.HID=HID keyboard and mouse support (if available)
Nucleo_32.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
#Nucleo_32.menu.usb.CDC=CDC (if available)
#Nucleo_32.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS
Nucleo_32.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
Nucleo_32.menu.usb.HIDFS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Nucleo_32.menu.usb.HIDHS=HID keyboard and mouse support High Speed
Nucleo_32.menu.usb.HIDHS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE -DUSE_USB_HS
Nucleo_32.menu.usb.CDCFS=CDC Full Speed
Nucleo_32.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Nucleo_32.menu.usb.CDCHS=CDC High Speed
Nucleo_32.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS

Disco.menu.usb.none=None
Disco.menu.usb.HID=HID keyboard and mouse support (if available)
Disco.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
#Disco.menu.usb.CDC=CDC (if available)
#Disco.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS
Disco.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
Disco.menu.usb.HIDFS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Disco.menu.usb.HIDHS=HID keyboard and mouse support High Speed
Disco.menu.usb.HIDHS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE -DUSE_USB_HS
Disco.menu.usb.CDCFS=CDC Full Speed
Disco.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Disco.menu.usb.CDCHS=CDC High Speed
Disco.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS

GenF103.menu.usb.none=None
GenF103.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
GenF103.menu.usb.HIDFS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenF103.menu.usb.HIDHS=HID keyboard and mouse support High Speed
GenF103.menu.usb.HIDHS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE -DUSE_USB_HS
GenF103.menu.usb.CDCFS=CDC Full Speed
GenF103.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenF103.menu.usb.CDCHS=CDC High Speed
GenF103.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS

GenF4.menu.usb.none=None
GenF4.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
GenF4.menu.usb.HIDFS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
GenF4.menu.usb.HIDHS=HID keyboard and mouse support High Speed
GenF4.menu.usb.HIDHS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE -DUSE_USB_HS
GenF4.menu.usb.CDCFS=CDC Full Speed
GenF4.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
GenF4.menu.usb.CDCHS=CDC High Speed
GenF4.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS

Maple.menu.usb.none=None
Maple.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
Maple.menu.usb.HIDFS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
Maple.menu.usb.HIDHS=HID keyboard and mouse support High Speed
Maple.menu.usb.HIDHS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE -DUSE_USB_HS
Maple.menu.usb.CDCFS=CDC Full Speed
Maple.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
Maple.menu.usb.CDCHS=CDC High Speed
Maple.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS

3dprinter.menu.usb.none=None
3dprinter.menu.usb.CDCFS=CDC Full Speed
3dprinter.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
3dprinter.menu.usb.CDCHS=CDC High Speed
3dprinter.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS

# Optimizations
Nucleo_144.menu.opt.osstd=Smallest (-Os default)
Expand Down
2 changes: 1 addition & 1 deletion cores/arduino/HardwareSerial.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ HardwareSerial::HardwareSerial(void* peripheral)
// If Serial is defined in variant set
// the Rx/Tx pins for com port if defined
#if defined(Serial) && defined(PIN_SERIAL_RX) && defined(PIN_SERIAL_TX)
if (this == &Serial) {
if ((void*)this == (void*)&Serial) {
setRx(PIN_SERIAL_RX);
setTx(PIN_SERIAL_TX);
} else
Expand Down
Loading