Commit Graph

622 Commits

Author SHA1 Message Date
NicoHood b2e48cd627 Small return value error check correction 2015-10-07 12:39:18 +02:00
NicoHood 9196eaed87 Removed not needed public statement for root node 2015-10-03 07:56:48 +02:00
Martino Facchin a6c4a6395e [PUSB] Fix static initialization order fiasco
For details see:
https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use
2015-10-02 11:59:24 +02:00
Cristian Maglie a185073969 [HID] removed HIDDescriptor field
The field is now built on-the-fly on the stack and sent over USB.
This change increase Flash usage and decrease SRAM usage:

before: 6114 / 241
after:  6152 / 216 (removed HIDDescriptor field)

delta:   +38 / -25

SRAM is a much more scarse resource and this change free up to
about 10% of the "base" usage.
2015-10-02 11:59:24 +02:00
Cristian Maglie f9e6ef1913 [HID] Code cleanup (no semantic changes) 2015-10-02 11:59:23 +02:00
Cristian Maglie 9c93e1d446 [HID] removed unused modules_count field 2015-10-02 11:59:23 +02:00
Cristian Maglie efe6bc0b7b [PUSB] Fixed checks on return values 2015-10-02 11:59:23 +02:00
Cristian Maglie 631e056806 [USB] Fixed some compiler warnings 2015-10-02 11:59:23 +02:00
Cristian Maglie 3cce436602 [PUSB] Fixed the correct number of endpoints 2015-10-02 11:59:23 +02:00
Cristian Maglie 4d6ab7431b [PUSB] Fixed check for available endpoints
The check for available slot in PluggableUSB is done on the endpoint
and not on the number of plugged modules.

The modulesCount field is no longer useful and it has been removed.
2015-10-02 11:59:23 +02:00
Cristian Maglie c5fd3853e6 [PUSB] No more static fields in PluggableUSB class 2015-10-02 11:59:23 +02:00
Cristian Maglie 58b3755853 [PUSB] epType array is now part of HID class 2015-10-02 11:59:23 +02:00
Cristian Maglie 1e7f1fa35e [HID] Removed static fields in HID class
There is still the epType[] array to be handled in some way.
2015-10-02 11:59:23 +02:00
Cristian Maglie a044f89f01 [PUSB] The latest fields are now set via constructor 2015-10-02 11:59:23 +02:00
Cristian Maglie 93e7f0b91b [PUSB] callbacks are now pure virtual methods
This change allows the compiler to handle callbacks resolution.

Callbacks now must be implemented on the class that extends
PUSBListNode and this is forced by compiler by means of pure
virtual methods.

Also the calls to HID.interface() and HID.endpoint() can now
be simplified to interface() and endpoint() respectively since
the methods are no more static.
2015-10-02 11:59:23 +02:00
Cristian Maglie ac0847f257 [PUSB] Moved static members inside HID_ class
This commit prepares for the next refactoring
2015-10-02 11:59:22 +02:00
Cristian Maglie 4245515325 [PUSB] replaced u8 with uint8_t 2015-10-02 11:59:22 +02:00
Cristian Maglie 6d4cbd0ee5 [PUSB] Selected interface and endpoint are now part of PUSBListNode
The method

   int8_t PluggableUSB::addFunction(PUSBListNode *, uint8_t *)

has been changed to

   bool PluggableUSB::plug(PUSBListNode *node)

since both EP and Interfaces are now saved directly into node
2015-10-02 11:59:22 +02:00
Cristian Maglie 6dbfff69e2 [HID] Now HID extends directly PluggableUSBListNode
This avoid duplicate instatiation of callback and save a
considerable amount of flash.
2015-10-02 11:59:22 +02:00
Cristian Maglie 9b4c249090 [PUSB] Global functions PUSB_* are now methods of PluggableUSB class 2015-10-02 11:59:22 +02:00
Cristian Maglie c25a5eefc7 [PUSB] PUSBCallback struct has been merged into PUSBListNode
This slightly simplifies PluggableUSB API.
2015-10-02 11:59:22 +02:00
Arturo Guadalupi 88d546d92a Added LED_BUILTIN to GEMMA
as asked in #3907
2015-10-01 17:09:59 +02:00
Nico 219c9ac945 Removed not used PUSB_Begin() 2015-09-29 17:02:07 +02:00
Cristian Maglie 0034e4b5a3 [HID] Added missing return in HID.begin() 2015-09-28 17:05:36 +02:00
Cristian Maglie 9baff248c4 [HID] Removed unused PUSBReturn structure 2015-09-28 17:05:35 +02:00
Cristian Maglie 7287020aa0 [HID] Changed 'u8' to 'uint8_t' in definitions 2015-09-28 17:05:35 +02:00
Nico e4a5f61c53 Removed not needed Timer warning
Timer is declared above, so nothing is missing here.
2015-09-28 16:30:40 +02:00
Nico 7410817148 Removed Timer warnings when Timer 2 is not present 2015-09-28 16:30:40 +02:00
Nico ab06fbcbf4 Remove Compiler Warning in Tone.cpp 2015-09-28 16:30:39 +02:00
Nico a9005c7627 Fix compiler warning in CDC.cpp 2015-09-28 16:30:39 +02:00
Nico 021c79b372 Fix compiler warnings in USBCore.cpp 2015-09-28 16:30:39 +02:00
Cristian Maglie 1a1419577c [HID] added 'const' qualifier in HID initialization
See https://github.com/arduino/Arduino/pull/3840#discussion_r40438845
2015-09-28 13:32:01 +02:00
Cristian Maglie e22c0bb22a Merge branch 'pluggable_hid_impr' of https://github.com/cmaglie/Arduino 2015-09-28 12:06:35 +02:00
Arturo Guadalupi 4c3de5372d Added Arduino Zero exclusion to README 2015-09-28 11:29:18 +02:00
Martino Facchin a68800a9dc Merge pull request #3864 from facchinm/pulseInLongOVF
fix pulseInLong considering overflow
2015-09-25 16:05:35 +02:00
Cristian Maglie e160f67fdf Fixed another regression in IPAddress.h
If the includer tries to inlcude IPAddress.h without first including
WString.h the build will fail.
2015-09-24 15:52:32 +02:00
Federico Fissore 53d9411413 {build.path}/{archive_file} is now {archive_file_path} in recipe.ar.pattern 2015-09-24 11:28:26 +02:00
Cristian Maglie 337e400311 HID: merged HID_Descriptor into HIDDescriptorListNode
This simplifies the object model and produce a small gain in code
size and performance.
2015-09-22 16:51:30 +02:00
Cristian Maglie bec50cb3b9 HID: Renamed fields in HIDDescriptorListNode and HID_Descriptor
In particular HIDDescriptorListNode.cb has been renamed to
HIDDescriptorListNode.descriptor because it contains decriptor data
and not callbacks.

Moreover the HID_Descriptor.descriptor field has been renamed
to HID_Descriptor.data so the structure has now two fields length
and data.

   typedef struct __attribute__((packed)) {
     uint16_t length;
     const void* data;
   } HID_Descriptor;

   class HIDDescriptorListNode {
   public:
     HIDDescriptorListNode *next = NULL;
     const HID_Descriptor *descriptor;
     HIDDescriptorListNode(const HID_Descriptor *d) : descriptor(d) { }
   };

This imply a change in the use of the node from:

  node->cb->lenght
  node->cd->descriptor

to

  node->descriptor->length
  node->descriptor->data
2015-09-22 16:49:14 +02:00
Arturo Guadalupi dbcf657245 Modified reference to Leonardo only in the examples
According to #3786 removed the reference to Leonardo only in while(!Serial) of the examples.
Changed in in "wait for serial port to connect. Needed for native USB port only"
2015-09-21 14:58:58 +02:00
Cristian Maglie e3d0628765 Merge branch 'patch-7' of https://github.com/NicoHood/Arduino 2015-09-21 12:03:26 +02:00
Martino Facchin 3d8b58a72e fix pulseInLong considering overflow
fixes #3830
2015-09-21 11:59:20 +02:00
Martino Facchin dc16e5bd70 Merge pull request #3825 from NicoHood/patch-6
Remove Raw HID definitions at wrong place
2015-09-21 10:31:53 +02:00
Martino Facchin 2d797cc1de pulseInLong: fix incorrect timeout handling 2015-09-21 10:24:48 +02:00
Nico 3f854e723d Fix CDC Serial buffer size determination 2015-09-20 11:08:49 +02:00
Nico 6c0439d1c0 Fix HW Serial buffer size determination 2015-09-20 11:07:19 +02:00
Nico c37a3c9d50 Remove Raw HID definitions at wrong place 2015-09-20 11:04:42 +02:00
Federico Fissore ad005d3aa3 Updating arduino-builder to 1.0.0-beta8 2015-09-18 13:32:27 +02:00
Cristian Maglie cf77bfa352 Merge branch 'ethernet-dns-fix' of https://github.com/cmaglie/Arduino 2015-09-18 11:30:45 +02:00
Cristian Maglie 722f30cfce Fixed wrong category in EEPROM
See #3812
2015-09-18 11:23:11 +02:00