Age | Commit message (Collapse) | Author |
|
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)
|
|
Preserve values of configuration bits MPCMn and U2Xn.
Avoid setting other read-only bits for datasheet conformance.
See #3745
|
|
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)
|
|
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()
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
24, 44 and 84
|
|
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.
|
|
see https://github.com/arduino/Arduino/pull/5789#discussion_r118007759
|
|
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.
|
|
If available() is in the base Stream class, then availableForWrite() should be in the base Print class
|
|
|
|
Interface Association Descriptor" and "USB Interface Association Descriptor Device Class Code and Use Model"
|
|
See #5732 #4864 #4138 #3946
|
|
This reverts commit 817d700a7503b269f986075cad637ce56c657e37.
|
|
Fix #4784
Close #4791
|
|
|
|
Change double quotes to single quotes
|
|
Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com>
|
|
- "." 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>
|
|
|
|
`toFloat` internally converts into double and then truncates into a
float, so why not add a method to return the double?
|
|
Add all analog references supported by the ATtinyX5 series
|
|
|
|
I was compiling with -Werror and this little error popped up
|
|
|
|
[AVR][USB] Configurable USB_VERSION value via define
|
|
Send an USB remote wakeup if data need to be written
|
|
|
|
Speed and size improvement in Print::printFloat()
|
|
Add getTimeout accessor method.
|
|
https://github.com/sandeepmistry/Arduino
|
|
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.
|
|
|
|
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
|
|
|
|
Subtract one from USB_EP_SIZE in USB_SendSpace
|
|
|
|
|
|
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
|
|
|
|
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.
|
|
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 );
```
|
|
This avoids dealing with ZLP’s in USB_Send, because the max packet size
will be EP size - 1.
|
|
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)
|
|
|
|
Avoid using the overload of print() for signed integer since a negative value is not allowed here.
This results in a smaller (unless print(int) is used somewhere else in the program) and faster code because the overload for unsigned integer is simpler.
|
|
|