aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino
AgeCommit message (Collapse)Author
2018-08-18Add placement new operatorPharap
2017-12-18Fix MCUs without MPCM0 registerMartino Facchin
2017-11-13Fix flush hanging issueJohn Holman
Make write to UDR and clearing of TXC bit in flush() atomic to avoid race condition. Fixes #3745 (second different issue introduced later but discussed in the same issue)
2017-11-13Improve how TXCn bit is cleared in USCRnA registerJohn Holman
Preserve values of configuration bits MPCMn and U2Xn. Avoid setting other read-only bits for datasheet conformance. See #3745
2017-11-13Prevent buffer retransmission when transmit buffer is emptyJohn Holman
Moving the head buffer pointer and setting interrupt flag is now atomic in write(). Previously an intervening ISR could empty the buffer before the second ISR is triggered causing retransmission. Fixes: #3745 (original issue only)
2017-11-13Create macro to guard critical sections for large transmit buffersJohn Holman
New macro TX_BUFFER_ATOMIC makes the following code block atomic only if the transmit buffer is larger than 256 bytes. SREG is restored on completion. The macro is then used to simplify code for availableForWrite()
2017-11-13Always read key to check for new LUFA bootloaderScott Allen
Instead of checking for the NEW_LUFA_SIGNATURE once in program memory and then setting a flag which is used for further checks, a function is used that always checks program memory directly. If a flag is used, there's a slight chance that its location in RAM could fall on MAGIC_KEY_POS. In this case, an aborted USB auto-reset sequence may fail.
2017-11-13Don't use line coding to trigger USB auto-resetScott Allen
An auto-reset invoked using USB CDC is triggered by the port closing (when set to 1200 baud). Closing of the port is indicated by DTR going inactive. There is no need to have auto-reset invoked by a CDC_SET_LINE_CODING command. Only the CDC_SET_CONTROL_LINE_STATE command, which indicates a change in the state of DTR, should be used.
2017-11-13Save/restore the watchdog during USB auto-resetScott Allen
The state of the watchdog timer is saved during a USB auto-reset and then restored if the reset is aborted, in case the sketch is using the watchdog.
2017-11-13Fix save/restore of magic key location during resetScott Allen
In the USB CDC code to invoke an auto-reset, the magic key location could be restored before it had actually been saved. The sketch would then have a corrupted value at this location. This fix prevents the value from being restored if it hasn't previously been saved.
2017-11-13Create timer0 overflow interrupt service routine for all ATtinies not just ↵Torben Nielsen
24, 44 and 84
2017-07-07Update comments to reflect Stream functions changed from private to protectedper1234
These functions were changed from private to protected in https://github.com/arduino/Arduino/commit/99f2a2755349784835130147e46cb61659b85893 but the comments were not updated at that time. In conjunction with equivalent pull requests to Arduino SAM Boards and Arduino SAMD Boards, solves https://github.com/arduino/Arduino/issues/6146.
2017-05-23Removed unneeded include in Print.hCristian Maglie
see https://github.com/arduino/Arduino/pull/5789#discussion_r118007759
2017-05-23Move the flush method from Stream to PrintMatthijs Kooijman
This method originally flushed pending input bytes, which makes sense in Stream. At some point it was changed to flush output bytes instead, but it was never moved to Print to reflect this. Since Stream inherits from Print, this should not really affect any users of the Stream or Print classes. However to prevent problems with existing implementations of the Print class that do not provide a flush() implementation, a default implementation is provided. We should probably remove this at some point in the future, though.
2017-05-16Add Print::availableForWriteEric Wieser
If available() is in the base Stream class, then availableForWrite() should be in the base Print class
2017-03-20Fixed warning about unused variableCristian Maglie
2017-03-16use IAD Descriptor for device descriptor per the definition in "USB 2.0 ECN ↵liu nick
Interface Association Descriptor" and "USB Interface Association Descriptor Device Class Code and Use Model"
2017-03-16[AVR] USB send ZLP when neededCristian Maglie
See #5732 #4864 #4138 #3946
2017-03-16Revert "Subtract one from USB_EP_SIZE in USB_SendSpace"Cristian Maglie
This reverts commit 817d700a7503b269f986075cad637ce56c657e37.
2017-03-08AVR: Prevent warnings if BIN is previously definedCristian Maglie
Fix #4784 Close #4791
2017-02-08Add virtual beginMulticast(...) stub to UDP classSandeep Mistry
2017-01-09Merge pull request #5815 from roncapat/masterMartino Facchin
Change double quotes to single quotes
2017-01-08Remove old TODOs for non-standard ipv4 format supportPatrick Roncagliolo
Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com>
2017-01-07Change double quotes to single quotesPatrick Roncagliolo
- "." is a string literal, and so is treated as the char '.' plus the null char '\0'. - Single quotes reduces the necessary memory for this literal to only one char instead. A string literal as the one actually present may require the use of the method "write(const char *str)", so there could be also a performance overhead. - Another reason to change quotes style is for consistency with line 235. Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com>
2016-09-12Spaces to tabIván Pérez
2016-09-12WString: add `toDouble`Iván Pérez
`toFloat` internally converts into double and then truncates into a float, so why not add a method to return the double?
2016-09-08Merge pull request #5300 from mischnic/attiny_anlReferenceSandeep Mistry
Add all analog references supported by the ATtinyX5 series
2016-09-07Requested changes to not change code for non ATtinyX5sNiklas Mischkulnig
2016-08-28remove extra semicolonKyle Chisholm
I was compiling with -Werror and this little error popped up
2016-08-27Add all analog references supported by the ATtinyX5 seriesNiklas Mischkulnig
2016-07-22Merge pull request #5128 from facchinm/configurable_usb210Martino Facchin
[AVR][USB] Configurable USB_VERSION value via define
2016-07-21Merge pull request #5135 from facchinm/usbsuspend_resumeMartino Facchin
Send an USB remote wakeup if data need to be written
2016-07-18Cast to "unsigned int" instead of just "unsigned" for consistencySandeep Mistry
2016-07-18Merge pull request #4667 from bblanchon/patch-1Sandeep Mistry
Speed and size improvement in Print::printFloat()
2016-07-18Merge pull request #4718 from mattb5906/new-feature/stream-timeout-get-4680Sandeep Mistry
Add getTimeout accessor method.
2016-07-18Merge branch 'invalidated-string-move' of ↵Cristian Maglie
https://github.com/sandeepmistry/Arduino
2016-07-14Send an USB remote wakeup if data need to be writtenMartino Facchin
On Linux, setting autosuspend_delay_ms to N and control to auto allows the host pc to suspend the peripheral. Some Linux distro (Ubuntu, Mint) apply this behaviour by default. If the sketch's prints where less frequent than N milliseconds the sketch prints would never arrive. This patch allows sending a remote wakeup event to unsuspend the peripheral and allow the serial prints to be received.
2016-07-14[AVR][USB] fix IRQ flags clearingMartino Facchin
2016-07-13configurable USB_VERSION string via defineMartino Facchin
to allow WebUSB development, provide a way to change the USB_VERSION reported using an additional core. The additional (webUSB) core will survive IDE and AVR core updates
2016-07-12Make String::move of an invalidated String result in an invalidated StringSandeep Mistry
2016-07-11Merge pull request #4864 from sandeepmistry/avr-usb-txArturo Guadalupi
Subtract one from USB_EP_SIZE in USB_SendSpace
2016-06-28WString.h: allow modifying the string while iteratingIvan-Perez
2016-06-28WString.h: Add const qualifier to `begin` and `end` functionsIvan-Perez
2016-05-18Move Caterina_BL related defines into generic USBCore.hMartino Facchin
In an excess of confidence, these defines were added to Leonardo's variant.h 3rd party boards sometimes avoid inheriting this variant but they still define USBCON, thus breaking the build
2016-04-20Removed extra whitespaces in WString.hCristian Maglie
2016-04-20Removed C++11 dependency for `begin()` and `end()`Christopher Andrews
As I was not able to base the return types of `begin()` & `end()` off the c_str() function, I have changed the source so the features can be used by C++98 code, while still allowing ranged loops in C++11.
2016-04-20Updated String library to use C++11 iterators.Christopher Andrews
This will allow using the String library in a ranged for loop: ```C++ String s = "Hi, this is a test"; for( char c : s ) Serial.print( c ); ```
2016-04-14Subtract one from USB_EP_SIZE in USB_SendSpaceSandeep Mistry
This avoids dealing with ZLP’s in USB_Send, because the max packet size will be EP size - 1.
2016-04-06[AVR] Discover newer bootloader at runtimeMartino Facchin
Replaces #4280, only checks for the bootloader once Tested with Hoodloader2, should work with every LUFA-derived bootloader released after 2014 (.apitable_signatures section must be placed at end of the flash) BootloaderAPITable.S : .global BootloaderAPI_Signatures BootloaderAPI_Signatures: .long BOOT_START_ADDR ; Start address of the bootloader .word 0xDF00 ; Signature for the CDC class bootloader .word 0xDCFB ; Signature for a LUFA class bootloader makefile: BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8)
2016-03-18Add getTimeout accessor method.mattb5906