Deploying to gh-pages from master @ d3584be431
🚀
parent
7c2f4122cc
commit
d2f615ba62
@ -1,25 +0,0 @@ |
|||||||
# group `asfdoc_sam0_usb_group` {#group__asfdoc__sam0__usb__group} |
|
||||||
|
|
||||||
The Universal Serial Bus (USB) module complies with the USB 2.1 specification. |
|
||||||
|
|
||||||
The following peripherals are used by this module: |
|
||||||
|
|
||||||
* USB (Universal Serial Bus) |
|
||||||
|
|
||||||
The following devices can use this module: |
|
||||||
|
|
||||||
* Atmel | SMART SAM D51 |
|
||||||
|
|
||||||
The USB module covers following mode: |
|
||||||
|
|
||||||
The USB module covers following speed: |
|
||||||
|
|
||||||
* USB Full Speed (12Mbit/s) |
|
||||||
|
|
||||||
USB support needs whole set of enumeration process, to make the device recognizable and usable. The USB driver is designed to interface to the USB Stack in Atmel Software Framework (ASF). |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
|
|
@ -1,571 +0,0 @@ |
|||||||
# group `group_sam0_utils` {#group__group__sam0__utils} |
|
||||||
|
|
||||||
Compiler abstraction layer and code utilities for Cortex-M0+ based Atmel SAM devices. This module provides various abstraction layers and utilities to make code compatible between different compilers. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`define `[`UNUSED`](#group__group__sam0__utils_1gada67c62b1c57e07efa04431bc40b9238) | Marking *v* as a unused parameter or value. |
|
||||||
`define `[`barrier`](#group__group__sam0__utils_1ga53290ac2df2384738b8769c76622f803) | Memory barrier. |
|
||||||
`define `[`COMPILER_PRAGMA`](#group__group__sam0__utils_1ga85a3ab5701281268521f109ed0078668) | Emit the compiler pragma *arg*. |
|
||||||
`define `[`COMPILER_PACK_SET`](#group__group__sam0__utils_1gae2c02ff865ca6538b4b1bddbf2a6876c) | Set maximum alignment for subsequent struct and union definitions to *alignment*. |
|
||||||
`define `[`COMPILER_PACK_RESET`](#group__group__sam0__utils_1ga38d28b622a4bc7b0f3fb2be2ef1e0086) | Set default alignment for subsequent struct and union definitions. |
|
||||||
`define `[`Assert`](#group__group__sam0__utils_1gaab1e54dcc40192f9704e8b252635450f) | This macro is used to test fatal errors. |
|
||||||
`define `[`Long_call`](#group__group__sam0__utils_1ga5b759626f343cc1af9159cc02b763837) | Calls the routine at address *addr*. |
|
||||||
`define `[`div_ceil`](#group__group__sam0__utils_1ga6d4ebd841bc96041a7f3a61e227c1fb2) | Calculate $ \left\lceil \frac{a}{b} \right\rceil $ using integer arithmetic. |
|
||||||
`define `[`FUNC_PTR`](#group__group__sam0__utils_1gacce64924b686dd08a83042b35d0d1480) | |
|
||||||
`define `[`unused`](#group__group__sam0__utils_1ga417dba7f63dde98dbebd6336d8af9d91) | Marking *v* as a unused parameter or value. |
|
||||||
`define `[`MSB`](#group__group__sam0__utils_1gabee1b74eceef5a0cf26efbf3ff87ccbf) | Most significant byte of *u16*. |
|
||||||
`define `[`LSB`](#group__group__sam0__utils_1gabd2fa7b756342ae251e3a7a66670c2fe) | Least significant byte of *u16*. |
|
||||||
`define `[`MSH`](#group__group__sam0__utils_1ga2e9046f49816ad27148660f5ba993696) | Most significant half-word of *u32*. |
|
||||||
`define `[`LSH`](#group__group__sam0__utils_1gae79954742b5a668ce83ab79ac9d9804b) | Least significant half-word of *u32*. |
|
||||||
`define `[`MSB0W`](#group__group__sam0__utils_1ga25110f05bdb5b5ea3fcb2854a1a07d7a) | Most significant byte of 1st rank of *u32*. |
|
||||||
`define `[`MSB1W`](#group__group__sam0__utils_1ga0f90ecd0b0f0e15608a95b8367b77ece) | Most significant byte of 2nd rank of *u32*. |
|
||||||
`define `[`MSB2W`](#group__group__sam0__utils_1ga0207e10a3c4bcca172463cd5e3ebd865) | Most significant byte of 3rd rank of *u32*. |
|
||||||
`define `[`MSB3W`](#group__group__sam0__utils_1gad6ab5ac6e3e95525d56d757c9718e352) | Most significant byte of 4th rank of *u32*. |
|
||||||
`define `[`LSB3W`](#group__group__sam0__utils_1ga04e75e548b33b9cc22699b4249ff6c64) | Least significant byte of 4th rank of *u32*. |
|
||||||
`define `[`LSB2W`](#group__group__sam0__utils_1gad8fda97f8caa00fcfa84f712ee7627d6) | Least significant byte of 3rd rank of *u32*. |
|
||||||
`define `[`LSB1W`](#group__group__sam0__utils_1ga84cbbcad1971cdb2987418e6ae6cb4ff) | Least significant byte of 2nd rank of *u32*. |
|
||||||
`define `[`LSB0W`](#group__group__sam0__utils_1ga2ca8582260a8ada6cdd457cf37ba37a7) | Least significant byte of 1st rank of *u32*. |
|
||||||
`define `[`MSW`](#group__group__sam0__utils_1gad71e5e84d2cec4387415a55f5c62b01b) | Most significant word of *u64*. |
|
||||||
`define `[`LSW`](#group__group__sam0__utils_1ga0633993fb1f2d96a56385f09beed7bc7) | Least significant word of *u64*. |
|
||||||
`define `[`MSH0`](#group__group__sam0__utils_1ga280d6a94884872f6a5be80c873e8adc1) | Most significant half-word of 1st rank of *u64*. |
|
||||||
`define `[`MSH1`](#group__group__sam0__utils_1ga43de4fac62f938ff4eb448a87522ec0e) | Most significant half-word of 2nd rank of *u64*. |
|
||||||
`define `[`MSH2`](#group__group__sam0__utils_1ga5d32ec744212194c8106c51b89a5dfe9) | Most significant half-word of 3rd rank of *u64*. |
|
||||||
`define `[`MSH3`](#group__group__sam0__utils_1gabb233f238b63c12d2ff361d9ddb3114b) | Most significant half-word of 4th rank of *u64*. |
|
||||||
`define `[`LSH3`](#group__group__sam0__utils_1ga1ec33d340ef17c91cb0530d00ccb0ea8) | Least significant half-word of 4th rank of *u64*. |
|
||||||
`define `[`LSH2`](#group__group__sam0__utils_1ga2efccfe683ebf7d89a972fbbdea2c26d) | Least significant half-word of 3rd rank of *u64*. |
|
||||||
`define `[`LSH1`](#group__group__sam0__utils_1gac593b0be4555d883b4297b45cffc4168) | Least significant half-word of 2nd rank of *u64*. |
|
||||||
`define `[`LSH0`](#group__group__sam0__utils_1ga3026b9288b45a9794fd3eb585cbe10bc) | Least significant half-word of 1st rank of *u64*. |
|
||||||
`define `[`MSB0D`](#group__group__sam0__utils_1ga5f24ecf381776ee415991a545a05e4c7) | Most significant byte of 1st rank of *u64*. |
|
||||||
`define `[`MSB1D`](#group__group__sam0__utils_1ga97a0ab6790df95cb4d8021d8850487f8) | Most significant byte of 2nd rank of *u64*. |
|
||||||
`define `[`MSB2D`](#group__group__sam0__utils_1gad4ceacba543e7b8617ca4bd075abb146) | Most significant byte of 3rd rank of *u64*. |
|
||||||
`define `[`MSB3D`](#group__group__sam0__utils_1gaf7972d3282ec9ecb97afa34e848ede2c) | Most significant byte of 4th rank of *u64*. |
|
||||||
`define `[`MSB4D`](#group__group__sam0__utils_1ga1c891624c33b13808633af8dbcaafa5f) | Most significant byte of 5th rank of *u64*. |
|
||||||
`define `[`MSB5D`](#group__group__sam0__utils_1ga5e61db58aaf5cbb3051240cdcb1b5147) | Most significant byte of 6th rank of *u64*. |
|
||||||
`define `[`MSB6D`](#group__group__sam0__utils_1gacb8062d046ca06f5c28c9a015997494b) | Most significant byte of 7th rank of *u64*. |
|
||||||
`define `[`MSB7D`](#group__group__sam0__utils_1ga0cbce69964fa2dd7bf05911d0b99b014) | Most significant byte of 8th rank of *u64*. |
|
||||||
`define `[`LSB7D`](#group__group__sam0__utils_1ga79fb849e13082fdd4adb02debbad7f1a) | Least significant byte of 8th rank of *u64*. |
|
||||||
`define `[`LSB6D`](#group__group__sam0__utils_1gab90afefaf3b5cb2507ab3c496d8f643c) | Least significant byte of 7th rank of *u64*. |
|
||||||
`define `[`LSB5D`](#group__group__sam0__utils_1gac379acb246797736332fa1b8ae481b34) | Least significant byte of 6th rank of *u64*. |
|
||||||
`define `[`LSB4D`](#group__group__sam0__utils_1gaab745f30b9b841f9ccd9ace0a5a1a9e5) | Least significant byte of 5th rank of *u64*. |
|
||||||
`define `[`LSB3D`](#group__group__sam0__utils_1ga99213c01b979c347950eba4277f0499a) | Least significant byte of 4th rank of *u64*. |
|
||||||
`define `[`LSB2D`](#group__group__sam0__utils_1gaba3bea07dcc4a37039b7effd4da03b9e) | Least significant byte of 3rd rank of *u64*. |
|
||||||
`define `[`LSB1D`](#group__group__sam0__utils_1ga42179f159b798116eb615102a549aa85) | Least significant byte of 2nd rank of *u64*. |
|
||||||
`define `[`LSB0D`](#group__group__sam0__utils_1ga2e20f5ef87ccf0ad44c1d49d6ffd80a3) | Least significant byte of 1st rank of *u64*. |
|
||||||
`define `[`LSB0`](#group__group__sam0__utils_1ga844ec34df36feb927dc92007af14674a) | Least significant byte of 1st rank of *u32*. |
|
||||||
`define `[`LSB1`](#group__group__sam0__utils_1ga2d1e45154b07481f0579ecc725e4edff) | Least significant byte of 2nd rank of *u32*. |
|
||||||
`define `[`LSB2`](#group__group__sam0__utils_1ga8967f5ae0174b01ce44c502ebd14035a) | Least significant byte of 3rd rank of *u32*. |
|
||||||
`define `[`LSB3`](#group__group__sam0__utils_1ga5d9ff393e7c8764112a1167db19b16b1) | Least significant byte of 4th rank of *u32*. |
|
||||||
`define `[`MSB3`](#group__group__sam0__utils_1gaeeb8918fc580ce01d45f71863eebff90) | Most significant byte of 4th rank of *u32*. |
|
||||||
`define `[`MSB2`](#group__group__sam0__utils_1ga8683254be29bcfe3cf2fa646890d3942) | Most significant byte of 3rd rank of *u32*. |
|
||||||
`define `[`MSB1`](#group__group__sam0__utils_1ga3facab9f8ebf70ad6e16038465e2bedc) | Most significant byte of 2nd rank of *u32*. |
|
||||||
`define `[`MSB0`](#group__group__sam0__utils_1gafb81783b8186acd7182a971048b0c6b3) | Most significant byte of 1st rank of *u32*. |
|
||||||
`define `[`FLASH_DECLARE`](#group__group__sam0__utils_1ga9b84ecc6b34a71f797ceb8b8f7b8d384) | |
|
||||||
`define `[`FLASH_EXTERN`](#group__group__sam0__utils_1gaaef0fd990bb5bd9cdf11334f7c689fd7) | |
|
||||||
`define `[`PGM_READ_BYTE`](#group__group__sam0__utils_1gafe9b83c73d4840986478ec67d3eb7718) | |
|
||||||
`define `[`PGM_READ_WORD`](#group__group__sam0__utils_1ga92576bffe51090dcb6d5c67e07b9eec7) | |
|
||||||
`define `[`MEMCPY_ENDIAN`](#group__group__sam0__utils_1ga85a7d71a016789b1766f9b27d0530347) | |
|
||||||
`define `[`PGM_READ_BLOCK`](#group__group__sam0__utils_1ga8900e4615b7d7143a6c38e2a39087538) | |
|
||||||
`define `[`CMD_ID_OCTET`](#group__group__sam0__utils_1gabf2b95fa77301377cdcf79eb615551db) | |
|
||||||
`define `[`CPU_ENDIAN_TO_LE16`](#group__group__sam0__utils_1ga7c15ca0f3159182efc4b80a00768c2c0) | |
|
||||||
`define `[`CPU_ENDIAN_TO_LE32`](#group__group__sam0__utils_1gaa2fd4bfb7af44220ce4205e2aa371017) | |
|
||||||
`define `[`CPU_ENDIAN_TO_LE64`](#group__group__sam0__utils_1ga6f1e86f452c8f327f9ca96cbf6a65c81) | |
|
||||||
`define `[`LE16_TO_CPU_ENDIAN`](#group__group__sam0__utils_1gaceb02fdef243c22d2559e260185fb579) | |
|
||||||
`define `[`LE32_TO_CPU_ENDIAN`](#group__group__sam0__utils_1ga2df63369ef525ba98832132ce5a43346) | |
|
||||||
`define `[`LE64_TO_CPU_ENDIAN`](#group__group__sam0__utils_1gab675071ce5a4644b205cdbc858417ccd) | |
|
||||||
`define `[`CLE16_TO_CPU_ENDIAN`](#group__group__sam0__utils_1ga4ac6e032d1ce0ae6d2e460da93ce8732) | |
|
||||||
`define `[`CLE32_TO_CPU_ENDIAN`](#group__group__sam0__utils_1ga3ff07a7496222efe8bc7d7b7b0342b0d) | |
|
||||||
`define `[`CLE64_TO_CPU_ENDIAN`](#group__group__sam0__utils_1gacbbba93256e2d892c748d56a42f00f9b) | |
|
||||||
`define `[`CCPU_ENDIAN_TO_LE16`](#group__group__sam0__utils_1ga5fd2d3ed2fc9234277b659b67d33bc64) | |
|
||||||
`define `[`CCPU_ENDIAN_TO_LE32`](#group__group__sam0__utils_1ga1e3290451e5c7b98175911c9219b5123) | |
|
||||||
`define `[`CCPU_ENDIAN_TO_LE64`](#group__group__sam0__utils_1ga00483bf27ea1e8a2143c6baf22b31f16) | |
|
||||||
`define `[`ADDR_COPY_DST_SRC_16`](#group__group__sam0__utils_1gac4609178e5c825e815f44fa123dcaaf7) | |
|
||||||
`define `[`ADDR_COPY_DST_SRC_64`](#group__group__sam0__utils_1ga0454afa80924c2183c8c672c043440cc) | |
|
||||||
`public inline static void `[`convert_64_bit_to_byte_array`](#group__group__sam0__utils_1gadca7cebb159c7ed180d3d07cccb74245)`(uint64_t value,uint8_t * data)` | Converts a 64-Bit value into a 8 Byte array. |
|
||||||
`public inline static void `[`convert_16_bit_to_byte_array`](#group__group__sam0__utils_1ga2de8d131d6afca8b368486f56c911e75)`(uint16_t value,uint8_t * data)` | Converts a 16-Bit value into a 2 Byte array. |
|
||||||
`public inline static void `[`convert_spec_16_bit_to_byte_array`](#group__group__sam0__utils_1gaa9724d81bfe44a06b0372d144cd98e36)`(uint16_t value,uint8_t * data)` | |
|
||||||
`public inline static void `[`convert_16_bit_to_byte_address`](#group__group__sam0__utils_1ga9634f2d7292e1209fe3b83254a66c450)`(uint16_t value,uint8_t * data)` | |
|
||||||
`public inline static uint16_t `[`convert_byte_array_to_16_bit`](#group__group__sam0__utils_1gad3726f56d0820acc7bae83993bd8897c)`(uint8_t * data)` | |
|
||||||
`public inline static uint32_t `[`convert_byte_array_to_32_bit`](#group__group__sam0__utils_1ga6e01ed4a4718b439d295b5124ede09e3)`(uint8_t * data)` | |
|
||||||
`public inline static uint64_t `[`convert_byte_array_to_64_bit`](#group__group__sam0__utils_1ga45ffdbdc2d7a6d1dbf91b2fe8d880347)`(uint8_t * data)` | Converts a 8 Byte array into a 64-Bit value. |
|
||||||
`struct `[`StructPtr`](#struct_struct_ptr) | Structure of pointers to 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
`struct `[`StructVPtr`](#struct_struct_v_ptr) | Structure of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
`struct `[`StructCPtr`](#struct_struct_c_ptr) | Structure of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
`struct `[`StructCVPtr`](#struct_struct_c_v_ptr) | Structure of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
`union `[`Union16`](#union_union16) | 16-bit union. |
|
||||||
`union `[`Union32`](#union_union32) | 32-bit union. |
|
||||||
`union `[`Union64`](#union_union64) | 64-bit union. |
|
||||||
`union `[`UnionPtr`](#union_union_ptr) | Union of pointers to 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
`union `[`UnionVPtr`](#union_union_v_ptr) | Union of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
`union `[`UnionCPtr`](#union_union_c_ptr) | Union of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
`union `[`UnionCVPtr`](#union_union_c_v_ptr) | Union of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `define `[`UNUSED`](#group__group__sam0__utils_1gada67c62b1c57e07efa04431bc40b9238) {#group__group__sam0__utils_1gada67c62b1c57e07efa04431bc40b9238} |
|
||||||
|
|
||||||
Marking *v* as a unused parameter or value. |
|
||||||
|
|
||||||
#### `define `[`barrier`](#group__group__sam0__utils_1ga53290ac2df2384738b8769c76622f803) {#group__group__sam0__utils_1ga53290ac2df2384738b8769c76622f803} |
|
||||||
|
|
||||||
Memory barrier. |
|
||||||
|
|
||||||
#### `define `[`COMPILER_PRAGMA`](#group__group__sam0__utils_1ga85a3ab5701281268521f109ed0078668) {#group__group__sam0__utils_1ga85a3ab5701281268521f109ed0078668} |
|
||||||
|
|
||||||
Emit the compiler pragma *arg*. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `arg` The pragma directive as it would appear after *#pragma* (i.e. not stringified). |
|
||||||
|
|
||||||
#### `define `[`COMPILER_PACK_SET`](#group__group__sam0__utils_1gae2c02ff865ca6538b4b1bddbf2a6876c) {#group__group__sam0__utils_1gae2c02ff865ca6538b4b1bddbf2a6876c} |
|
||||||
|
|
||||||
Set maximum alignment for subsequent struct and union definitions to *alignment*. |
|
||||||
|
|
||||||
#### `define `[`COMPILER_PACK_RESET`](#group__group__sam0__utils_1ga38d28b622a4bc7b0f3fb2be2ef1e0086) {#group__group__sam0__utils_1ga38d28b622a4bc7b0f3fb2be2ef1e0086} |
|
||||||
|
|
||||||
Set default alignment for subsequent struct and union definitions. |
|
||||||
|
|
||||||
#### `define `[`Assert`](#group__group__sam0__utils_1gaab1e54dcc40192f9704e8b252635450f) {#group__group__sam0__utils_1gaab1e54dcc40192f9704e8b252635450f} |
|
||||||
|
|
||||||
This macro is used to test fatal errors. |
|
||||||
|
|
||||||
The macro tests if the expression is false. If it is, a fatal error is detected and the application hangs up. If `TEST_SUITE_DEFINE_ASSERT_MACRO` is defined, a unit test version of the macro is used, to allow execution of further tests after a false expression. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `expr` Expression to evaluate and supposed to be nonzero. |
|
||||||
|
|
||||||
#### `define `[`Long_call`](#group__group__sam0__utils_1ga5b759626f343cc1af9159cc02b763837) {#group__group__sam0__utils_1ga5b759626f343cc1af9159cc02b763837} |
|
||||||
|
|
||||||
Calls the routine at address *addr*. |
|
||||||
|
|
||||||
It generates a long call opcode. |
|
||||||
|
|
||||||
For example, [Long_call(0x80000000)](.build/docs/internals_undefined.md#group__group__sam0__utils_1ga5b759626f343cc1af9159cc02b763837) generates a software reset on a UC3 if it is invoked from the CPU supervisor mode. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `addr` Address of the routine to call. |
|
||||||
|
|
||||||
It may be used as a long jump opcode in some special cases. |
|
||||||
|
|
||||||
#### `define `[`div_ceil`](#group__group__sam0__utils_1ga6d4ebd841bc96041a7f3a61e227c1fb2) {#group__group__sam0__utils_1ga6d4ebd841bc96041a7f3a61e227c1fb2} |
|
||||||
|
|
||||||
Calculate $ \left\lceil \frac{a}{b} \right\rceil $ using integer arithmetic. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `a` An integer |
|
||||||
|
|
||||||
* `b` Another integer |
|
||||||
|
|
||||||
#### Returns |
|
||||||
(*a* / *b*) rounded up to the nearest integer. |
|
||||||
|
|
||||||
#### `define `[`FUNC_PTR`](#group__group__sam0__utils_1gacce64924b686dd08a83042b35d0d1480) {#group__group__sam0__utils_1gacce64924b686dd08a83042b35d0d1480} |
|
||||||
|
|
||||||
#### `define `[`unused`](#group__group__sam0__utils_1ga417dba7f63dde98dbebd6336d8af9d91) {#group__group__sam0__utils_1ga417dba7f63dde98dbebd6336d8af9d91} |
|
||||||
|
|
||||||
Marking *v* as a unused parameter or value. |
|
||||||
|
|
||||||
#### `define `[`MSB`](#group__group__sam0__utils_1gabee1b74eceef5a0cf26efbf3ff87ccbf) {#group__group__sam0__utils_1gabee1b74eceef5a0cf26efbf3ff87ccbf} |
|
||||||
|
|
||||||
Most significant byte of *u16*. |
|
||||||
|
|
||||||
#### `define `[`LSB`](#group__group__sam0__utils_1gabd2fa7b756342ae251e3a7a66670c2fe) {#group__group__sam0__utils_1gabd2fa7b756342ae251e3a7a66670c2fe} |
|
||||||
|
|
||||||
Least significant byte of *u16*. |
|
||||||
|
|
||||||
#### `define `[`MSH`](#group__group__sam0__utils_1ga2e9046f49816ad27148660f5ba993696) {#group__group__sam0__utils_1ga2e9046f49816ad27148660f5ba993696} |
|
||||||
|
|
||||||
Most significant half-word of *u32*. |
|
||||||
|
|
||||||
#### `define `[`LSH`](#group__group__sam0__utils_1gae79954742b5a668ce83ab79ac9d9804b) {#group__group__sam0__utils_1gae79954742b5a668ce83ab79ac9d9804b} |
|
||||||
|
|
||||||
Least significant half-word of *u32*. |
|
||||||
|
|
||||||
#### `define `[`MSB0W`](#group__group__sam0__utils_1ga25110f05bdb5b5ea3fcb2854a1a07d7a) {#group__group__sam0__utils_1ga25110f05bdb5b5ea3fcb2854a1a07d7a} |
|
||||||
|
|
||||||
Most significant byte of 1st rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`MSB1W`](#group__group__sam0__utils_1ga0f90ecd0b0f0e15608a95b8367b77ece) {#group__group__sam0__utils_1ga0f90ecd0b0f0e15608a95b8367b77ece} |
|
||||||
|
|
||||||
Most significant byte of 2nd rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`MSB2W`](#group__group__sam0__utils_1ga0207e10a3c4bcca172463cd5e3ebd865) {#group__group__sam0__utils_1ga0207e10a3c4bcca172463cd5e3ebd865} |
|
||||||
|
|
||||||
Most significant byte of 3rd rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`MSB3W`](#group__group__sam0__utils_1gad6ab5ac6e3e95525d56d757c9718e352) {#group__group__sam0__utils_1gad6ab5ac6e3e95525d56d757c9718e352} |
|
||||||
|
|
||||||
Most significant byte of 4th rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`LSB3W`](#group__group__sam0__utils_1ga04e75e548b33b9cc22699b4249ff6c64) {#group__group__sam0__utils_1ga04e75e548b33b9cc22699b4249ff6c64} |
|
||||||
|
|
||||||
Least significant byte of 4th rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`LSB2W`](#group__group__sam0__utils_1gad8fda97f8caa00fcfa84f712ee7627d6) {#group__group__sam0__utils_1gad8fda97f8caa00fcfa84f712ee7627d6} |
|
||||||
|
|
||||||
Least significant byte of 3rd rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`LSB1W`](#group__group__sam0__utils_1ga84cbbcad1971cdb2987418e6ae6cb4ff) {#group__group__sam0__utils_1ga84cbbcad1971cdb2987418e6ae6cb4ff} |
|
||||||
|
|
||||||
Least significant byte of 2nd rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`LSB0W`](#group__group__sam0__utils_1ga2ca8582260a8ada6cdd457cf37ba37a7) {#group__group__sam0__utils_1ga2ca8582260a8ada6cdd457cf37ba37a7} |
|
||||||
|
|
||||||
Least significant byte of 1st rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`MSW`](#group__group__sam0__utils_1gad71e5e84d2cec4387415a55f5c62b01b) {#group__group__sam0__utils_1gad71e5e84d2cec4387415a55f5c62b01b} |
|
||||||
|
|
||||||
Most significant word of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSW`](#group__group__sam0__utils_1ga0633993fb1f2d96a56385f09beed7bc7) {#group__group__sam0__utils_1ga0633993fb1f2d96a56385f09beed7bc7} |
|
||||||
|
|
||||||
Least significant word of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSH0`](#group__group__sam0__utils_1ga280d6a94884872f6a5be80c873e8adc1) {#group__group__sam0__utils_1ga280d6a94884872f6a5be80c873e8adc1} |
|
||||||
|
|
||||||
Most significant half-word of 1st rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSH1`](#group__group__sam0__utils_1ga43de4fac62f938ff4eb448a87522ec0e) {#group__group__sam0__utils_1ga43de4fac62f938ff4eb448a87522ec0e} |
|
||||||
|
|
||||||
Most significant half-word of 2nd rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSH2`](#group__group__sam0__utils_1ga5d32ec744212194c8106c51b89a5dfe9) {#group__group__sam0__utils_1ga5d32ec744212194c8106c51b89a5dfe9} |
|
||||||
|
|
||||||
Most significant half-word of 3rd rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSH3`](#group__group__sam0__utils_1gabb233f238b63c12d2ff361d9ddb3114b) {#group__group__sam0__utils_1gabb233f238b63c12d2ff361d9ddb3114b} |
|
||||||
|
|
||||||
Most significant half-word of 4th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSH3`](#group__group__sam0__utils_1ga1ec33d340ef17c91cb0530d00ccb0ea8) {#group__group__sam0__utils_1ga1ec33d340ef17c91cb0530d00ccb0ea8} |
|
||||||
|
|
||||||
Least significant half-word of 4th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSH2`](#group__group__sam0__utils_1ga2efccfe683ebf7d89a972fbbdea2c26d) {#group__group__sam0__utils_1ga2efccfe683ebf7d89a972fbbdea2c26d} |
|
||||||
|
|
||||||
Least significant half-word of 3rd rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSH1`](#group__group__sam0__utils_1gac593b0be4555d883b4297b45cffc4168) {#group__group__sam0__utils_1gac593b0be4555d883b4297b45cffc4168} |
|
||||||
|
|
||||||
Least significant half-word of 2nd rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSH0`](#group__group__sam0__utils_1ga3026b9288b45a9794fd3eb585cbe10bc) {#group__group__sam0__utils_1ga3026b9288b45a9794fd3eb585cbe10bc} |
|
||||||
|
|
||||||
Least significant half-word of 1st rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSB0D`](#group__group__sam0__utils_1ga5f24ecf381776ee415991a545a05e4c7) {#group__group__sam0__utils_1ga5f24ecf381776ee415991a545a05e4c7} |
|
||||||
|
|
||||||
Most significant byte of 1st rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSB1D`](#group__group__sam0__utils_1ga97a0ab6790df95cb4d8021d8850487f8) {#group__group__sam0__utils_1ga97a0ab6790df95cb4d8021d8850487f8} |
|
||||||
|
|
||||||
Most significant byte of 2nd rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSB2D`](#group__group__sam0__utils_1gad4ceacba543e7b8617ca4bd075abb146) {#group__group__sam0__utils_1gad4ceacba543e7b8617ca4bd075abb146} |
|
||||||
|
|
||||||
Most significant byte of 3rd rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSB3D`](#group__group__sam0__utils_1gaf7972d3282ec9ecb97afa34e848ede2c) {#group__group__sam0__utils_1gaf7972d3282ec9ecb97afa34e848ede2c} |
|
||||||
|
|
||||||
Most significant byte of 4th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSB4D`](#group__group__sam0__utils_1ga1c891624c33b13808633af8dbcaafa5f) {#group__group__sam0__utils_1ga1c891624c33b13808633af8dbcaafa5f} |
|
||||||
|
|
||||||
Most significant byte of 5th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSB5D`](#group__group__sam0__utils_1ga5e61db58aaf5cbb3051240cdcb1b5147) {#group__group__sam0__utils_1ga5e61db58aaf5cbb3051240cdcb1b5147} |
|
||||||
|
|
||||||
Most significant byte of 6th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSB6D`](#group__group__sam0__utils_1gacb8062d046ca06f5c28c9a015997494b) {#group__group__sam0__utils_1gacb8062d046ca06f5c28c9a015997494b} |
|
||||||
|
|
||||||
Most significant byte of 7th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`MSB7D`](#group__group__sam0__utils_1ga0cbce69964fa2dd7bf05911d0b99b014) {#group__group__sam0__utils_1ga0cbce69964fa2dd7bf05911d0b99b014} |
|
||||||
|
|
||||||
Most significant byte of 8th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSB7D`](#group__group__sam0__utils_1ga79fb849e13082fdd4adb02debbad7f1a) {#group__group__sam0__utils_1ga79fb849e13082fdd4adb02debbad7f1a} |
|
||||||
|
|
||||||
Least significant byte of 8th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSB6D`](#group__group__sam0__utils_1gab90afefaf3b5cb2507ab3c496d8f643c) {#group__group__sam0__utils_1gab90afefaf3b5cb2507ab3c496d8f643c} |
|
||||||
|
|
||||||
Least significant byte of 7th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSB5D`](#group__group__sam0__utils_1gac379acb246797736332fa1b8ae481b34) {#group__group__sam0__utils_1gac379acb246797736332fa1b8ae481b34} |
|
||||||
|
|
||||||
Least significant byte of 6th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSB4D`](#group__group__sam0__utils_1gaab745f30b9b841f9ccd9ace0a5a1a9e5) {#group__group__sam0__utils_1gaab745f30b9b841f9ccd9ace0a5a1a9e5} |
|
||||||
|
|
||||||
Least significant byte of 5th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSB3D`](#group__group__sam0__utils_1ga99213c01b979c347950eba4277f0499a) {#group__group__sam0__utils_1ga99213c01b979c347950eba4277f0499a} |
|
||||||
|
|
||||||
Least significant byte of 4th rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSB2D`](#group__group__sam0__utils_1gaba3bea07dcc4a37039b7effd4da03b9e) {#group__group__sam0__utils_1gaba3bea07dcc4a37039b7effd4da03b9e} |
|
||||||
|
|
||||||
Least significant byte of 3rd rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSB1D`](#group__group__sam0__utils_1ga42179f159b798116eb615102a549aa85) {#group__group__sam0__utils_1ga42179f159b798116eb615102a549aa85} |
|
||||||
|
|
||||||
Least significant byte of 2nd rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSB0D`](#group__group__sam0__utils_1ga2e20f5ef87ccf0ad44c1d49d6ffd80a3) {#group__group__sam0__utils_1ga2e20f5ef87ccf0ad44c1d49d6ffd80a3} |
|
||||||
|
|
||||||
Least significant byte of 1st rank of *u64*. |
|
||||||
|
|
||||||
#### `define `[`LSB0`](#group__group__sam0__utils_1ga844ec34df36feb927dc92007af14674a) {#group__group__sam0__utils_1ga844ec34df36feb927dc92007af14674a} |
|
||||||
|
|
||||||
Least significant byte of 1st rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`LSB1`](#group__group__sam0__utils_1ga2d1e45154b07481f0579ecc725e4edff) {#group__group__sam0__utils_1ga2d1e45154b07481f0579ecc725e4edff} |
|
||||||
|
|
||||||
Least significant byte of 2nd rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`LSB2`](#group__group__sam0__utils_1ga8967f5ae0174b01ce44c502ebd14035a) {#group__group__sam0__utils_1ga8967f5ae0174b01ce44c502ebd14035a} |
|
||||||
|
|
||||||
Least significant byte of 3rd rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`LSB3`](#group__group__sam0__utils_1ga5d9ff393e7c8764112a1167db19b16b1) {#group__group__sam0__utils_1ga5d9ff393e7c8764112a1167db19b16b1} |
|
||||||
|
|
||||||
Least significant byte of 4th rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`MSB3`](#group__group__sam0__utils_1gaeeb8918fc580ce01d45f71863eebff90) {#group__group__sam0__utils_1gaeeb8918fc580ce01d45f71863eebff90} |
|
||||||
|
|
||||||
Most significant byte of 4th rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`MSB2`](#group__group__sam0__utils_1ga8683254be29bcfe3cf2fa646890d3942) {#group__group__sam0__utils_1ga8683254be29bcfe3cf2fa646890d3942} |
|
||||||
|
|
||||||
Most significant byte of 3rd rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`MSB1`](#group__group__sam0__utils_1ga3facab9f8ebf70ad6e16038465e2bedc) {#group__group__sam0__utils_1ga3facab9f8ebf70ad6e16038465e2bedc} |
|
||||||
|
|
||||||
Most significant byte of 2nd rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`MSB0`](#group__group__sam0__utils_1gafb81783b8186acd7182a971048b0c6b3) {#group__group__sam0__utils_1gafb81783b8186acd7182a971048b0c6b3} |
|
||||||
|
|
||||||
Most significant byte of 1st rank of *u32*. |
|
||||||
|
|
||||||
#### `define `[`FLASH_DECLARE`](#group__group__sam0__utils_1ga9b84ecc6b34a71f797ceb8b8f7b8d384) {#group__group__sam0__utils_1ga9b84ecc6b34a71f797ceb8b8f7b8d384} |
|
||||||
|
|
||||||
#### `define `[`FLASH_EXTERN`](#group__group__sam0__utils_1gaaef0fd990bb5bd9cdf11334f7c689fd7) {#group__group__sam0__utils_1gaaef0fd990bb5bd9cdf11334f7c689fd7} |
|
||||||
|
|
||||||
#### `define `[`PGM_READ_BYTE`](#group__group__sam0__utils_1gafe9b83c73d4840986478ec67d3eb7718) {#group__group__sam0__utils_1gafe9b83c73d4840986478ec67d3eb7718} |
|
||||||
|
|
||||||
#### `define `[`PGM_READ_WORD`](#group__group__sam0__utils_1ga92576bffe51090dcb6d5c67e07b9eec7) {#group__group__sam0__utils_1ga92576bffe51090dcb6d5c67e07b9eec7} |
|
||||||
|
|
||||||
#### `define `[`MEMCPY_ENDIAN`](#group__group__sam0__utils_1ga85a7d71a016789b1766f9b27d0530347) {#group__group__sam0__utils_1ga85a7d71a016789b1766f9b27d0530347} |
|
||||||
|
|
||||||
#### `define `[`PGM_READ_BLOCK`](#group__group__sam0__utils_1ga8900e4615b7d7143a6c38e2a39087538) {#group__group__sam0__utils_1ga8900e4615b7d7143a6c38e2a39087538} |
|
||||||
|
|
||||||
#### `define `[`CMD_ID_OCTET`](#group__group__sam0__utils_1gabf2b95fa77301377cdcf79eb615551db) {#group__group__sam0__utils_1gabf2b95fa77301377cdcf79eb615551db} |
|
||||||
|
|
||||||
#### `define `[`CPU_ENDIAN_TO_LE16`](#group__group__sam0__utils_1ga7c15ca0f3159182efc4b80a00768c2c0) {#group__group__sam0__utils_1ga7c15ca0f3159182efc4b80a00768c2c0} |
|
||||||
|
|
||||||
#### `define `[`CPU_ENDIAN_TO_LE32`](#group__group__sam0__utils_1gaa2fd4bfb7af44220ce4205e2aa371017) {#group__group__sam0__utils_1gaa2fd4bfb7af44220ce4205e2aa371017} |
|
||||||
|
|
||||||
#### `define `[`CPU_ENDIAN_TO_LE64`](#group__group__sam0__utils_1ga6f1e86f452c8f327f9ca96cbf6a65c81) {#group__group__sam0__utils_1ga6f1e86f452c8f327f9ca96cbf6a65c81} |
|
||||||
|
|
||||||
#### `define `[`LE16_TO_CPU_ENDIAN`](#group__group__sam0__utils_1gaceb02fdef243c22d2559e260185fb579) {#group__group__sam0__utils_1gaceb02fdef243c22d2559e260185fb579} |
|
||||||
|
|
||||||
#### `define `[`LE32_TO_CPU_ENDIAN`](#group__group__sam0__utils_1ga2df63369ef525ba98832132ce5a43346) {#group__group__sam0__utils_1ga2df63369ef525ba98832132ce5a43346} |
|
||||||
|
|
||||||
#### `define `[`LE64_TO_CPU_ENDIAN`](#group__group__sam0__utils_1gab675071ce5a4644b205cdbc858417ccd) {#group__group__sam0__utils_1gab675071ce5a4644b205cdbc858417ccd} |
|
||||||
|
|
||||||
#### `define `[`CLE16_TO_CPU_ENDIAN`](#group__group__sam0__utils_1ga4ac6e032d1ce0ae6d2e460da93ce8732) {#group__group__sam0__utils_1ga4ac6e032d1ce0ae6d2e460da93ce8732} |
|
||||||
|
|
||||||
#### `define `[`CLE32_TO_CPU_ENDIAN`](#group__group__sam0__utils_1ga3ff07a7496222efe8bc7d7b7b0342b0d) {#group__group__sam0__utils_1ga3ff07a7496222efe8bc7d7b7b0342b0d} |
|
||||||
|
|
||||||
#### `define `[`CLE64_TO_CPU_ENDIAN`](#group__group__sam0__utils_1gacbbba93256e2d892c748d56a42f00f9b) {#group__group__sam0__utils_1gacbbba93256e2d892c748d56a42f00f9b} |
|
||||||
|
|
||||||
#### `define `[`CCPU_ENDIAN_TO_LE16`](#group__group__sam0__utils_1ga5fd2d3ed2fc9234277b659b67d33bc64) {#group__group__sam0__utils_1ga5fd2d3ed2fc9234277b659b67d33bc64} |
|
||||||
|
|
||||||
#### `define `[`CCPU_ENDIAN_TO_LE32`](#group__group__sam0__utils_1ga1e3290451e5c7b98175911c9219b5123) {#group__group__sam0__utils_1ga1e3290451e5c7b98175911c9219b5123} |
|
||||||
|
|
||||||
#### `define `[`CCPU_ENDIAN_TO_LE64`](#group__group__sam0__utils_1ga00483bf27ea1e8a2143c6baf22b31f16) {#group__group__sam0__utils_1ga00483bf27ea1e8a2143c6baf22b31f16} |
|
||||||
|
|
||||||
#### `define `[`ADDR_COPY_DST_SRC_16`](#group__group__sam0__utils_1gac4609178e5c825e815f44fa123dcaaf7) {#group__group__sam0__utils_1gac4609178e5c825e815f44fa123dcaaf7} |
|
||||||
|
|
||||||
#### `define `[`ADDR_COPY_DST_SRC_64`](#group__group__sam0__utils_1ga0454afa80924c2183c8c672c043440cc) {#group__group__sam0__utils_1ga0454afa80924c2183c8c672c043440cc} |
|
||||||
|
|
||||||
#### `public inline static void `[`convert_64_bit_to_byte_array`](#group__group__sam0__utils_1gadca7cebb159c7ed180d3d07cccb74245)`(uint64_t value,uint8_t * data)` {#group__group__sam0__utils_1gadca7cebb159c7ed180d3d07cccb74245} |
|
||||||
|
|
||||||
Converts a 64-Bit value into a 8 Byte array. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `value` 64-Bit value |
|
||||||
|
|
||||||
* `data` Pointer to the 8 Byte array to be updated with 64-Bit value |
|
||||||
|
|
||||||
#### `public inline static void `[`convert_16_bit_to_byte_array`](#group__group__sam0__utils_1ga2de8d131d6afca8b368486f56c911e75)`(uint16_t value,uint8_t * data)` {#group__group__sam0__utils_1ga2de8d131d6afca8b368486f56c911e75} |
|
||||||
|
|
||||||
Converts a 16-Bit value into a 2 Byte array. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `value` 16-Bit value |
|
||||||
|
|
||||||
* `data` Pointer to the 2 Byte array to be updated with 16-Bit value |
|
||||||
|
|
||||||
#### `public inline static void `[`convert_spec_16_bit_to_byte_array`](#group__group__sam0__utils_1gaa9724d81bfe44a06b0372d144cd98e36)`(uint16_t value,uint8_t * data)` {#group__group__sam0__utils_1gaa9724d81bfe44a06b0372d144cd98e36} |
|
||||||
|
|
||||||
#### `public inline static void `[`convert_16_bit_to_byte_address`](#group__group__sam0__utils_1ga9634f2d7292e1209fe3b83254a66c450)`(uint16_t value,uint8_t * data)` {#group__group__sam0__utils_1ga9634f2d7292e1209fe3b83254a66c450} |
|
||||||
|
|
||||||
#### `public inline static uint16_t `[`convert_byte_array_to_16_bit`](#group__group__sam0__utils_1gad3726f56d0820acc7bae83993bd8897c)`(uint8_t * data)` {#group__group__sam0__utils_1gad3726f56d0820acc7bae83993bd8897c} |
|
||||||
|
|
||||||
#### `public inline static uint32_t `[`convert_byte_array_to_32_bit`](#group__group__sam0__utils_1ga6e01ed4a4718b439d295b5124ede09e3)`(uint8_t * data)` {#group__group__sam0__utils_1ga6e01ed4a4718b439d295b5124ede09e3} |
|
||||||
|
|
||||||
#### `public inline static uint64_t `[`convert_byte_array_to_64_bit`](#group__group__sam0__utils_1ga45ffdbdc2d7a6d1dbf91b2fe8d880347)`(uint8_t * data)` {#group__group__sam0__utils_1ga45ffdbdc2d7a6d1dbf91b2fe8d880347} |
|
||||||
|
|
||||||
Converts a 8 Byte array into a 64-Bit value. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `data` Specifies the pointer to the 8 Byte array |
|
||||||
|
|
||||||
#### Returns |
|
||||||
64-Bit value |
|
||||||
|
|
||||||
# struct `StructPtr` {#struct_struct_ptr} |
|
||||||
|
|
||||||
Structure of pointers to 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public int64_t * `[`s64ptr`](#struct_struct_ptr_1ab436f27258753b9cf149312d1e668d7e) | |
|
||||||
`public uint64_t * `[`u64ptr`](#struct_struct_ptr_1a01a7db75ae97caa7457038b8ee801d1f) | |
|
||||||
`public int32_t * `[`s32ptr`](#struct_struct_ptr_1a106ea0461fc89cf4c58cec908c448aef) | |
|
||||||
`public uint32_t * `[`u32ptr`](#struct_struct_ptr_1a00500224ac165192ac888251a076606d) | |
|
||||||
`public int16_t * `[`s16ptr`](#struct_struct_ptr_1a55c23b18ff2cf478679ca49da3927345) | |
|
||||||
`public uint16_t * `[`u16ptr`](#struct_struct_ptr_1a15c8362aa58f36ae5de7f6180550d6b5) | |
|
||||||
`public int8_t * `[`s8ptr`](#struct_struct_ptr_1a874b2108143ffd4d2a83baa5d8fa8cad) | |
|
||||||
`public uint8_t * `[`u8ptr`](#struct_struct_ptr_1acc04e057a962c975bbdf62664c52ff2c) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public int64_t * `[`s64ptr`](#struct_struct_ptr_1ab436f27258753b9cf149312d1e668d7e) {#struct_struct_ptr_1ab436f27258753b9cf149312d1e668d7e} |
|
||||||
|
|
||||||
#### `public uint64_t * `[`u64ptr`](#struct_struct_ptr_1a01a7db75ae97caa7457038b8ee801d1f) {#struct_struct_ptr_1a01a7db75ae97caa7457038b8ee801d1f} |
|
||||||
|
|
||||||
#### `public int32_t * `[`s32ptr`](#struct_struct_ptr_1a106ea0461fc89cf4c58cec908c448aef) {#struct_struct_ptr_1a106ea0461fc89cf4c58cec908c448aef} |
|
||||||
|
|
||||||
#### `public uint32_t * `[`u32ptr`](#struct_struct_ptr_1a00500224ac165192ac888251a076606d) {#struct_struct_ptr_1a00500224ac165192ac888251a076606d} |
|
||||||
|
|
||||||
#### `public int16_t * `[`s16ptr`](#struct_struct_ptr_1a55c23b18ff2cf478679ca49da3927345) {#struct_struct_ptr_1a55c23b18ff2cf478679ca49da3927345} |
|
||||||
|
|
||||||
#### `public uint16_t * `[`u16ptr`](#struct_struct_ptr_1a15c8362aa58f36ae5de7f6180550d6b5) {#struct_struct_ptr_1a15c8362aa58f36ae5de7f6180550d6b5} |
|
||||||
|
|
||||||
#### `public int8_t * `[`s8ptr`](#struct_struct_ptr_1a874b2108143ffd4d2a83baa5d8fa8cad) {#struct_struct_ptr_1a874b2108143ffd4d2a83baa5d8fa8cad} |
|
||||||
|
|
||||||
#### `public uint8_t * `[`u8ptr`](#struct_struct_ptr_1acc04e057a962c975bbdf62664c52ff2c) {#struct_struct_ptr_1acc04e057a962c975bbdf62664c52ff2c} |
|
||||||
|
|
||||||
# struct `StructVPtr` {#struct_struct_v_ptr} |
|
||||||
|
|
||||||
Structure of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public int64_t * `[`s64ptr`](#struct_struct_v_ptr_1a2908c8cb1c7d816d7f9d3a30531818f8) | |
|
||||||
`public uint64_t * `[`u64ptr`](#struct_struct_v_ptr_1a1acc0e7be6320444fc9a35fbd89f1f37) | |
|
||||||
`public int32_t * `[`s32ptr`](#struct_struct_v_ptr_1ac419cbdd704de7024e989caaf9e19a98) | |
|
||||||
`public uint32_t * `[`u32ptr`](#struct_struct_v_ptr_1abdec22b9984813fac831e57d45cae742) | |
|
||||||
`public int16_t * `[`s16ptr`](#struct_struct_v_ptr_1aee6c3ba77b4b25f556abb8a41053caf4) | |
|
||||||
`public uint16_t * `[`u16ptr`](#struct_struct_v_ptr_1ae008948f89e2a5ee3102016f82023b42) | |
|
||||||
`public int8_t * `[`s8ptr`](#struct_struct_v_ptr_1ab07ceff1caf6f3bb01bd31296a36daf9) | |
|
||||||
`public uint8_t * `[`u8ptr`](#struct_struct_v_ptr_1a4213589251839cd1f42c3343c6cb9be9) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public int64_t * `[`s64ptr`](#struct_struct_v_ptr_1a2908c8cb1c7d816d7f9d3a30531818f8) {#struct_struct_v_ptr_1a2908c8cb1c7d816d7f9d3a30531818f8} |
|
||||||
|
|
||||||
#### `public uint64_t * `[`u64ptr`](#struct_struct_v_ptr_1a1acc0e7be6320444fc9a35fbd89f1f37) {#struct_struct_v_ptr_1a1acc0e7be6320444fc9a35fbd89f1f37} |
|
||||||
|
|
||||||
#### `public int32_t * `[`s32ptr`](#struct_struct_v_ptr_1ac419cbdd704de7024e989caaf9e19a98) {#struct_struct_v_ptr_1ac419cbdd704de7024e989caaf9e19a98} |
|
||||||
|
|
||||||
#### `public uint32_t * `[`u32ptr`](#struct_struct_v_ptr_1abdec22b9984813fac831e57d45cae742) {#struct_struct_v_ptr_1abdec22b9984813fac831e57d45cae742} |
|
||||||
|
|
||||||
#### `public int16_t * `[`s16ptr`](#struct_struct_v_ptr_1aee6c3ba77b4b25f556abb8a41053caf4) {#struct_struct_v_ptr_1aee6c3ba77b4b25f556abb8a41053caf4} |
|
||||||
|
|
||||||
#### `public uint16_t * `[`u16ptr`](#struct_struct_v_ptr_1ae008948f89e2a5ee3102016f82023b42) {#struct_struct_v_ptr_1ae008948f89e2a5ee3102016f82023b42} |
|
||||||
|
|
||||||
#### `public int8_t * `[`s8ptr`](#struct_struct_v_ptr_1ab07ceff1caf6f3bb01bd31296a36daf9) {#struct_struct_v_ptr_1ab07ceff1caf6f3bb01bd31296a36daf9} |
|
||||||
|
|
||||||
#### `public uint8_t * `[`u8ptr`](#struct_struct_v_ptr_1a4213589251839cd1f42c3343c6cb9be9) {#struct_struct_v_ptr_1a4213589251839cd1f42c3343c6cb9be9} |
|
||||||
|
|
||||||
# struct `StructCPtr` {#struct_struct_c_ptr} |
|
||||||
|
|
||||||
Structure of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public const int64_t * `[`s64ptr`](#struct_struct_c_ptr_1ac9ea294aaa07e5a63204530ebf3dd3d2) | |
|
||||||
`public const uint64_t * `[`u64ptr`](#struct_struct_c_ptr_1abbc67642e882a52be564515f1c8f12cb) | |
|
||||||
`public const int32_t * `[`s32ptr`](#struct_struct_c_ptr_1af6182ebecd1280fa1714762f2d81d5d3) | |
|
||||||
`public const uint32_t * `[`u32ptr`](#struct_struct_c_ptr_1a12f0da0bcf30aca9703630565d8be204) | |
|
||||||
`public const int16_t * `[`s16ptr`](#struct_struct_c_ptr_1a153aa1a4a18fe39a05be056a372d19c9) | |
|
||||||
`public const uint16_t * `[`u16ptr`](#struct_struct_c_ptr_1a4ff05b3b8a78949bf0036fe340b98b05) | |
|
||||||
`public const int8_t * `[`s8ptr`](#struct_struct_c_ptr_1a2e21f1ae56dd4da3f534ccebfa234fcc) | |
|
||||||
`public const uint8_t * `[`u8ptr`](#struct_struct_c_ptr_1acb08e5689c70ca4ef5e0d984f15f47ae) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public const int64_t * `[`s64ptr`](#struct_struct_c_ptr_1ac9ea294aaa07e5a63204530ebf3dd3d2) {#struct_struct_c_ptr_1ac9ea294aaa07e5a63204530ebf3dd3d2} |
|
||||||
|
|
||||||
#### `public const uint64_t * `[`u64ptr`](#struct_struct_c_ptr_1abbc67642e882a52be564515f1c8f12cb) {#struct_struct_c_ptr_1abbc67642e882a52be564515f1c8f12cb} |
|
||||||
|
|
||||||
#### `public const int32_t * `[`s32ptr`](#struct_struct_c_ptr_1af6182ebecd1280fa1714762f2d81d5d3) {#struct_struct_c_ptr_1af6182ebecd1280fa1714762f2d81d5d3} |
|
||||||
|
|
||||||
#### `public const uint32_t * `[`u32ptr`](#struct_struct_c_ptr_1a12f0da0bcf30aca9703630565d8be204) {#struct_struct_c_ptr_1a12f0da0bcf30aca9703630565d8be204} |
|
||||||
|
|
||||||
#### `public const int16_t * `[`s16ptr`](#struct_struct_c_ptr_1a153aa1a4a18fe39a05be056a372d19c9) {#struct_struct_c_ptr_1a153aa1a4a18fe39a05be056a372d19c9} |
|
||||||
|
|
||||||
#### `public const uint16_t * `[`u16ptr`](#struct_struct_c_ptr_1a4ff05b3b8a78949bf0036fe340b98b05) {#struct_struct_c_ptr_1a4ff05b3b8a78949bf0036fe340b98b05} |
|
||||||
|
|
||||||
#### `public const int8_t * `[`s8ptr`](#struct_struct_c_ptr_1a2e21f1ae56dd4da3f534ccebfa234fcc) {#struct_struct_c_ptr_1a2e21f1ae56dd4da3f534ccebfa234fcc} |
|
||||||
|
|
||||||
#### `public const uint8_t * `[`u8ptr`](#struct_struct_c_ptr_1acb08e5689c70ca4ef5e0d984f15f47ae) {#struct_struct_c_ptr_1acb08e5689c70ca4ef5e0d984f15f47ae} |
|
||||||
|
|
||||||
# struct `StructCVPtr` {#struct_struct_c_v_ptr} |
|
||||||
|
|
||||||
Structure of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public const volatile int64_t * `[`s64ptr`](#struct_struct_c_v_ptr_1aa79f3b96a6ad079e73cc0be13bd0e765) | |
|
||||||
`public const volatile uint64_t * `[`u64ptr`](#struct_struct_c_v_ptr_1a24a2bedaf12d427819c62babba34e2ef) | |
|
||||||
`public const volatile int32_t * `[`s32ptr`](#struct_struct_c_v_ptr_1a0aa7d6575057bad6b799c9b2909c077b) | |
|
||||||
`public const volatile uint32_t * `[`u32ptr`](#struct_struct_c_v_ptr_1a0e4e80d3c57067ad85c71af39d0ea817) | |
|
||||||
`public const volatile int16_t * `[`s16ptr`](#struct_struct_c_v_ptr_1a97b5d4643b545ecc9ac9c68fa35b74fe) | |
|
||||||
`public const volatile uint16_t * `[`u16ptr`](#struct_struct_c_v_ptr_1a288ff13c7abb2360d62009e2711e7485) | |
|
||||||
`public const volatile int8_t * `[`s8ptr`](#struct_struct_c_v_ptr_1afc839213e22402ccf98e7d143453b58d) | |
|
||||||
`public const volatile uint8_t * `[`u8ptr`](#struct_struct_c_v_ptr_1ae6228fb5d646745079910ea045f314e3) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public const volatile int64_t * `[`s64ptr`](#struct_struct_c_v_ptr_1aa79f3b96a6ad079e73cc0be13bd0e765) {#struct_struct_c_v_ptr_1aa79f3b96a6ad079e73cc0be13bd0e765} |
|
||||||
|
|
||||||
#### `public const volatile uint64_t * `[`u64ptr`](#struct_struct_c_v_ptr_1a24a2bedaf12d427819c62babba34e2ef) {#struct_struct_c_v_ptr_1a24a2bedaf12d427819c62babba34e2ef} |
|
||||||
|
|
||||||
#### `public const volatile int32_t * `[`s32ptr`](#struct_struct_c_v_ptr_1a0aa7d6575057bad6b799c9b2909c077b) {#struct_struct_c_v_ptr_1a0aa7d6575057bad6b799c9b2909c077b} |
|
||||||
|
|
||||||
#### `public const volatile uint32_t * `[`u32ptr`](#struct_struct_c_v_ptr_1a0e4e80d3c57067ad85c71af39d0ea817) {#struct_struct_c_v_ptr_1a0e4e80d3c57067ad85c71af39d0ea817} |
|
||||||
|
|
||||||
#### `public const volatile int16_t * `[`s16ptr`](#struct_struct_c_v_ptr_1a97b5d4643b545ecc9ac9c68fa35b74fe) {#struct_struct_c_v_ptr_1a97b5d4643b545ecc9ac9c68fa35b74fe} |
|
||||||
|
|
||||||
#### `public const volatile uint16_t * `[`u16ptr`](#struct_struct_c_v_ptr_1a288ff13c7abb2360d62009e2711e7485) {#struct_struct_c_v_ptr_1a288ff13c7abb2360d62009e2711e7485} |
|
||||||
|
|
||||||
#### `public const volatile int8_t * `[`s8ptr`](#struct_struct_c_v_ptr_1afc839213e22402ccf98e7d143453b58d) {#struct_struct_c_v_ptr_1afc839213e22402ccf98e7d143453b58d} |
|
||||||
|
|
||||||
#### `public const volatile uint8_t * `[`u8ptr`](#struct_struct_c_v_ptr_1ae6228fb5d646745079910ea045f314e3) {#struct_struct_c_v_ptr_1ae6228fb5d646745079910ea045f314e3} |
|
||||||
|
|
@ -1,92 +0,0 @@ |
|||||||
# group `group_sam0_utils_status_codes` {#group__group__sam0__utils__status__codes} |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`define `[`STATUS_CATEGORY_MASK`](#group__group__sam0__utils__status__codes_1ga5bf938a904077896054cd093bf7d8fa8) | Mask to retrieve the error category of a status code. |
|
||||||
`define `[`STATUS_ERROR_MASK`](#group__group__sam0__utils__status__codes_1ga4c46d8f176ca46ab775db0fe270d2f98) | Mask to retrieve the error code within the category of a status code. |
|
||||||
`enum `[`status_categories`](#group__group__sam0__utils__status__codes_1ga477539e8a67b0cab096e8ecda6f5d7d6) | Status code error categories. |
|
||||||
`enum `[`status_code`](#group__group__sam0__utils__status__codes_1ga751c892e5a46b8e7d282085a5a5bf151) | Status code that may be returned by shell commands and protocol implementations. |
|
||||||
`enum `[`status_code_wireless`](#group__group__sam0__utils__status__codes_1ga29235ed38b6f02861f29daae665ac3a2) | Status codes used by MAC stack. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `define `[`STATUS_CATEGORY_MASK`](#group__group__sam0__utils__status__codes_1ga5bf938a904077896054cd093bf7d8fa8) {#group__group__sam0__utils__status__codes_1ga5bf938a904077896054cd093bf7d8fa8} |
|
||||||
|
|
||||||
Mask to retrieve the error category of a status code. |
|
||||||
|
|
||||||
#### `define `[`STATUS_ERROR_MASK`](#group__group__sam0__utils__status__codes_1ga4c46d8f176ca46ab775db0fe270d2f98) {#group__group__sam0__utils__status__codes_1ga4c46d8f176ca46ab775db0fe270d2f98} |
|
||||||
|
|
||||||
Mask to retrieve the error code within the category of a status code. |
|
||||||
|
|
||||||
#### `enum `[`status_categories`](#group__group__sam0__utils__status__codes_1ga477539e8a67b0cab096e8ecda6f5d7d6) {#group__group__sam0__utils__status__codes_1ga477539e8a67b0cab096e8ecda6f5d7d6} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
STATUS_CATEGORY_OK | |
|
||||||
STATUS_CATEGORY_COMMON | |
|
||||||
STATUS_CATEGORY_ANALOG | |
|
||||||
STATUS_CATEGORY_COM | |
|
||||||
STATUS_CATEGORY_IO | |
|
||||||
|
|
||||||
Status code error categories. |
|
||||||
|
|
||||||
#### `enum `[`status_code`](#group__group__sam0__utils__status__codes_1ga751c892e5a46b8e7d282085a5a5bf151) {#group__group__sam0__utils__status__codes_1ga751c892e5a46b8e7d282085a5a5bf151} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
STATUS_OK | |
|
||||||
STATUS_VALID_DATA | |
|
||||||
STATUS_NO_CHANGE | |
|
||||||
STATUS_ABORTED | |
|
||||||
STATUS_BUSY | |
|
||||||
STATUS_SUSPEND | |
|
||||||
STATUS_ERR_IO | |
|
||||||
STATUS_ERR_REQ_FLUSHED | |
|
||||||
STATUS_ERR_TIMEOUT | |
|
||||||
STATUS_ERR_BAD_DATA | |
|
||||||
STATUS_ERR_NOT_FOUND | |
|
||||||
STATUS_ERR_UNSUPPORTED_DEV | |
|
||||||
STATUS_ERR_NO_MEMORY | |
|
||||||
STATUS_ERR_INVALID_ARG | |
|
||||||
STATUS_ERR_BAD_ADDRESS | |
|
||||||
STATUS_ERR_BAD_FORMAT | |
|
||||||
STATUS_ERR_BAD_FRQ | |
|
||||||
STATUS_ERR_DENIED | |
|
||||||
STATUS_ERR_ALREADY_INITIALIZED | |
|
||||||
STATUS_ERR_OVERFLOW | |
|
||||||
STATUS_ERR_NOT_INITIALIZED | |
|
||||||
STATUS_ERR_SAMPLERATE_UNAVAILABLE | |
|
||||||
STATUS_ERR_RESOLUTION_UNAVAILABLE | |
|
||||||
STATUS_ERR_BAUDRATE_UNAVAILABLE | |
|
||||||
STATUS_ERR_PACKET_COLLISION | |
|
||||||
STATUS_ERR_PROTOCOL | |
|
||||||
STATUS_ERR_PIN_MUX_INVALID | |
|
||||||
|
|
||||||
Status code that may be returned by shell commands and protocol implementations. |
|
||||||
|
|
||||||
Any change to these status codes and the corresponding message strings is strictly forbidden. New codes can be added, however, but make sure that any message string tables are updated at the same time. |
|
||||||
|
|
||||||
#### `enum `[`status_code_wireless`](#group__group__sam0__utils__status__codes_1ga29235ed38b6f02861f29daae665ac3a2) {#group__group__sam0__utils__status__codes_1ga29235ed38b6f02861f29daae665ac3a2} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
ERR_IO_ERROR | I/O error. |
|
||||||
ERR_FLUSHED | Request flushed from queue. |
|
||||||
ERR_TIMEOUT | Operation timed out. |
|
||||||
ERR_BAD_DATA | Data integrity check failed. |
|
||||||
ERR_PROTOCOL | Protocol error. |
|
||||||
ERR_UNSUPPORTED_DEV | Unsupported device. |
|
||||||
ERR_NO_MEMORY | Insufficient memory. |
|
||||||
ERR_INVALID_ARG | Invalid argument. |
|
||||||
ERR_BAD_ADDRESS | Bad address. |
|
||||||
ERR_BUSY | Resource is busy. |
|
||||||
ERR_BAD_FORMAT | Data format not recognized. |
|
||||||
ERR_NO_TIMER | No timer available. |
|
||||||
ERR_TIMER_ALREADY_RUNNING | Timer already running. |
|
||||||
ERR_TIMER_NOT_RUNNING | Timer not running. |
|
||||||
OPERATION_IN_PROGRESS | Operation in progress. |
|
||||||
|
|
||||||
Status codes used by MAC stack. |
|
||||||
|
|
@ -1,56 +0,0 @@ |
|||||||
# group `udc_desc_group` {#group__udc__desc__group} |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`define `[`UDC_DESC_STORAGE`](#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f) | Defines the memory's location of USB descriptors. |
|
||||||
`define `[`UDC_DATA`](#group__udc__desc__group_1ga1659a2f0b429f07a985a8faaa3fb27b1) | |
|
||||||
`define `[`UDC_BSS`](#group__udc__desc__group_1ga198e5cdf3367aa0b35821417b7ede0b2) | |
|
||||||
`struct `[`udc_config_speed_t`](#structudc__config__speed__t) | Configuration descriptor and UDI link for one USB speed. |
|
||||||
`struct `[`udc_config_t`](#structudc__config__t) | All information about the USB Device. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `define `[`UDC_DESC_STORAGE`](#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f) {#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f} |
|
||||||
|
|
||||||
Defines the memory's location of USB descriptors. |
|
||||||
|
|
||||||
By default the Descriptor is stored in RAM (UDC_DESC_STORAGE is defined empty). |
|
||||||
|
|
||||||
If you have need to free RAM space, it is possible to put descriptor in flash in following case: |
|
||||||
|
|
||||||
* USB driver authorize flash transfer (USBB on UC3 and USB on Mega) |
|
||||||
|
|
||||||
* USB Device is not high speed (UDC no need to change USB descriptors) |
|
||||||
|
|
||||||
For UC3 application used "const". |
|
||||||
|
|
||||||
For Mega application used "code". |
|
||||||
|
|
||||||
#### `define `[`UDC_DATA`](#group__udc__desc__group_1ga1659a2f0b429f07a985a8faaa3fb27b1) {#group__udc__desc__group_1ga1659a2f0b429f07a985a8faaa3fb27b1} |
|
||||||
|
|
||||||
#### `define `[`UDC_BSS`](#group__udc__desc__group_1ga198e5cdf3367aa0b35821417b7ede0b2) {#group__udc__desc__group_1ga198e5cdf3367aa0b35821417b7ede0b2} |
|
||||||
|
|
||||||
# struct `udc_config_speed_t` {#structudc__config__speed__t} |
|
||||||
|
|
||||||
Configuration descriptor and UDI link for one USB speed. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
# struct `udc_config_t` {#structudc__config__t} |
|
||||||
|
|
||||||
All information about the USB Device. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
@ -1,148 +0,0 @@ |
|||||||
# group `udc_group` {#group__udc__group} |
|
||||||
|
|
||||||
The UDC provides a high-level abstraction of the usb device. You can use these functions to control the main device state (start/attach/wakeup). |
|
||||||
|
|
||||||
USB Device Custom configurationThe following USB Device configuration must be included in the [conf_usb.h](.build/docs/internals_undefined.md#conf__usb_8h) file of the application. |
|
||||||
|
|
||||||
USB_DEVICE_VENDOR_ID (Word) |
|
||||||
Vendor ID provided by USB org (ATMEL 0x03EB). |
|
||||||
|
|
||||||
USB_DEVICE_PRODUCT_ID (Word) |
|
||||||
Product ID (Referenced in [usb_atmel.h](.build/docs/internals_undefined.md#usb__atmel_8h)). |
|
||||||
|
|
||||||
USB_DEVICE_MAJOR_VERSION (Byte) |
|
||||||
Major version of the device |
|
||||||
|
|
||||||
USB_DEVICE_MINOR_VERSION (Byte) |
|
||||||
Minor version of the device |
|
||||||
|
|
||||||
USB_DEVICE_MANUFACTURE_NAME (string) |
|
||||||
ASCII name for the manufacture |
|
||||||
|
|
||||||
USB_DEVICE_PRODUCT_NAME (string) |
|
||||||
ASCII name for the product |
|
||||||
|
|
||||||
USB_DEVICE_SERIAL_NAME (string) |
|
||||||
ASCII name to enable and set a serial number |
|
||||||
|
|
||||||
USB_DEVICE_POWER (Numeric) |
|
||||||
(unit mA) Maximum device power |
|
||||||
|
|
||||||
USB_DEVICE_ATTR (Byte) |
|
||||||
USB attributes available: |
|
||||||
|
|
||||||
* USB_CONFIG_ATTR_SELF_POWERED |
|
||||||
|
|
||||||
* USB_CONFIG_ATTR_REMOTE_WAKEUP Note: if remote wake enabled then defines remotewakeup callbacks, see Table 5-2. External API from UDC - Callback |
|
||||||
|
|
||||||
USB_DEVICE_LOW_SPEED (Only defined) |
|
||||||
Force the USB Device to run in low speed |
|
||||||
|
|
||||||
USB_DEVICE_HS_SUPPORT (Only defined) |
|
||||||
Authorize the USB Device to run in high speed |
|
||||||
|
|
||||||
USB_DEVICE_MAX_EP (Byte) |
|
||||||
Define the maximum endpoint number used by the USB Device. |
|
||||||
This one is already defined in UDI default configuration. Ex: |
|
||||||
|
|
||||||
* When endpoint control 0x00, endpoint 0x01 and endpoint 0x82 is used then USB_DEVICE_MAX_EP=2 |
|
||||||
|
|
||||||
* When only endpoint control 0x00 is used then USB_DEVICE_MAX_EP=0 |
|
||||||
|
|
||||||
* When endpoint 0x01 and endpoint 0x81 is used then USB_DEVICE_MAX_EP=1 |
|
||||||
(configuration not possible on USBB interface) |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public inline static bool `[`udc_include_vbus_monitoring`](#group__udc__group_1ga70d88509bac27ef9c25f693dd21d91ca)`(void)` | Authorizes the VBUS event. |
|
||||||
`public void `[`udc_start`](#group__udc__group_1gadf4e193509cd03ab6333d62629ea51e7)`(void)` | Start the USB Device stack. |
|
||||||
`public void `[`udc_stop`](#group__udc__group_1gae2264dd91b24db9d4bb23fb1a2014972)`(void)` | Stop the USB Device stack. |
|
||||||
`public inline static void `[`udc_attach`](#group__udc__group_1ga2e71c4c6090543bc3bab06e710e2ee6b)`(void)` | Attach device to the bus when possible. |
|
||||||
`public inline static void `[`udc_detach`](#group__udc__group_1ga702d387f5ebfc2e0ab41667eb7644dda)`(void)` | Detaches the device from the bus. |
|
||||||
`public inline void `[`udc_remotewakeup`](#group__udc__group_1ga52c0439e5f6e471a9570471f00476260)`(void)` | The USB driver sends a resume signal called *"Upstream Resume"* This is authorized only when the remote wakeup feature is enabled by host. |
|
||||||
`public `[`usb_iface_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__iface__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * `[`udc_get_interface_desc`](#group__udc__group_1gadb2a0f5ad1e834d4d7e7777f901d64d2)`(void)` | Returns a pointer on the current interface descriptor. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public inline static bool `[`udc_include_vbus_monitoring`](#group__udc__group_1ga70d88509bac27ef9c25f693dd21d91ca)`(void)` {#group__udc__group_1ga70d88509bac27ef9c25f693dd21d91ca} |
|
||||||
|
|
||||||
Authorizes the VBUS event. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true, if the VBUS monitoring is possible. |
|
||||||
|
|
||||||
VBus monitoring used casesThe VBus monitoring is used only for USB SELF Power application. |
|
||||||
|
|
||||||
* By default the USB device is automatically attached when Vbus is high or when USB is start for devices without internal Vbus monitoring. [conf_usb.h](.build/docs/internals_undefined.md#conf__usb_8h) file does not contains define USB_DEVICE_ATTACH_AUTO_DISABLE. |
|
||||||
```cpp |
|
||||||
//#define USB_DEVICE_ATTACH_AUTO_DISABLE |
|
||||||
``` |
|
||||||
|
|
||||||
* Add custom VBUS monitoring. [conf_usb.h](.build/docs/internals_undefined.md#conf__usb_8h) file contains define USB_DEVICE_ATTACH_AUTO_DISABLE: |
|
||||||
```cpp |
|
||||||
#define USB_DEVICE_ATTACH_AUTO_DISABLE |
|
||||||
``` |
|
||||||
User C file contains: |
|
||||||
```cpp |
|
||||||
// Authorize VBUS monitoring |
|
||||||
if (!udc_include_vbus_monitoring()) { |
|
||||||
// Implement custom VBUS monitoring via GPIO or other |
|
||||||
} |
|
||||||
Event_VBUS_present() // VBUS interrupt or GPIO interrupt or other |
|
||||||
{ |
|
||||||
// Attach USB Device |
|
||||||
udc_attach(); |
|
||||||
} |
|
||||||
``` |
|
||||||
|
|
||||||
* Case of battery charging. [conf_usb.h](.build/docs/internals_undefined.md#conf__usb_8h) file contains define USB_DEVICE_ATTACH_AUTO_DISABLE: |
|
||||||
```cpp |
|
||||||
#define USB_DEVICE_ATTACH_AUTO_DISABLE |
|
||||||
``` |
|
||||||
User C file contains: |
|
||||||
```cpp |
|
||||||
Event VBUS present() // VBUS interrupt or GPIO interrupt or .. |
|
||||||
{ |
|
||||||
// Authorize battery charging, but wait key press to start USB. |
|
||||||
} |
|
||||||
Event Key press() |
|
||||||
{ |
|
||||||
// Stop batteries charging |
|
||||||
// Start USB |
|
||||||
udc_attach(); |
|
||||||
} |
|
||||||
``` |
|
||||||
|
|
||||||
#### `public void `[`udc_start`](#group__udc__group_1gadf4e193509cd03ab6333d62629ea51e7)`(void)` {#group__udc__group_1gadf4e193509cd03ab6333d62629ea51e7} |
|
||||||
|
|
||||||
Start the USB Device stack. |
|
||||||
|
|
||||||
#### `public void `[`udc_stop`](#group__udc__group_1gae2264dd91b24db9d4bb23fb1a2014972)`(void)` {#group__udc__group_1gae2264dd91b24db9d4bb23fb1a2014972} |
|
||||||
|
|
||||||
Stop the USB Device stack. |
|
||||||
|
|
||||||
#### `public inline static void `[`udc_attach`](#group__udc__group_1ga2e71c4c6090543bc3bab06e710e2ee6b)`(void)` {#group__udc__group_1ga2e71c4c6090543bc3bab06e710e2ee6b} |
|
||||||
|
|
||||||
Attach device to the bus when possible. |
|
||||||
|
|
||||||
If a VBus control is included in driver, then it will attach device when an acceptable Vbus level from the host is detected. |
|
||||||
|
|
||||||
#### `public inline static void `[`udc_detach`](#group__udc__group_1ga702d387f5ebfc2e0ab41667eb7644dda)`(void)` {#group__udc__group_1ga702d387f5ebfc2e0ab41667eb7644dda} |
|
||||||
|
|
||||||
Detaches the device from the bus. |
|
||||||
|
|
||||||
The driver must remove pull-up on USB line D- or D+. |
|
||||||
|
|
||||||
#### `public inline void `[`udc_remotewakeup`](#group__udc__group_1ga52c0439e5f6e471a9570471f00476260)`(void)` {#group__udc__group_1ga52c0439e5f6e471a9570471f00476260} |
|
||||||
|
|
||||||
The USB driver sends a resume signal called *"Upstream Resume"* This is authorized only when the remote wakeup feature is enabled by host. |
|
||||||
|
|
||||||
#### `public `[`usb_iface_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__iface__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * `[`udc_get_interface_desc`](#group__udc__group_1gadb2a0f5ad1e834d4d7e7777f901d64d2)`(void)` {#group__udc__group_1gadb2a0f5ad1e834d4d7e7777f901d64d2} |
|
||||||
|
|
||||||
Returns a pointer on the current interface descriptor. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
pointer on the current interface descriptor. |
|
||||||
|
|
@ -1,267 +0,0 @@ |
|||||||
# group `udc_group_interne` {#group__udc__group__interne} |
|
||||||
|
|
||||||
Internal implementation |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public `[`usb_iface_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__iface__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * `[`udc_get_interface_desc`](#group__udc__group__interne_1gadb2a0f5ad1e834d4d7e7777f901d64d2)`(void)` | Returns a pointer on the current interface descriptor. |
|
||||||
`public static `[`usb_conf_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__conf__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * `[`udc_get_eof_conf`](#group__udc__group__interne_1ga3442594fd7435c3803460847014c8970)`(void)` | Returns a value to check the end of USB Configuration descriptor. |
|
||||||
`public static `[`usb_conf_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__conf__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * `[`udc_next_desc_in_iface`](#group__udc__group__interne_1ga5b377861e784ec69c3e841643169a981)`(`[`usb_conf_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__conf__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * desc,uint8_t desc_id)` | Search specific descriptor in global interface descriptor. |
|
||||||
`public static bool `[`udc_update_iface_desc`](#group__udc__group__interne_1gab6a52be155f35da55d33d3474f06cc47)`(uint8_t iface_num,uint8_t setting_num)` | Search an interface descriptor This routine updates the internal pointer udc_ptr_iface. |
|
||||||
`public static bool `[`udc_iface_disable`](#group__udc__group__interne_1ga4d8c4886411e5f90adaac8bff065c610)`(uint8_t iface_num)` | Disables an usb device interface (UDI) This routine call the UDI corresponding to interface number. |
|
||||||
`public static bool `[`udc_iface_enable`](#group__udc__group__interne_1gab7d44215050fc758b44c86dc88a16264)`(uint8_t iface_num,uint8_t setting_num)` | Enables an usb device interface (UDI) This routine calls the UDI corresponding to the interface and setting number. |
|
||||||
`public void `[`udc_start`](#group__udc__group__interne_1gadf4e193509cd03ab6333d62629ea51e7)`(void)` | Start the USB Device stack. |
|
||||||
`public void `[`udc_stop`](#group__udc__group__interne_1gae2264dd91b24db9d4bb23fb1a2014972)`(void)` | Stop the USB Device stack. |
|
||||||
`public void `[`udc_reset`](#group__udc__group__interne_1ga11a32ff7928ba06d3b59e95e0a2b7a92)`(void)` | Reset the current configuration of the USB device, This routines can be called by UDD when a RESET on the USB line occurs. |
|
||||||
`public void `[`udc_sof_notify`](#group__udc__group__interne_1ga4afae313045f44b5eb4c60957ab8ef4e)`(void)` | To signal that a SOF is occurred. |
|
||||||
`public static bool `[`udc_req_std_dev_get_status`](#group__udc__group__interne_1gad6531ffd8e25d5b7492a7a7f4f89ea3f)`(void)` | Standard device request to get device status. |
|
||||||
`public static bool `[`udc_req_std_ep_get_status`](#group__udc__group__interne_1ga97951f0c157b56a0bdb2c1ee01ef28c7)`(void)` | Standard endpoint request to get endpoint status. |
|
||||||
`public static bool `[`udc_req_std_dev_clear_feature`](#group__udc__group__interne_1gace4de90bb4ef13b7aede71038a5e1dcb)`(void)` | Standard device request to change device status. |
|
||||||
`public static bool `[`udc_req_std_ep_clear_feature`](#group__udc__group__interne_1ga59d4bc22153641a20eb48f8407e9c099)`(void)` | Standard endpoint request to clear endpoint feature. |
|
||||||
`public static bool `[`udc_req_std_dev_set_feature`](#group__udc__group__interne_1gadd42bf8a4178b3e06f78966a6323108d)`(void)` | Standard device request to set a feature. |
|
||||||
`public static bool `[`udc_req_std_ep_set_feature`](#group__udc__group__interne_1ga11f8eef1ab88fe1d029414f039508661)`(void)` | Standard endpoint request to halt an endpoint. |
|
||||||
`public static void `[`udc_valid_address`](#group__udc__group__interne_1ga8b6715772a604a998846a3aa97c042c2)`(void)` | Change the address of device Callback called at the end of request set address. |
|
||||||
`public static bool `[`udc_req_std_dev_set_address`](#group__udc__group__interne_1gaa800b0a860337f155b43b86444f43809)`(void)` | Standard device request to set device address. |
|
||||||
`public static bool `[`udc_req_std_dev_get_str_desc`](#group__udc__group__interne_1gaf13a0b91b1ec15e4aae33a7d5df2be64)`(void)` | Standard device request to get device string descriptor. |
|
||||||
`public static bool `[`udc_req_std_dev_get_descriptor`](#group__udc__group__interne_1gae46c685525dbe2a47ed7acdabda5f094)`(void)` | Standard device request to get descriptors about USB device. |
|
||||||
`public static bool `[`udc_req_std_dev_get_configuration`](#group__udc__group__interne_1gadd826de0797aae1e872f44a6a9ee81da)`(void)` | Standard device request to get configuration number. |
|
||||||
`public static bool `[`udc_req_std_dev_set_configuration`](#group__udc__group__interne_1ga0da31a19fcd81e03a9b0d6ba17a2cdc4)`(void)` | Standard device request to enable a configuration. |
|
||||||
`public static bool `[`udc_req_std_iface_get_setting`](#group__udc__group__interne_1gac9f53c587375a24ac6b63206d650f36c)`(void)` | Standard interface request to get the alternate setting number of an interface. |
|
||||||
`public static bool `[`udc_req_std_iface_set_setting`](#group__udc__group__interne_1gad06f93d41064705e7f6fd992fef1230f)`(void)` | Standard interface request to set an alternate setting of an interface. |
|
||||||
`public static bool `[`udc_reqstd`](#group__udc__group__interne_1gac82ad471b5bfa644309f98815757c867)`(void)` | Main routine to manage the standard USB SETUP request. |
|
||||||
`public static bool `[`udc_req_iface`](#group__udc__group__interne_1ga920a557a9121c44513deceb2f9358fc1)`(void)` | Send the SETUP interface request to UDI. |
|
||||||
`public static bool `[`udc_req_ep`](#group__udc__group__interne_1ga640a2df7bb1c1fbed895286a8513663c)`(void)` | Send the SETUP interface request to UDI. |
|
||||||
`public bool `[`udc_process_setup`](#group__udc__group__interne_1ga58c2916d7984e0e5b2143cadf4af6080)`(void)` | Main routine to manage the USB SETUP request. |
|
||||||
`struct `[`udc_string_desc_t`](#structudc__string__desc__t) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public `[`usb_iface_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__iface__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * `[`udc_get_interface_desc`](#group__udc__group__interne_1gadb2a0f5ad1e834d4d7e7777f901d64d2)`(void)` {#group__udc__group__interne_1gadb2a0f5ad1e834d4d7e7777f901d64d2} |
|
||||||
|
|
||||||
Returns a pointer on the current interface descriptor. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
pointer on the current interface descriptor. |
|
||||||
|
|
||||||
#### `public static `[`usb_conf_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__conf__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * `[`udc_get_eof_conf`](#group__udc__group__interne_1ga3442594fd7435c3803460847014c8970)`(void)` {#group__udc__group__interne_1ga3442594fd7435c3803460847014c8970} |
|
||||||
|
|
||||||
Returns a value to check the end of USB Configuration descriptor. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
address after the last byte of USB Configuration descriptor |
|
||||||
|
|
||||||
#### `public static `[`usb_conf_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__conf__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * `[`udc_next_desc_in_iface`](#group__udc__group__interne_1ga5b377861e784ec69c3e841643169a981)`(`[`usb_conf_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__conf__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * desc,uint8_t desc_id)` {#group__udc__group__interne_1ga5b377861e784ec69c3e841643169a981} |
|
||||||
|
|
||||||
Search specific descriptor in global interface descriptor. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `desc` Address of interface descriptor or previous specific descriptor found |
|
||||||
|
|
||||||
* `desc_id` Descriptor ID to search |
|
||||||
|
|
||||||
#### Returns |
|
||||||
address of specific descriptor found |
|
||||||
|
|
||||||
#### Returns |
|
||||||
NULL if it is the end of global interface descriptor |
|
||||||
|
|
||||||
#### `public static bool `[`udc_update_iface_desc`](#group__udc__group__interne_1gab6a52be155f35da55d33d3474f06cc47)`(uint8_t iface_num,uint8_t setting_num)` {#group__udc__group__interne_1gab6a52be155f35da55d33d3474f06cc47} |
|
||||||
|
|
||||||
Search an interface descriptor This routine updates the internal pointer udc_ptr_iface. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `iface_num` Interface number to find in Configuration Descriptor |
|
||||||
|
|
||||||
* `setting_num` Setting number of interface to find |
|
||||||
|
|
||||||
#### Returns |
|
||||||
1 if found or 0 if not found |
|
||||||
|
|
||||||
#### `public static bool `[`udc_iface_disable`](#group__udc__group__interne_1ga4d8c4886411e5f90adaac8bff065c610)`(uint8_t iface_num)` {#group__udc__group__interne_1ga4d8c4886411e5f90adaac8bff065c610} |
|
||||||
|
|
||||||
Disables an usb device interface (UDI) This routine call the UDI corresponding to interface number. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `iface_num` Interface number to disable |
|
||||||
|
|
||||||
#### Returns |
|
||||||
1 if it is done or 0 if interface is not found |
|
||||||
|
|
||||||
#### `public static bool `[`udc_iface_enable`](#group__udc__group__interne_1gab7d44215050fc758b44c86dc88a16264)`(uint8_t iface_num,uint8_t setting_num)` {#group__udc__group__interne_1gab7d44215050fc758b44c86dc88a16264} |
|
||||||
|
|
||||||
Enables an usb device interface (UDI) This routine calls the UDI corresponding to the interface and setting number. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `iface_num` Interface number to enable |
|
||||||
|
|
||||||
* `setting_num` Setting number to enable |
|
||||||
|
|
||||||
#### Returns |
|
||||||
1 if it is done or 0 if interface is not found |
|
||||||
|
|
||||||
#### `public void `[`udc_start`](#group__udc__group__interne_1gadf4e193509cd03ab6333d62629ea51e7)`(void)` {#group__udc__group__interne_1gadf4e193509cd03ab6333d62629ea51e7} |
|
||||||
|
|
||||||
Start the USB Device stack. |
|
||||||
|
|
||||||
#### `public void `[`udc_stop`](#group__udc__group__interne_1gae2264dd91b24db9d4bb23fb1a2014972)`(void)` {#group__udc__group__interne_1gae2264dd91b24db9d4bb23fb1a2014972} |
|
||||||
|
|
||||||
Stop the USB Device stack. |
|
||||||
|
|
||||||
#### `public void `[`udc_reset`](#group__udc__group__interne_1ga11a32ff7928ba06d3b59e95e0a2b7a92)`(void)` {#group__udc__group__interne_1ga11a32ff7928ba06d3b59e95e0a2b7a92} |
|
||||||
|
|
||||||
Reset the current configuration of the USB device, This routines can be called by UDD when a RESET on the USB line occurs. |
|
||||||
|
|
||||||
Reset the UDC. |
|
||||||
|
|
||||||
#### `public void `[`udc_sof_notify`](#group__udc__group__interne_1ga4afae313045f44b5eb4c60957ab8ef4e)`(void)` {#group__udc__group__interne_1ga4afae313045f44b5eb4c60957ab8ef4e} |
|
||||||
|
|
||||||
To signal that a SOF is occurred. |
|
||||||
|
|
||||||
The UDC must send the signal to all UDIs enabled |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_dev_get_status`](#group__udc__group__interne_1gad6531ffd8e25d5b7492a7a7f4f89ea3f)`(void)` {#group__udc__group__interne_1gad6531ffd8e25d5b7492a7a7f4f89ea3f} |
|
||||||
|
|
||||||
Standard device request to get device status. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_ep_get_status`](#group__udc__group__interne_1ga97951f0c157b56a0bdb2c1ee01ef28c7)`(void)` {#group__udc__group__interne_1ga97951f0c157b56a0bdb2c1ee01ef28c7} |
|
||||||
|
|
||||||
Standard endpoint request to get endpoint status. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_dev_clear_feature`](#group__udc__group__interne_1gace4de90bb4ef13b7aede71038a5e1dcb)`(void)` {#group__udc__group__interne_1gace4de90bb4ef13b7aede71038a5e1dcb} |
|
||||||
|
|
||||||
Standard device request to change device status. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_ep_clear_feature`](#group__udc__group__interne_1ga59d4bc22153641a20eb48f8407e9c099)`(void)` {#group__udc__group__interne_1ga59d4bc22153641a20eb48f8407e9c099} |
|
||||||
|
|
||||||
Standard endpoint request to clear endpoint feature. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_dev_set_feature`](#group__udc__group__interne_1gadd42bf8a4178b3e06f78966a6323108d)`(void)` {#group__udc__group__interne_1gadd42bf8a4178b3e06f78966a6323108d} |
|
||||||
|
|
||||||
Standard device request to set a feature. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_ep_set_feature`](#group__udc__group__interne_1ga11f8eef1ab88fe1d029414f039508661)`(void)` {#group__udc__group__interne_1ga11f8eef1ab88fe1d029414f039508661} |
|
||||||
|
|
||||||
Standard endpoint request to halt an endpoint. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static void `[`udc_valid_address`](#group__udc__group__interne_1ga8b6715772a604a998846a3aa97c042c2)`(void)` {#group__udc__group__interne_1ga8b6715772a604a998846a3aa97c042c2} |
|
||||||
|
|
||||||
Change the address of device Callback called at the end of request set address. |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_dev_set_address`](#group__udc__group__interne_1gaa800b0a860337f155b43b86444f43809)`(void)` {#group__udc__group__interne_1gaa800b0a860337f155b43b86444f43809} |
|
||||||
|
|
||||||
Standard device request to set device address. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_dev_get_str_desc`](#group__udc__group__interne_1gaf13a0b91b1ec15e4aae33a7d5df2be64)`(void)` {#group__udc__group__interne_1gaf13a0b91b1ec15e4aae33a7d5df2be64} |
|
||||||
|
|
||||||
Standard device request to get device string descriptor. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_dev_get_descriptor`](#group__udc__group__interne_1gae46c685525dbe2a47ed7acdabda5f094)`(void)` {#group__udc__group__interne_1gae46c685525dbe2a47ed7acdabda5f094} |
|
||||||
|
|
||||||
Standard device request to get descriptors about USB device. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_dev_get_configuration`](#group__udc__group__interne_1gadd826de0797aae1e872f44a6a9ee81da)`(void)` {#group__udc__group__interne_1gadd826de0797aae1e872f44a6a9ee81da} |
|
||||||
|
|
||||||
Standard device request to get configuration number. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_dev_set_configuration`](#group__udc__group__interne_1ga0da31a19fcd81e03a9b0d6ba17a2cdc4)`(void)` {#group__udc__group__interne_1ga0da31a19fcd81e03a9b0d6ba17a2cdc4} |
|
||||||
|
|
||||||
Standard device request to enable a configuration. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_iface_get_setting`](#group__udc__group__interne_1gac9f53c587375a24ac6b63206d650f36c)`(void)` {#group__udc__group__interne_1gac9f53c587375a24ac6b63206d650f36c} |
|
||||||
|
|
||||||
Standard interface request to get the alternate setting number of an interface. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_std_iface_set_setting`](#group__udc__group__interne_1gad06f93d41064705e7f6fd992fef1230f)`(void)` {#group__udc__group__interne_1gad06f93d41064705e7f6fd992fef1230f} |
|
||||||
|
|
||||||
Standard interface request to set an alternate setting of an interface. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if success |
|
||||||
|
|
||||||
#### `public static bool `[`udc_reqstd`](#group__udc__group__interne_1gac82ad471b5bfa644309f98815757c867)`(void)` {#group__udc__group__interne_1gac82ad471b5bfa644309f98815757c867} |
|
||||||
|
|
||||||
Main routine to manage the standard USB SETUP request. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if the request is supported |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_iface`](#group__udc__group__interne_1ga920a557a9121c44513deceb2f9358fc1)`(void)` {#group__udc__group__interne_1ga920a557a9121c44513deceb2f9358fc1} |
|
||||||
|
|
||||||
Send the SETUP interface request to UDI. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if the request is supported |
|
||||||
|
|
||||||
#### `public static bool `[`udc_req_ep`](#group__udc__group__interne_1ga640a2df7bb1c1fbed895286a8513663c)`(void)` {#group__udc__group__interne_1ga640a2df7bb1c1fbed895286a8513663c} |
|
||||||
|
|
||||||
Send the SETUP interface request to UDI. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if the request is supported |
|
||||||
|
|
||||||
#### `public bool `[`udc_process_setup`](#group__udc__group__interne_1ga58c2916d7984e0e5b2143cadf4af6080)`(void)` {#group__udc__group__interne_1ga58c2916d7984e0e5b2143cadf4af6080} |
|
||||||
|
|
||||||
Main routine to manage the USB SETUP request. |
|
||||||
|
|
||||||
Decodes and manages a setup request. |
|
||||||
|
|
||||||
This function parses a USB SETUP request and submits an appropriate response back to the host or, in the case of SETUP OUT requests with data, sets up a buffer for receiving the data payload. |
|
||||||
|
|
||||||
The main standard requests defined by the USB 2.0 standard are handled internally. The interface requests are sent to UDI, and the specific request sent to a specific application callback. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true if the request is supported, else the request is stalled by UDD |
|
||||||
|
|
||||||
# struct `udc_string_desc_t` {#structudc__string__desc__t} |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public `[`usb_str_desc_t`](.build/docs/internals_usb_protocol_group.md#structusb__str__desc__t)` `[`header`](#structudc__string__desc__t_1ae96103b577725a05178dac3136d1a859) | |
|
||||||
`public le16_t `[`string`](#structudc__string__desc__t_1a9c4b5919e84bf0e87ea42a502f4dd74c) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public `[`usb_str_desc_t`](.build/docs/internals_usb_protocol_group.md#structusb__str__desc__t)` `[`header`](#structudc__string__desc__t_1ae96103b577725a05178dac3136d1a859) {#structudc__string__desc__t_1ae96103b577725a05178dac3136d1a859} |
|
||||||
|
|
||||||
#### `public le16_t `[`string`](#structudc__string__desc__t_1a9c4b5919e84bf0e87ea42a502f4dd74c) {#structudc__string__desc__t_1a9c4b5919e84bf0e87ea42a502f4dd74c} |
|
||||||
|
|
@ -1,146 +0,0 @@ |
|||||||
# group `udd_group` {#group__udd__group} |
|
||||||
|
|
||||||
The UDD driver provides a low-level abstraction of the device controller hardware. Most events coming from the hardware such as interrupts, which may cause the UDD to call into the UDC and UDI. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`define `[`Udd_setup_is_in`](#group__udd__group_1gaffd9b7cf165cd149868373fa12595d12) | Return true if the setup request *udd_g_ctrlreq* indicates IN data transfer. |
|
||||||
`define `[`Udd_setup_is_out`](#group__udd__group_1gaf67b7c8de30fdc881b567385f2345926) | Return true if the setup request *udd_g_ctrlreq* indicates OUT data transfer. |
|
||||||
`define `[`Udd_setup_type`](#group__udd__group_1ga85dc2b7b6c270e8dd8323fa4779a7ca2) | Return the type of the SETUP request *udd_g_ctrlreq*. |
|
||||||
`define `[`Udd_setup_recipient`](#group__udd__group_1gac963bb7b8a965c2fec45a71c9faca6f5) | Return the recipient of the SETUP request *udd_g_ctrlreq*. |
|
||||||
`enum `[`udd_ep_status_t`](#group__udd__group_1gac0f77f5a0e085af1242b48fd1054959a) | Endpoint transfer status Returned in parameters of callback register via udd_ep_run routine. |
|
||||||
`public bool `[`udd_include_vbus_monitoring`](#group__udd__group_1gaa4cac8c35ae056e26cf4ab5b426bbe09)`(void)` | Authorizes the VBUS event. |
|
||||||
`public void `[`udd_enable`](#group__udd__group_1ga9792d1899ae058e3984d6a622fe2ad42)`(void)` | Enables the USB Device mode. |
|
||||||
`public void `[`udd_disable`](#group__udd__group_1gab283432057b934e9d73ac9282d9b0f11)`(void)` | Disables the USB Device mode. |
|
||||||
`public void `[`udd_attach`](#group__udd__group_1ga7a7c0d9236c922c2af33c6702565a99f)`(void)` | Attach device to the bus when possible. |
|
||||||
`public void `[`udd_detach`](#group__udd__group_1ga03e59eaa264f1dbe5a52559311d0520e)`(void)` | Detaches the device from the bus. |
|
||||||
`public bool `[`udd_is_high_speed`](#group__udd__group_1ga85f403ddb78776b1ba014dafd3ffec2c)`(void)` | Test whether the USB Device Controller is running at high speed or not. |
|
||||||
`public void `[`udd_set_address`](#group__udd__group_1ga05da762e0faf9d478e532de40afa71f6)`(uint8_t address)` | Changes the USB address of device. |
|
||||||
`public uint8_t `[`udd_getaddress`](#group__udd__group_1gaebd36638d482f6df00a8aff006ef2246)`(void)` | Returns the USB address of device. |
|
||||||
`public uint16_t `[`udd_get_frame_number`](#group__udd__group_1ga96dc248cc05e07ffe2cf21e4d7465320)`(void)` | Returns the current start of frame number. |
|
||||||
`public uint16_t `[`udd_get_micro_frame_number`](#group__udd__group_1ga63047eec59b8e8798ca1d3366472d82b)`(void)` | Returns the current micro start of frame number. |
|
||||||
`public void `[`udd_send_remotewakeup`](#group__udd__group_1gac447212e04789282dabee65a23fe2a08)`(void)` | The USB driver sends a resume signal called Upstream Resume. |
|
||||||
`public void `[`udd_set_setup_payload`](#group__udd__group_1ga017ef5ea7626be258c24d345218976f9)`(uint8_t * payload,uint16_t payload_size)` | Load setup payload. |
|
||||||
`struct `[`udd_ctrl_request_t`](#structudd__ctrl__request__t) | Global variable to give and record information of the setup request management. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `define `[`Udd_setup_is_in`](#group__udd__group_1gaffd9b7cf165cd149868373fa12595d12) {#group__udd__group_1gaffd9b7cf165cd149868373fa12595d12} |
|
||||||
|
|
||||||
Return true if the setup request *udd_g_ctrlreq* indicates IN data transfer. |
|
||||||
|
|
||||||
#### `define `[`Udd_setup_is_out`](#group__udd__group_1gaf67b7c8de30fdc881b567385f2345926) {#group__udd__group_1gaf67b7c8de30fdc881b567385f2345926} |
|
||||||
|
|
||||||
Return true if the setup request *udd_g_ctrlreq* indicates OUT data transfer. |
|
||||||
|
|
||||||
#### `define `[`Udd_setup_type`](#group__udd__group_1ga85dc2b7b6c270e8dd8323fa4779a7ca2) {#group__udd__group_1ga85dc2b7b6c270e8dd8323fa4779a7ca2} |
|
||||||
|
|
||||||
Return the type of the SETUP request *udd_g_ctrlreq*. |
|
||||||
|
|
||||||
**See also**: usb_reqtype. |
|
||||||
|
|
||||||
#### `define `[`Udd_setup_recipient`](#group__udd__group_1gac963bb7b8a965c2fec45a71c9faca6f5) {#group__udd__group_1gac963bb7b8a965c2fec45a71c9faca6f5} |
|
||||||
|
|
||||||
Return the recipient of the SETUP request *udd_g_ctrlreq*. |
|
||||||
|
|
||||||
**See also**: usb_recipient |
|
||||||
|
|
||||||
#### `enum `[`udd_ep_status_t`](#group__udd__group_1gac0f77f5a0e085af1242b48fd1054959a) {#group__udd__group_1gac0f77f5a0e085af1242b48fd1054959a} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
UDD_EP_TRANSFER_OK | |
|
||||||
UDD_EP_TRANSFER_ABORT | |
|
||||||
|
|
||||||
Endpoint transfer status Returned in parameters of callback register via udd_ep_run routine. |
|
||||||
|
|
||||||
#### `public bool `[`udd_include_vbus_monitoring`](#group__udd__group_1gaa4cac8c35ae056e26cf4ab5b426bbe09)`(void)` {#group__udd__group_1gaa4cac8c35ae056e26cf4ab5b426bbe09} |
|
||||||
|
|
||||||
Authorizes the VBUS event. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
true, if the VBUS monitoring is possible. |
|
||||||
|
|
||||||
#### `public void `[`udd_enable`](#group__udd__group_1ga9792d1899ae058e3984d6a622fe2ad42)`(void)` {#group__udd__group_1ga9792d1899ae058e3984d6a622fe2ad42} |
|
||||||
|
|
||||||
Enables the USB Device mode. |
|
||||||
|
|
||||||
#### `public void `[`udd_disable`](#group__udd__group_1gab283432057b934e9d73ac9282d9b0f11)`(void)` {#group__udd__group_1gab283432057b934e9d73ac9282d9b0f11} |
|
||||||
|
|
||||||
Disables the USB Device mode. |
|
||||||
|
|
||||||
#### `public void `[`udd_attach`](#group__udd__group_1ga7a7c0d9236c922c2af33c6702565a99f)`(void)` {#group__udd__group_1ga7a7c0d9236c922c2af33c6702565a99f} |
|
||||||
|
|
||||||
Attach device to the bus when possible. |
|
||||||
|
|
||||||
If a VBus control is included in driver, then it will attach device when an acceptable Vbus level from the host is detected. |
|
||||||
|
|
||||||
#### `public void `[`udd_detach`](#group__udd__group_1ga03e59eaa264f1dbe5a52559311d0520e)`(void)` {#group__udd__group_1ga03e59eaa264f1dbe5a52559311d0520e} |
|
||||||
|
|
||||||
Detaches the device from the bus. |
|
||||||
|
|
||||||
The driver must remove pull-up on USB line D- or D+. |
|
||||||
|
|
||||||
#### `public bool `[`udd_is_high_speed`](#group__udd__group_1ga85f403ddb78776b1ba014dafd3ffec2c)`(void)` {#group__udd__group_1ga85f403ddb78776b1ba014dafd3ffec2c} |
|
||||||
|
|
||||||
Test whether the USB Device Controller is running at high speed or not. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
`true` if the Device is running at high speed mode, otherwise `false`. |
|
||||||
|
|
||||||
#### `public void `[`udd_set_address`](#group__udd__group_1ga05da762e0faf9d478e532de40afa71f6)`(uint8_t address)` {#group__udd__group_1ga05da762e0faf9d478e532de40afa71f6} |
|
||||||
|
|
||||||
Changes the USB address of device. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `address` New USB address |
|
||||||
|
|
||||||
#### `public uint8_t `[`udd_getaddress`](#group__udd__group_1gaebd36638d482f6df00a8aff006ef2246)`(void)` {#group__udd__group_1gaebd36638d482f6df00a8aff006ef2246} |
|
||||||
|
|
||||||
Returns the USB address of device. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
USB address |
|
||||||
|
|
||||||
#### `public uint16_t `[`udd_get_frame_number`](#group__udd__group_1ga96dc248cc05e07ffe2cf21e4d7465320)`(void)` {#group__udd__group_1ga96dc248cc05e07ffe2cf21e4d7465320} |
|
||||||
|
|
||||||
Returns the current start of frame number. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
current start of frame number. |
|
||||||
|
|
||||||
#### `public uint16_t `[`udd_get_micro_frame_number`](#group__udd__group_1ga63047eec59b8e8798ca1d3366472d82b)`(void)` {#group__udd__group_1ga63047eec59b8e8798ca1d3366472d82b} |
|
||||||
|
|
||||||
Returns the current micro start of frame number. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
current micro start of frame number required in high speed mode. |
|
||||||
|
|
||||||
#### `public void `[`udd_send_remotewakeup`](#group__udd__group_1gac447212e04789282dabee65a23fe2a08)`(void)` {#group__udd__group_1gac447212e04789282dabee65a23fe2a08} |
|
||||||
|
|
||||||
The USB driver sends a resume signal called Upstream Resume. |
|
||||||
|
|
||||||
#### `public void `[`udd_set_setup_payload`](#group__udd__group_1ga017ef5ea7626be258c24d345218976f9)`(uint8_t * payload,uint16_t payload_size)` {#group__udd__group_1ga017ef5ea7626be258c24d345218976f9} |
|
||||||
|
|
||||||
Load setup payload. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `payload` Pointer on payload |
|
||||||
|
|
||||||
* `payload_size` Size of payload |
|
||||||
|
|
||||||
# struct `udd_ctrl_request_t` {#structudd__ctrl__request__t} |
|
||||||
|
|
||||||
Global variable to give and record information of the setup request management. |
|
||||||
|
|
||||||
This global variable allows to decode and response a setup request. It can be updated by [udc_process_setup()](.build/docs/internals_undefined.md#group__udc__group__interne_1ga58c2916d7984e0e5b2143cadf4af6080) from UDC or *setup() from UDIs. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
@ -1,25 +0,0 @@ |
|||||||
# group `udi_group` {#group__udi__group} |
|
||||||
|
|
||||||
The UDI provides a common API for all classes, and this is used by UDC for the main control of USB Device interface. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`struct `[`udi_api_t`](#structudi__api__t) | UDI API. |
|
||||||
|
|
||||||
# struct `udi_api_t` {#structudi__api__t} |
|
||||||
|
|
||||||
UDI API. |
|
||||||
|
|
||||||
The callbacks within this structure are called only by USB Device Controller (UDC) |
|
||||||
|
|
||||||
The [udc_get_interface_desc()](.build/docs/internals_undefined.md#group__udc__group__interne_1gadb2a0f5ad1e834d4d7e7777f901d64d2) can be use by UDI to know the interface descriptor selected by UDC. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
@ -1,28 +0,0 @@ |
|||||||
# group `udi_hid_group` {#group__udi__hid__group} |
|
||||||
|
|
||||||
Common library for all Human Interface Device (HID) implementation. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public bool `[`udi_hid_setup`](#group__udi__hid__group_1ga9594c21fbb713dabebed1c970664680b)`(uint8_t * rate,uint8_t * protocol,uint8_t * report_desc,bool(*)(void) setup_report)` | Decode HID setup request. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public bool `[`udi_hid_setup`](#group__udi__hid__group_1ga9594c21fbb713dabebed1c970664680b)`(uint8_t * rate,uint8_t * protocol,uint8_t * report_desc,bool(*)(void) setup_report)` {#group__udi__hid__group_1ga9594c21fbb713dabebed1c970664680b} |
|
||||||
|
|
||||||
Decode HID setup request. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `rate` Pointer on rate of current HID interface |
|
||||||
|
|
||||||
* `protocol` Pointer on protocol of current HID interface |
|
||||||
|
|
||||||
* `report_desc` Pointer on report descriptor of current HID interface |
|
||||||
|
|
||||||
* `set_report` Pointer on set_report callback of current HID interface |
|
||||||
|
|
||||||
#### Returns |
|
||||||
`1` if function was successfully done, otherwise `0`. |
|
||||||
|
|
@ -1,34 +0,0 @@ |
|||||||
# group `udi_hid_group_internal` {#group__udi__hid__group__internal} |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public static bool `[`udi_hid_reqstdifaceget_descriptor`](#group__udi__hid__group__internal_1ga0ecbd5a80812ac07a1ee3f890a959640)`(uint8_t * report_desc)` | Send the specific descriptors requested by SETUP request. |
|
||||||
`public bool `[`udi_hid_setup`](#group__udi__hid__group__internal_1ga9594c21fbb713dabebed1c970664680b)`(uint8_t * rate,uint8_t * protocol,uint8_t * report_desc,bool(*)(void) setup_report)` | Decode HID setup request. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public static bool `[`udi_hid_reqstdifaceget_descriptor`](#group__udi__hid__group__internal_1ga0ecbd5a80812ac07a1ee3f890a959640)`(uint8_t * report_desc)` {#group__udi__hid__group__internal_1ga0ecbd5a80812ac07a1ee3f890a959640} |
|
||||||
|
|
||||||
Send the specific descriptors requested by SETUP request. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `true` if the descriptor is supported |
|
||||||
|
|
||||||
#### `public bool `[`udi_hid_setup`](#group__udi__hid__group__internal_1ga9594c21fbb713dabebed1c970664680b)`(uint8_t * rate,uint8_t * protocol,uint8_t * report_desc,bool(*)(void) setup_report)` {#group__udi__hid__group__internal_1ga9594c21fbb713dabebed1c970664680b} |
|
||||||
|
|
||||||
Decode HID setup request. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `rate` Pointer on rate of current HID interface |
|
||||||
|
|
||||||
* `protocol` Pointer on protocol of current HID interface |
|
||||||
|
|
||||||
* `report_desc` Pointer on report descriptor of current HID interface |
|
||||||
|
|
||||||
* `set_report` Pointer on set_report callback of current HID interface |
|
||||||
|
|
||||||
#### Returns |
|
||||||
`1` if function was successfully done, otherwise `0`. |
|
||||||
|
|
@ -1,11 +0,0 @@ |
|||||||
# group `udi_hid_keyboard_group_single_desc` {#group__udi__hid__keyboard__group__single__desc} |
|
||||||
|
|
||||||
The following structures provide the USB device descriptors required for USB Device with a single interface HID keyboard. |
|
||||||
|
|
||||||
It is ready to use and do not require more definition. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
|
|
@ -1,9 +0,0 @@ |
|||||||
# group `usb_atmel_ids_group` {#group__usb__atmel__ids__group} |
|
||||||
|
|
||||||
This module defines Atmel PID and VIDs constants. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
|
|
@ -1,27 +0,0 @@ |
|||||||
# group `usb_device_group` {#group__usb__device__group} |
|
||||||
|
|
||||||
This module includes USB Stack Device implementation. The stack is divided in three parts: |
|
||||||
|
|
||||||
* USB Device Controller (UDC) provides USB chapter 9 compliance |
|
||||||
|
|
||||||
* USB Device Interface (UDI) provides USB Class compliance |
|
||||||
|
|
||||||
* USB Device Driver (UDD) provides USB Driver for each Atmel MCU |
|
||||||
|
|
||||||
Many USB Device applications can be implemented on Atmel MCU. Atmel provides many application notes for different applications: |
|
||||||
|
|
||||||
* AVR4900, provides general information about Device Stack |
|
||||||
|
|
||||||
* AVR4901, explains how to create a new class |
|
||||||
|
|
||||||
* AVR4902, explains how to create a composite device |
|
||||||
|
|
||||||
* AVR49xx, all device classes provided in ASF have an application note |
|
||||||
|
|
||||||
A basic USB knowledge is required to understand the USB Device Class application notes (HID,MS,CDC,PHDC,...). Then, to create an USB device with only one class provided by ASF, refer directly to the application note corresponding to this USB class. The USB Device application note for New Class and Composite is dedicated to advanced USB users. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
|
|
@ -1,325 +0,0 @@ |
|||||||
# group `usb_device_udd_group` {#group__usb__device__udd__group} |
|
||||||
|
|
||||||
USB low-level driver for USB device mode |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`define `[`UDC_REMOTEWAKEUP_LPM_ENABLE`](#group__usb__device__udd__group_1gaad02b98c5c4188ff50fd72c81e6bfa20) | |
|
||||||
`define `[`UDC_REMOTEWAKEUP_LPM_DISABLE`](#group__usb__device__udd__group_1gabd679a48d3828303b04b4e56b5e92481) | |
|
||||||
`define `[`UDC_SUSPEND_LPM_EVENT`](#group__usb__device__udd__group_1gaad464bdb9c5a422a2f337b6367114db6) | |
|
||||||
`define `[`dbg_print`](#group__usb__device__udd__group_1gac0876bf5bac7dfffd0ee0b003cdc76ef) | |
|
||||||
`define `[`UDD_ENDPOINT_MAX_TRANS`](#group__usb__device__udd__group_1ga9b73a2cd4488b39038d49d865e03fe0e) | Maximum size of a transfer in multi-packet mode |
|
||||||
`public static udd_ep_job_t * `[`udd_ep_get_job`](#group__usb__device__udd__group_1ga44d7180f54df872da50d8d04918fc5c7)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` | Get the detailed job by endpoint number. |
|
||||||
`public static void `[`udd_ep_trans_in_next`](#group__usb__device__udd__group_1ga7cd1ac3f0e6071afa036e27c5bd4d33c)`(void * pointer)` | Endpoint IN process, continue to send packets or zero length packet. |
|
||||||
`public static void `[`udd_ep_trans_out_next`](#group__usb__device__udd__group_1ga2c2140346e2f4ef3b07e36d2abf2de5e)`(void * pointer)` | Endpoint OUT process, continue to receive packets or zero length packet. |
|
||||||
`public static void `[`udd_ep_transfer_process`](#group__usb__device__udd__group_1gaa3607835799fb01db3d38bcbc87463fb)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` | Endpoint Transfer Complete callback function, to do the next transfer depends on the direction(IN or OUT) |
|
||||||
`public void `[`udd_ep_abort`](#group__usb__device__udd__group_1gaacd4ece19accac669506b615916efe2f)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` | Aborts transfer on going on endpoint. |
|
||||||
`public bool `[`udd_is_high_speed`](#group__usb__device__udd__group_1ga85f403ddb78776b1ba014dafd3ffec2c)`(void)` | Test whether the USB Device Controller is running at high speed or not. |
|
||||||
`public uint16_t `[`udd_get_frame_number`](#group__usb__device__udd__group_1ga96dc248cc05e07ffe2cf21e4d7465320)`(void)` | Returns the current start of frame number. |
|
||||||
`public uint16_t `[`udd_get_micro_frame_number`](#group__usb__device__udd__group_1ga63047eec59b8e8798ca1d3366472d82b)`(void)` | Returns the current micro start of frame number. |
|
||||||
`public void `[`udd_ep_free`](#group__usb__device__udd__group_1ga12c064720e08b9151e2a47f79d986c29)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` | Disables an endpoint. |
|
||||||
`public bool `[`udd_ep_alloc`](#group__usb__device__udd__group_1gaf87db391732b278915079b43ce20a4c1)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep,uint8_t bmAttributes,uint16_t MaxEndpointSize)` | Configures and enables an endpoint. |
|
||||||
`public bool `[`udd_ep_is_halted`](#group__usb__device__udd__group_1ga2d531ac8c1e142185c6ed6eaeb2737c0)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` | Check if the endpoint *ep* is halted. |
|
||||||
`public bool `[`udd_ep_set_halt`](#group__usb__device__udd__group_1ga55dd14b9b00781223e39c2549ffdb61c)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` | Set the halted state of the endpoint *ep*. |
|
||||||
`public bool `[`udd_ep_clear_halt`](#group__usb__device__udd__group_1ga2b89e75674bd590432e9928326d5ef73)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` | Clear the halted state of the endpoint *ep*. |
|
||||||
`public bool `[`udd_ep_wait_stall_clear`](#group__usb__device__udd__group_1ga9dde9a9ac41ffc519cc2e2f93308db1c)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep,`[`udd_callback_halt_cleared_t`](.build/docs/internals_undefined.md#group__udd__group_1ga70b1655bda30b7d03df637a1bb23bdd5)` callback)` | Registers a callback to call when endpoint halt is cleared. |
|
||||||
`public static void `[`udd_ctrl_stall_data`](#group__usb__device__udd__group_1gabf919b71cee71a11e1ea4e64fb9891d1)`(void)` | Control Endpoint stall sending data. |
|
||||||
`public bool `[`udd_ep_run`](#group__usb__device__udd__group_1ga3023b640115dd86dc922fcd79f5b8757)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep,bool b_shortpacket,uint8_t * buf,iram_size_t buf_size,`[`udd_callback_trans_t`](.build/docs/internals_undefined.md#group__udd__group_1ga4e79edfc4d62b203dbc271e80a624917)` callback)` | Allows to receive or send data on an endpoint. |
|
||||||
`public void `[`udd_set_address`](#group__usb__device__udd__group_1ga05da762e0faf9d478e532de40afa71f6)`(uint8_t address)` | Changes the USB address of device. |
|
||||||
`public uint8_t `[`udd_getaddress`](#group__usb__device__udd__group_1gaebd36638d482f6df00a8aff006ef2246)`(void)` | Returns the USB address of device. |
|
||||||
`public void `[`udd_send_remotewakeup`](#group__usb__device__udd__group_1gac447212e04789282dabee65a23fe2a08)`(void)` | The USB driver sends a resume signal called Upstream Resume. |
|
||||||
`public void `[`udd_set_setup_payload`](#group__usb__device__udd__group_1ga017ef5ea7626be258c24d345218976f9)`(uint8_t * payload,uint16_t payload_size)` | Load setup payload. |
|
||||||
`public static void `[`udd_ctrl_fetch_ram`](#group__usb__device__udd__group_1gaf6ffb95ec28493ddaf038642ee995ce6)`(void)` | Control Endpoint translate the data in buffer into Device Request Struct. |
|
||||||
`public static void `[`udd_ctrl_send_zlp_in`](#group__usb__device__udd__group_1gab6a8abd5db8a94d6becc73b2b70dc748)`(void)` | Control Endpoint send out zero length packet. |
|
||||||
`public static void `[`udd_ctrl_in_sent`](#group__usb__device__udd__group_1ga181ffd0cddf5130f55df6df8ca3f916c)`(void)` | Process control endpoint IN transaction. |
|
||||||
`public static void `[`udd_ctrl_out_received`](#group__usb__device__udd__group_1gaa137563d9a7717c634279ad596fbc5fb)`(void * pointer)` | Process control endpoint OUT transaction. |
|
||||||
`public static void `[`_usb_ep0_on_setup`](#group__usb__device__udd__group_1ga2f36d2d5628b8edfaf619bcb2c7de44f)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` | |
|
||||||
`public static void `[`udd_ctrl_underflow`](#group__usb__device__udd__group_1gae49bae7d7d68329b1c050f39c902d08e)`(void * pointer)` | Control Endpoint Process when underflow condition has occurred. |
|
||||||
`public static void `[`udd_ctrl_overflow`](#group__usb__device__udd__group_1ga58ec0c5b490824774f753cc9ff6c1250)`(void * pointer)` | Control Endpoint Process when overflow condition has occurred. |
|
||||||
`public static void `[`_usb_ep0_on_tansfer_fail`](#group__usb__device__udd__group_1ga67ec9c51a13358e3e241b2d10b3b4a05)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` | |
|
||||||
`public static void `[`_usb_ep0_on_tansfer_ok`](#group__usb__device__udd__group_1gabe51608c4f3fb3cb905463758645127c)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` | |
|
||||||
`public static void `[`udd_ctrl_ep_enable`](#group__usb__device__udd__group_1ga16a526f9870d3b670345b98bcfbe166c)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst)` | Enable Control Endpoint. |
|
||||||
`public static void `[`_usb_on_suspend`](#group__usb__device__udd__group_1gaf4c2f4bf0f76bcf873d165f1e960c8e1)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` | |
|
||||||
`public static void `[`_usb_on_sof_notify`](#group__usb__device__udd__group_1gae65a2792570d8aec7e758b3526721086)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` | |
|
||||||
`public static void `[`_usb_on_bus_reset`](#group__usb__device__udd__group_1gaf286144a1b50b68ed2edd38d67e1f4b0)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` | |
|
||||||
`public static void `[`_usb_on_wakeup`](#group__usb__device__udd__group_1ga563d04cd60d478a430261aaa9da5e07a)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` | |
|
||||||
`public void `[`udd_detach`](#group__usb__device__udd__group_1ga03e59eaa264f1dbe5a52559311d0520e)`(void)` | Detaches the device from the bus. |
|
||||||
`public void `[`udd_attach`](#group__usb__device__udd__group_1ga7a7c0d9236c922c2af33c6702565a99f)`(void)` | Attach device to the bus when possible. |
|
||||||
`public void `[`udd_enable`](#group__usb__device__udd__group_1ga9792d1899ae058e3984d6a622fe2ad42)`(void)` | Enables the USB Device mode. |
|
||||||
`public void `[`udd_disable`](#group__usb__device__udd__group_1gab283432057b934e9d73ac9282d9b0f11)`(void)` | Disables the USB Device mode. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `define `[`UDC_REMOTEWAKEUP_LPM_ENABLE`](#group__usb__device__udd__group_1gaad02b98c5c4188ff50fd72c81e6bfa20) {#group__usb__device__udd__group_1gaad02b98c5c4188ff50fd72c81e6bfa20} |
|
||||||
|
|
||||||
#### `define `[`UDC_REMOTEWAKEUP_LPM_DISABLE`](#group__usb__device__udd__group_1gabd679a48d3828303b04b4e56b5e92481) {#group__usb__device__udd__group_1gabd679a48d3828303b04b4e56b5e92481} |
|
||||||
|
|
||||||
#### `define `[`UDC_SUSPEND_LPM_EVENT`](#group__usb__device__udd__group_1gaad464bdb9c5a422a2f337b6367114db6) {#group__usb__device__udd__group_1gaad464bdb9c5a422a2f337b6367114db6} |
|
||||||
|
|
||||||
#### `define `[`dbg_print`](#group__usb__device__udd__group_1gac0876bf5bac7dfffd0ee0b003cdc76ef) {#group__usb__device__udd__group_1gac0876bf5bac7dfffd0ee0b003cdc76ef} |
|
||||||
|
|
||||||
#### `define `[`UDD_ENDPOINT_MAX_TRANS`](#group__usb__device__udd__group_1ga9b73a2cd4488b39038d49d865e03fe0e) {#group__usb__device__udd__group_1ga9b73a2cd4488b39038d49d865e03fe0e} |
|
||||||
|
|
||||||
Maximum size of a transfer in multi-packet mode |
|
||||||
|
|
||||||
#### `public static udd_ep_job_t * `[`udd_ep_get_job`](#group__usb__device__udd__group_1ga44d7180f54df872da50d8d04918fc5c7)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` {#group__usb__device__udd__group_1ga44d7180f54df872da50d8d04918fc5c7} |
|
||||||
|
|
||||||
Get the detailed job by endpoint number. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `ep` Endpoint Address |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `pointer` to an udd_ep_job_t structure instance |
|
||||||
|
|
||||||
#### `public static void `[`udd_ep_trans_in_next`](#group__usb__device__udd__group_1ga7cd1ac3f0e6071afa036e27c5bd4d33c)`(void * pointer)` {#group__usb__device__udd__group_1ga7cd1ac3f0e6071afa036e27c5bd4d33c} |
|
||||||
|
|
||||||
Endpoint IN process, continue to send packets or zero length packet. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `pointer` Pointer to the endpoint transfer status parameter struct from driver layer. |
|
||||||
|
|
||||||
#### `public static void `[`udd_ep_trans_out_next`](#group__usb__device__udd__group_1ga2c2140346e2f4ef3b07e36d2abf2de5e)`(void * pointer)` {#group__usb__device__udd__group_1ga2c2140346e2f4ef3b07e36d2abf2de5e} |
|
||||||
|
|
||||||
Endpoint OUT process, continue to receive packets or zero length packet. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `pointer` Pointer to the endpoint transfer status parameter struct from driver layer. |
|
||||||
|
|
||||||
#### `public static void `[`udd_ep_transfer_process`](#group__usb__device__udd__group_1gaa3607835799fb01db3d38bcbc87463fb)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` {#group__usb__device__udd__group_1gaa3607835799fb01db3d38bcbc87463fb} |
|
||||||
|
|
||||||
Endpoint Transfer Complete callback function, to do the next transfer depends on the direction(IN or OUT) |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `module_inst` Pointer to USB module instance |
|
||||||
|
|
||||||
* `pointer` Pointer to the endpoint transfer status parameter struct from driver layer. |
|
||||||
|
|
||||||
#### `public void `[`udd_ep_abort`](#group__usb__device__udd__group_1gaacd4ece19accac669506b615916efe2f)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` {#group__usb__device__udd__group_1gaacd4ece19accac669506b615916efe2f} |
|
||||||
|
|
||||||
Aborts transfer on going on endpoint. |
|
||||||
|
|
||||||
If a transfer is on going, then it is stopped and the callback registered is called to signal the end of transfer. Note: The control endpoint is not authorized. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `ep` Endpoint to abort |
|
||||||
|
|
||||||
#### `public bool `[`udd_is_high_speed`](#group__usb__device__udd__group_1ga85f403ddb78776b1ba014dafd3ffec2c)`(void)` {#group__usb__device__udd__group_1ga85f403ddb78776b1ba014dafd3ffec2c} |
|
||||||
|
|
||||||
Test whether the USB Device Controller is running at high speed or not. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
`true` if the Device is running at high speed mode, otherwise `false`. |
|
||||||
|
|
||||||
#### `public uint16_t `[`udd_get_frame_number`](#group__usb__device__udd__group_1ga96dc248cc05e07ffe2cf21e4d7465320)`(void)` {#group__usb__device__udd__group_1ga96dc248cc05e07ffe2cf21e4d7465320} |
|
||||||
|
|
||||||
Returns the current start of frame number. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
current start of frame number. |
|
||||||
|
|
||||||
#### `public uint16_t `[`udd_get_micro_frame_number`](#group__usb__device__udd__group_1ga63047eec59b8e8798ca1d3366472d82b)`(void)` {#group__usb__device__udd__group_1ga63047eec59b8e8798ca1d3366472d82b} |
|
||||||
|
|
||||||
Returns the current micro start of frame number. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
current micro start of frame number required in high speed mode. |
|
||||||
|
|
||||||
#### `public void `[`udd_ep_free`](#group__usb__device__udd__group_1ga12c064720e08b9151e2a47f79d986c29)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` {#group__usb__device__udd__group_1ga12c064720e08b9151e2a47f79d986c29} |
|
||||||
|
|
||||||
Disables an endpoint. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `ep` Endpoint number including direction (USB_EP_DIR_IN/USB_EP_DIR_OUT). |
|
||||||
|
|
||||||
#### `public bool `[`udd_ep_alloc`](#group__usb__device__udd__group_1gaf87db391732b278915079b43ce20a4c1)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep,uint8_t bmAttributes,uint16_t MaxEndpointSize)` {#group__usb__device__udd__group_1gaf87db391732b278915079b43ce20a4c1} |
|
||||||
|
|
||||||
Configures and enables an endpoint. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `ep` Endpoint number including direction (USB_EP_DIR_IN/USB_EP_DIR_OUT). |
|
||||||
|
|
||||||
* `bmAttributes` Attributes of endpoint declared in the descriptor. |
|
||||||
|
|
||||||
* `MaxEndpointSize` Endpoint maximum size |
|
||||||
|
|
||||||
#### Returns |
|
||||||
`1` if the endpoint is enabled, otherwise `0`. |
|
||||||
|
|
||||||
#### `public bool `[`udd_ep_is_halted`](#group__usb__device__udd__group_1ga2d531ac8c1e142185c6ed6eaeb2737c0)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` {#group__usb__device__udd__group_1ga2d531ac8c1e142185c6ed6eaeb2737c0} |
|
||||||
|
|
||||||
Check if the endpoint *ep* is halted. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `ep` The ID of the endpoint to check. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
`1` if *ep* is halted, otherwise `0`. |
|
||||||
|
|
||||||
#### `public bool `[`udd_ep_set_halt`](#group__usb__device__udd__group_1ga55dd14b9b00781223e39c2549ffdb61c)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` {#group__usb__device__udd__group_1ga55dd14b9b00781223e39c2549ffdb61c} |
|
||||||
|
|
||||||
Set the halted state of the endpoint *ep*. |
|
||||||
|
|
||||||
After calling this function, any transaction on *ep* will result in a STALL handshake being sent. Any pending transactions will be performed first, however. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `ep` The ID of the endpoint to be halted |
|
||||||
|
|
||||||
#### Returns |
|
||||||
`1` if *ep* is halted, otherwise `0`. |
|
||||||
|
|
||||||
#### `public bool `[`udd_ep_clear_halt`](#group__usb__device__udd__group_1ga2b89e75674bd590432e9928326d5ef73)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep)` {#group__usb__device__udd__group_1ga2b89e75674bd590432e9928326d5ef73} |
|
||||||
|
|
||||||
Clear the halted state of the endpoint *ep*. |
|
||||||
|
|
||||||
After calling this function, any transaction on *ep* will be handled normally, i.e. a STALL handshake will not be sent, and the data toggle sequence will start at DATA0. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `ep` The ID of the endpoint to be un-halted |
|
||||||
|
|
||||||
#### Returns |
|
||||||
`1` if function was successfully done, otherwise `0`. |
|
||||||
|
|
||||||
#### `public bool `[`udd_ep_wait_stall_clear`](#group__usb__device__udd__group_1ga9dde9a9ac41ffc519cc2e2f93308db1c)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep,`[`udd_callback_halt_cleared_t`](.build/docs/internals_undefined.md#group__udd__group_1ga70b1655bda30b7d03df637a1bb23bdd5)` callback)` {#group__usb__device__udd__group_1ga9dde9a9ac41ffc519cc2e2f93308db1c} |
|
||||||
|
|
||||||
Registers a callback to call when endpoint halt is cleared. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `ep` The ID of the endpoint to use |
|
||||||
|
|
||||||
* `callback` NULL or function to call when endpoint halt is cleared |
|
||||||
|
|
||||||
if the endpoint is not halted then the *callback* is called immediately. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
`1` if the register is accepted, otherwise `0`. |
|
||||||
|
|
||||||
#### `public static void `[`udd_ctrl_stall_data`](#group__usb__device__udd__group_1gabf919b71cee71a11e1ea4e64fb9891d1)`(void)` {#group__usb__device__udd__group_1gabf919b71cee71a11e1ea4e64fb9891d1} |
|
||||||
|
|
||||||
Control Endpoint stall sending data. |
|
||||||
|
|
||||||
#### `public bool `[`udd_ep_run`](#group__usb__device__udd__group_1ga3023b640115dd86dc922fcd79f5b8757)`(`[`udd_ep_id_t`](.build/docs/internals_undefined.md#group__udd__group_1ga6f25ea016c07bd48c3074f51d8ef8b01)` ep,bool b_shortpacket,uint8_t * buf,iram_size_t buf_size,`[`udd_callback_trans_t`](.build/docs/internals_undefined.md#group__udd__group_1ga4e79edfc4d62b203dbc271e80a624917)` callback)` {#group__usb__device__udd__group_1ga3023b640115dd86dc922fcd79f5b8757} |
|
||||||
|
|
||||||
Allows to receive or send data on an endpoint. |
|
||||||
|
|
||||||
The driver uses a specific DMA USB to transfer data from internal RAM to endpoint, if this one is available. When the transfer is finished or aborted (stall, reset, ...), the *callback* is called. The *callback* returns the transfer status and eventually the number of byte transfered. Note: The control endpoint is not authorized. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `ep` The ID of the endpoint to use |
|
||||||
|
|
||||||
* `b_shortpacket` Enabled automatic short packet |
|
||||||
|
|
||||||
* `buf` Buffer on Internal RAM to send or fill. It must be align, then use COMPILER_WORD_ALIGNED. |
|
||||||
|
|
||||||
* `buf_size` Buffer size to send or fill |
|
||||||
|
|
||||||
* `callback` NULL or function to call at the end of transfer |
|
||||||
|
|
||||||
About *b_shortpacket*, for IN endpoint it means that a short packet (or a Zero Length Packet) will be sent to the USB line to properly close the usb transfer at the end of the data transfer. For Bulk and Interrupt OUT endpoint, it will automatically stop the transfer at the end of the data transfer (received short packet). |
|
||||||
|
|
||||||
#### Returns |
|
||||||
`1` if function was successfully done, otherwise `0`. |
|
||||||
|
|
||||||
#### `public void `[`udd_set_address`](#group__usb__device__udd__group_1ga05da762e0faf9d478e532de40afa71f6)`(uint8_t address)` {#group__usb__device__udd__group_1ga05da762e0faf9d478e532de40afa71f6} |
|
||||||
|
|
||||||
Changes the USB address of device. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `address` New USB address |
|
||||||
|
|
||||||
#### `public uint8_t `[`udd_getaddress`](#group__usb__device__udd__group_1gaebd36638d482f6df00a8aff006ef2246)`(void)` {#group__usb__device__udd__group_1gaebd36638d482f6df00a8aff006ef2246} |
|
||||||
|
|
||||||
Returns the USB address of device. |
|
||||||
|
|
||||||
#### Returns |
|
||||||
USB address |
|
||||||
|
|
||||||
#### `public void `[`udd_send_remotewakeup`](#group__usb__device__udd__group_1gac447212e04789282dabee65a23fe2a08)`(void)` {#group__usb__device__udd__group_1gac447212e04789282dabee65a23fe2a08} |
|
||||||
|
|
||||||
The USB driver sends a resume signal called Upstream Resume. |
|
||||||
|
|
||||||
#### `public void `[`udd_set_setup_payload`](#group__usb__device__udd__group_1ga017ef5ea7626be258c24d345218976f9)`(uint8_t * payload,uint16_t payload_size)` {#group__usb__device__udd__group_1ga017ef5ea7626be258c24d345218976f9} |
|
||||||
|
|
||||||
Load setup payload. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `payload` Pointer on payload |
|
||||||
|
|
||||||
* `payload_size` Size of payload |
|
||||||
|
|
||||||
#### `public static void `[`udd_ctrl_fetch_ram`](#group__usb__device__udd__group_1gaf6ffb95ec28493ddaf038642ee995ce6)`(void)` {#group__usb__device__udd__group_1gaf6ffb95ec28493ddaf038642ee995ce6} |
|
||||||
|
|
||||||
Control Endpoint translate the data in buffer into Device Request Struct. |
|
||||||
|
|
||||||
#### `public static void `[`udd_ctrl_send_zlp_in`](#group__usb__device__udd__group_1gab6a8abd5db8a94d6becc73b2b70dc748)`(void)` {#group__usb__device__udd__group_1gab6a8abd5db8a94d6becc73b2b70dc748} |
|
||||||
|
|
||||||
Control Endpoint send out zero length packet. |
|
||||||
|
|
||||||
#### `public static void `[`udd_ctrl_in_sent`](#group__usb__device__udd__group_1ga181ffd0cddf5130f55df6df8ca3f916c)`(void)` {#group__usb__device__udd__group_1ga181ffd0cddf5130f55df6df8ca3f916c} |
|
||||||
|
|
||||||
Process control endpoint IN transaction. |
|
||||||
|
|
||||||
#### `public static void `[`udd_ctrl_out_received`](#group__usb__device__udd__group_1gaa137563d9a7717c634279ad596fbc5fb)`(void * pointer)` {#group__usb__device__udd__group_1gaa137563d9a7717c634279ad596fbc5fb} |
|
||||||
|
|
||||||
Process control endpoint OUT transaction. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `pointer` Pointer to the endpoint transfer status parameter struct from driver layer. |
|
||||||
|
|
||||||
#### `public static void `[`_usb_ep0_on_setup`](#group__usb__device__udd__group_1ga2f36d2d5628b8edfaf619bcb2c7de44f)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` {#group__usb__device__udd__group_1ga2f36d2d5628b8edfaf619bcb2c7de44f} |
|
||||||
|
|
||||||
#### `public static void `[`udd_ctrl_underflow`](#group__usb__device__udd__group_1gae49bae7d7d68329b1c050f39c902d08e)`(void * pointer)` {#group__usb__device__udd__group_1gae49bae7d7d68329b1c050f39c902d08e} |
|
||||||
|
|
||||||
Control Endpoint Process when underflow condition has occurred. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `pointer` Pointer to the endpoint transfer status parameter struct from driver layer. |
|
||||||
|
|
||||||
#### `public static void `[`udd_ctrl_overflow`](#group__usb__device__udd__group_1ga58ec0c5b490824774f753cc9ff6c1250)`(void * pointer)` {#group__usb__device__udd__group_1ga58ec0c5b490824774f753cc9ff6c1250} |
|
||||||
|
|
||||||
Control Endpoint Process when overflow condition has occurred. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `pointer` Pointer to the endpoint transfer status parameter struct from driver layer. |
|
||||||
|
|
||||||
#### `public static void `[`_usb_ep0_on_tansfer_fail`](#group__usb__device__udd__group_1ga67ec9c51a13358e3e241b2d10b3b4a05)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` {#group__usb__device__udd__group_1ga67ec9c51a13358e3e241b2d10b3b4a05} |
|
||||||
|
|
||||||
#### `public static void `[`_usb_ep0_on_tansfer_ok`](#group__usb__device__udd__group_1gabe51608c4f3fb3cb905463758645127c)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` {#group__usb__device__udd__group_1gabe51608c4f3fb3cb905463758645127c} |
|
||||||
|
|
||||||
#### `public static void `[`udd_ctrl_ep_enable`](#group__usb__device__udd__group_1ga16a526f9870d3b670345b98bcfbe166c)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst)` {#group__usb__device__udd__group_1ga16a526f9870d3b670345b98bcfbe166c} |
|
||||||
|
|
||||||
Enable Control Endpoint. |
|
||||||
|
|
||||||
#### Parameters |
|
||||||
* `module_inst` Pointer to USB module instance |
|
||||||
|
|
||||||
#### `public static void `[`_usb_on_suspend`](#group__usb__device__udd__group_1gaf4c2f4bf0f76bcf873d165f1e960c8e1)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` {#group__usb__device__udd__group_1gaf4c2f4bf0f76bcf873d165f1e960c8e1} |
|
||||||
|
|
||||||
#### `public static void `[`_usb_on_sof_notify`](#group__usb__device__udd__group_1gae65a2792570d8aec7e758b3526721086)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` {#group__usb__device__udd__group_1gae65a2792570d8aec7e758b3526721086} |
|
||||||
|
|
||||||
#### `public static void `[`_usb_on_bus_reset`](#group__usb__device__udd__group_1gaf286144a1b50b68ed2edd38d67e1f4b0)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` {#group__usb__device__udd__group_1gaf286144a1b50b68ed2edd38d67e1f4b0} |
|
||||||
|
|
||||||
#### `public static void `[`_usb_on_wakeup`](#group__usb__device__udd__group_1ga563d04cd60d478a430261aaa9da5e07a)`(struct `[`usb_module`](.build/docs/internals_undefined.md#structusb__module)` * module_inst,void * pointer)` {#group__usb__device__udd__group_1ga563d04cd60d478a430261aaa9da5e07a} |
|
||||||
|
|
||||||
#### `public void `[`udd_detach`](#group__usb__device__udd__group_1ga03e59eaa264f1dbe5a52559311d0520e)`(void)` {#group__usb__device__udd__group_1ga03e59eaa264f1dbe5a52559311d0520e} |
|
||||||
|
|
||||||
Detaches the device from the bus. |
|
||||||
|
|
||||||
The driver must remove pull-up on USB line D- or D+. |
|
||||||
|
|
||||||
#### `public void `[`udd_attach`](#group__usb__device__udd__group_1ga7a7c0d9236c922c2af33c6702565a99f)`(void)` {#group__usb__device__udd__group_1ga7a7c0d9236c922c2af33c6702565a99f} |
|
||||||
|
|
||||||
Attach device to the bus when possible. |
|
||||||
|
|
||||||
If a VBus control is included in driver, then it will attach device when an acceptable Vbus level from the host is detected. |
|
||||||
|
|
||||||
#### `public void `[`udd_enable`](#group__usb__device__udd__group_1ga9792d1899ae058e3984d6a622fe2ad42)`(void)` {#group__usb__device__udd__group_1ga9792d1899ae058e3984d6a622fe2ad42} |
|
||||||
|
|
||||||
Enables the USB Device mode. |
|
||||||
|
|
||||||
#### `public void `[`udd_disable`](#group__usb__device__udd__group_1gab283432057b934e9d73ac9282d9b0f11)`(void)` {#group__usb__device__udd__group_1gab283432057b934e9d73ac9282d9b0f11} |
|
||||||
|
|
||||||
Disables the USB Device mode. |
|
||||||
|
|
@ -1,9 +0,0 @@ |
|||||||
# group `usb_group` {#group__usb__group} |
|
||||||
|
|
||||||
This stack includes the USB Device Stack, USB Host Stack and common definitions. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
|
|
@ -1,58 +0,0 @@ |
|||||||
# group `usb_hid_protocol` {#group__usb__hid__protocol} |
|
||||||
|
|
||||||
USB Human Interface Device (HID) protocol definitions. |
|
||||||
|
|
||||||
protocol definitions |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`struct `[`usb_hid_descriptor_t`](#structusb__hid__descriptor__t) | HID Descriptor. |
|
||||||
|
|
||||||
# struct `usb_hid_descriptor_t` {#structusb__hid__descriptor__t} |
|
||||||
|
|
||||||
HID Descriptor. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__hid__descriptor__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | Size of this descriptor in bytes. |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__hid__descriptor__t_1a67d7027b9eb9ed268d28e84fbc675707) | HID descriptor type. |
|
||||||
`public le16_t `[`bcdHID`](#structusb__hid__descriptor__t_1ab86c23448d45c6d68efec9f9af5d10de) | Binary Coded Decimal Spec. release. |
|
||||||
`public uint8_t `[`bCountryCode`](#structusb__hid__descriptor__t_1a969a604033b72573d59a740badf6920e) | Hardware target country. |
|
||||||
`public uint8_t `[`bNumDescriptors`](#structusb__hid__descriptor__t_1a86ff434026085d9c0c751185eb3700c5) | Number of HID class descriptors to follow. |
|
||||||
`public uint8_t `[`bRDescriptorType`](#structusb__hid__descriptor__t_1a6da89ed91bee6e0a4f2c8cf3b40a7ede) | Report descriptor type. |
|
||||||
`public le16_t `[`wDescriptorLength`](#structusb__hid__descriptor__t_1ab3d5c878a0abf618eecc7f860e9aeb62) | Total length of Report descriptor. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__hid__descriptor__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__hid__descriptor__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
Size of this descriptor in bytes. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__hid__descriptor__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__hid__descriptor__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
HID descriptor type. |
|
||||||
|
|
||||||
#### `public le16_t `[`bcdHID`](#structusb__hid__descriptor__t_1ab86c23448d45c6d68efec9f9af5d10de) {#structusb__hid__descriptor__t_1ab86c23448d45c6d68efec9f9af5d10de} |
|
||||||
|
|
||||||
Binary Coded Decimal Spec. release. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bCountryCode`](#structusb__hid__descriptor__t_1a969a604033b72573d59a740badf6920e) {#structusb__hid__descriptor__t_1a969a604033b72573d59a740badf6920e} |
|
||||||
|
|
||||||
Hardware target country. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bNumDescriptors`](#structusb__hid__descriptor__t_1a86ff434026085d9c0c751185eb3700c5) {#structusb__hid__descriptor__t_1a86ff434026085d9c0c751185eb3700c5} |
|
||||||
|
|
||||||
Number of HID class descriptors to follow. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bRDescriptorType`](#structusb__hid__descriptor__t_1a6da89ed91bee6e0a4f2c8cf3b40a7ede) {#structusb__hid__descriptor__t_1a6da89ed91bee6e0a4f2c8cf3b40a7ede} |
|
||||||
|
|
||||||
Report descriptor type. |
|
||||||
|
|
||||||
#### `public le16_t `[`wDescriptorLength`](#structusb__hid__descriptor__t_1ab3d5c878a0abf618eecc7f860e9aeb62) {#structusb__hid__descriptor__t_1ab3d5c878a0abf618eecc7f860e9aeb62} |
|
||||||
|
|
||||||
Total length of Report descriptor. |
|
||||||
|
|
@ -1,806 +0,0 @@ |
|||||||
# group `usb_protocol_group` {#group__usb__protocol__group} |
|
||||||
|
|
||||||
This module defines constants and data structures provided by the USB 2.0 specification. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`define `[`USB_V2_0`](#group__usb__protocol__group_1ga9bccec980a4f41a481b389b4f0c9c690) | Value for field bcdUSB. |
|
||||||
`define `[`USB_V2_1`](#group__usb__protocol__group_1ga98059f51cd65930412083d423a70dd17) | USB Specification version 2.01. |
|
||||||
`define `[`USB_REQ_DIR_OUT`](#group__usb__protocol__group_1ga3fae7189eea003bf79ac2949b0f50584) | USB request data transfer direction (bmRequestType) |
|
||||||
`define `[`USB_REQ_DIR_IN`](#group__usb__protocol__group_1ga3d3c24265f68a720887ae4ff7158d605) | Device to host. |
|
||||||
`define `[`USB_REQ_DIR_MASK`](#group__usb__protocol__group_1gac94f5ec9106e17f2e6d927eeac3d530f) | Mask. |
|
||||||
`define `[`USB_REQ_TYPE_STANDARD`](#group__usb__protocol__group_1ga3eb781776ab6dcbc6fa96e1b0ed18011) | USB request types (bmRequestType) |
|
||||||
`define `[`USB_REQ_TYPE_CLASS`](#group__usb__protocol__group_1gaff9ee0044c6cb131b2908356adc37dff) | Class-specific request. |
|
||||||
`define `[`USB_REQ_TYPE_VENDOR`](#group__usb__protocol__group_1ga71855621792f72443ed5497b313a2517) | Vendor-specific request. |
|
||||||
`define `[`USB_REQ_TYPE_MASK`](#group__usb__protocol__group_1ga8be8332e2da1e54c74c5f2a2230b0a28) | Mask. |
|
||||||
`define `[`USB_REQ_RECIP_DEVICE`](#group__usb__protocol__group_1ga65c1569b970837dd4a2ad8e1b4097589) | USB recipient codes (bmRequestType) |
|
||||||
`define `[`USB_REQ_RECIP_INTERFACE`](#group__usb__protocol__group_1gad3d0e7d70c610967cc2ee12c5298ac69) | Recipient interface. |
|
||||||
`define `[`USB_REQ_RECIP_ENDPOINT`](#group__usb__protocol__group_1ga1be00350ff83d022d41b4eae81f1e2b2) | Recipient endpoint. |
|
||||||
`define `[`USB_REQ_RECIP_OTHER`](#group__usb__protocol__group_1gabb5706061604f770d2ce1f3891ab0296) | Recipient other. |
|
||||||
`define `[`USB_REQ_RECIP_MASK`](#group__usb__protocol__group_1gab1738c19d49fe1d4c7edccff90e9e9e4) | Mask. |
|
||||||
`define `[`HIRD_50_US`](#group__usb__protocol__group_1ga63ce14c89bdb5349988cb983b7176740) | |
|
||||||
`define `[`HIRD_125_US`](#group__usb__protocol__group_1ga8fa50bfccd00843cd32719521720f7f6) | |
|
||||||
`define `[`HIRD_200_US`](#group__usb__protocol__group_1gad6f9ff2585cbc2b0ca161ee12a11b154) | |
|
||||||
`define `[`HIRD_275_US`](#group__usb__protocol__group_1ga51c55e5d7938a80a53084b5a2a93b9b3) | |
|
||||||
`define `[`HIRD_350_US`](#group__usb__protocol__group_1ga28a9220cf691f45fa880638ad92ed95a) | |
|
||||||
`define `[`HIRD_425_US`](#group__usb__protocol__group_1gab0f175ff5b6a35c08d4730f3b82e3290) | |
|
||||||
`define `[`HIRD_500_US`](#group__usb__protocol__group_1gaf75c36a22358dbe9d27fa2122d39ac32) | |
|
||||||
`define `[`HIRD_575_US`](#group__usb__protocol__group_1ga27244f075c4ae2c34bcdeecca8921e9d) | |
|
||||||
`define `[`HIRD_650_US`](#group__usb__protocol__group_1ga33e1236c9694d97c574677ed36da8ce4) | |
|
||||||
`define `[`HIRD_725_US`](#group__usb__protocol__group_1gab1cfbd6207cc526b33a65593379f1802) | |
|
||||||
`define `[`HIRD_800_US`](#group__usb__protocol__group_1gaec9c3475ae7a1a2deefdb7f844ab25b4) | |
|
||||||
`define `[`HIRD_875_US`](#group__usb__protocol__group_1ga39eaf9efa2c721560ae7e6d4463ed353) | |
|
||||||
`define `[`HIRD_950_US`](#group__usb__protocol__group_1ga6a950e4e5666cd014db36bd4971ac888) | |
|
||||||
`define `[`HIRD_1025_US`](#group__usb__protocol__group_1ga07cfb9848da18f98190ff86ca5349b53) | |
|
||||||
`define `[`HIRD_1100_US`](#group__usb__protocol__group_1ga52b2c19a0df1c72ed04a97ccb3b9152e) | |
|
||||||
`define `[`HIRD_1175_US`](#group__usb__protocol__group_1ga29284c56fb4827b69c00332b7a4fdb76) | |
|
||||||
`define `[`USB_LPM_ATTRIBUT_BLINKSTATE_MASK`](#group__usb__protocol__group_1gaf39d50c3bb01f68fa434e7fdf3a44e22) | Fields definition from a LPM TOKEN |
|
||||||
`define `[`USB_LPM_ATTRIBUT_FIRD_MASK`](#group__usb__protocol__group_1gaf53a7676592b02f9bb846e1062af463c) | |
|
||||||
`define `[`USB_LPM_ATTRIBUT_REMOTEWAKE_MASK`](#group__usb__protocol__group_1ga9c1618c348394534d968097c8d76c092) | |
|
||||||
`define `[`USB_LPM_ATTRIBUT_BLINKSTATE`](#group__usb__protocol__group_1ga1deb3dda1fc39b7425359c72eb548b0d) | |
|
||||||
`define `[`USB_LPM_ATTRIBUT_FIRD`](#group__usb__protocol__group_1ga0eb84fe948d5e4650a39d6081b959c70) | |
|
||||||
`define `[`USB_LPM_ATTRIBUT_REMOTEWAKE`](#group__usb__protocol__group_1ga7482138e5ce2d2ec9482bcd5dbd9bd64) | |
|
||||||
`define `[`USB_LPM_ATTRIBUT_BLINKSTATE_L1`](#group__usb__protocol__group_1ga02be6765d15e86d37fd66ce6862a16fc) | |
|
||||||
`define `[`USB_EP_ADDR_MASK`](#group__usb__protocol__group_1ga0316d8f43a1648b76df257332b26aeb9) | Mask selecting the index part of an endpoint address. |
|
||||||
`define `[`USB_EP_DIR_IN`](#group__usb__protocol__group_1gaae8411e95f26738326bc25a0161dde99) | Endpoint transfer direction is IN. |
|
||||||
`define `[`USB_EP_DIR_OUT`](#group__usb__protocol__group_1ga0510b0a04d9cef144e4d9793310abccf) | Endpoint transfer direction is OUT. |
|
||||||
`define `[`USB_MAX_DESC_LEN`](#group__usb__protocol__group_1ga27dacd4e0b04d4ef7b8aadf6ea886f3c) | Maximum length in bytes of a USB descriptor. |
|
||||||
`define `[`USB_CONFIG_ATTR_MUST_SET`](#group__usb__protocol__group_1gac7063e965def0eaeb4d45a6f9048dc53) | Must always be set. |
|
||||||
`define `[`USB_CONFIG_ATTR_BUS_POWERED`](#group__usb__protocol__group_1ga10945c8d92454009444979c38b9d2cca) | Bus-powered. |
|
||||||
`define `[`USB_CONFIG_ATTR_SELF_POWERED`](#group__usb__protocol__group_1gaf1b445db8c331630bbedb383544ed80b) | Self-powered. |
|
||||||
`define `[`USB_CONFIG_ATTR_REMOTE_WAKEUP`](#group__usb__protocol__group_1gab8f513d1888f75d8e18960e1b1f3f747) | remote wakeup supported |
|
||||||
`define `[`USB_CONFIG_MAX_POWER`](#group__usb__protocol__group_1ga55d9db758a4f408eebf4b26c6001ac9b) | Max power in mA. |
|
||||||
`enum `[`usb_reqid`](#group__usb__protocol__group_1gab43332ff8dbad3dd3c8c882b1bd68a89) | Standard USB requests (bRequest) |
|
||||||
`enum `[`usb_device_status`](#group__usb__protocol__group_1ga5c6f61a70ef0fda1a1d6f9a34f2f0f1c) | Standard USB device status flags. |
|
||||||
`enum `[`usb_interface_status`](#group__usb__protocol__group_1ga61c6d9f1bcc6112f394333fac658d627) | Standard USB Interface status flags. |
|
||||||
`enum `[`usb_endpoint_status`](#group__usb__protocol__group_1gaf926ff975fcda57f214001b51f15092d) | Standard USB endpoint status flags. |
|
||||||
`enum `[`usb_device_feature`](#group__usb__protocol__group_1gab9975b89ad7079085d0300eab037c3ac) | Standard USB device feature flags. |
|
||||||
`enum `[`usb_device_hs_test_mode`](#group__usb__protocol__group_1ga9027bb283d3666e351fe5c403292cf2e) | Test Mode possible on HS USB device. |
|
||||||
`enum `[`usb_endpoint_feature`](#group__usb__protocol__group_1gac46bc23132eb03cefa56ba47024ced5d) | Standard USB endpoint feature/status flags. |
|
||||||
`enum `[`usb_test_mode_selector`](#group__usb__protocol__group_1gade3fc5b71e88ed167a8c8d67ee087db3) | Standard USB Test Mode Selectors. |
|
||||||
`enum `[`usb_descriptor_type`](#group__usb__protocol__group_1ga87d46dd117d939964c939f1518dec93f) | Standard USB descriptor types. |
|
||||||
`enum `[`usb_capability_type`](#group__usb__protocol__group_1gab4eef94a7d2be2570193c4f9400a6fa6) | USB Device Capability types. |
|
||||||
`enum `[`usb_capability_extension_attr`](#group__usb__protocol__group_1ga4fa8bfac1cf05037ee2ef05aaa190299) | USB Device Capability - USB 2.0 Extension To fill bmAttributes field of usb_capa_ext_desc_t structure. |
|
||||||
`enum `[`usb_ep_type`](#group__usb__protocol__group_1ga666def795a15032e5bf93a450f79113f) | Standard USB endpoint transfer types. |
|
||||||
`enum `[`usb_langid`](#group__usb__protocol__group_1ga1f92deaf695c06566999f0c5343978c1) | Standard USB language IDs for string descriptors. |
|
||||||
`struct `[`usb_setup_req_t`](#structusb__setup__req__t) | A USB Device SETUP request. |
|
||||||
`struct `[`usb_dev_desc_t`](#structusb__dev__desc__t) | Standard USB device descriptor structure. |
|
||||||
`struct `[`usb_dev_qual_desc_t`](#structusb__dev__qual__desc__t) | Standard USB device qualifier descriptor structure. |
|
||||||
`struct `[`usb_dev_bos_desc_t`](#structusb__dev__bos__desc__t) | USB Device BOS descriptor structure. |
|
||||||
`struct `[`usb_dev_capa_ext_desc_t`](#structusb__dev__capa__ext__desc__t) | USB Device Capabilities - USB 2.0 Extension Descriptor structure. |
|
||||||
`struct `[`usb_dev_lpm_desc_t`](#structusb__dev__lpm__desc__t) | USB Device LPM Descriptor structure. |
|
||||||
`struct `[`usb_association_desc_t`](#structusb__association__desc__t) | Standard USB Interface Association Descriptor structure. |
|
||||||
`struct `[`usb_conf_desc_t`](#structusb__conf__desc__t) | Standard USB configuration descriptor structure. |
|
||||||
`struct `[`usb_iad_desc_t`](#structusb__iad__desc__t) | Standard USB association descriptor structure. |
|
||||||
`struct `[`usb_iface_desc_t`](#structusb__iface__desc__t) | Standard USB interface descriptor structure. |
|
||||||
`struct `[`usb_ep_desc_t`](#structusb__ep__desc__t) | Standard USB endpoint descriptor structure. |
|
||||||
`struct `[`usb_str_desc_t`](#structusb__str__desc__t) | A standard USB string descriptor structure. |
|
||||||
`struct `[`usb_str_lgid_desc_t`](#structusb__str__lgid__desc__t) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `define `[`USB_V2_0`](#group__usb__protocol__group_1ga9bccec980a4f41a481b389b4f0c9c690) {#group__usb__protocol__group_1ga9bccec980a4f41a481b389b4f0c9c690} |
|
||||||
|
|
||||||
Value for field bcdUSB. |
|
||||||
|
|
||||||
USB Specification version 2.00 |
|
||||||
|
|
||||||
#### `define `[`USB_V2_1`](#group__usb__protocol__group_1ga98059f51cd65930412083d423a70dd17) {#group__usb__protocol__group_1ga98059f51cd65930412083d423a70dd17} |
|
||||||
|
|
||||||
USB Specification version 2.01. |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_DIR_OUT`](#group__usb__protocol__group_1ga3fae7189eea003bf79ac2949b0f50584) {#group__usb__protocol__group_1ga3fae7189eea003bf79ac2949b0f50584} |
|
||||||
|
|
||||||
USB request data transfer direction (bmRequestType) |
|
||||||
|
|
||||||
Host to device |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_DIR_IN`](#group__usb__protocol__group_1ga3d3c24265f68a720887ae4ff7158d605) {#group__usb__protocol__group_1ga3d3c24265f68a720887ae4ff7158d605} |
|
||||||
|
|
||||||
Device to host. |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_DIR_MASK`](#group__usb__protocol__group_1gac94f5ec9106e17f2e6d927eeac3d530f) {#group__usb__protocol__group_1gac94f5ec9106e17f2e6d927eeac3d530f} |
|
||||||
|
|
||||||
Mask. |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_TYPE_STANDARD`](#group__usb__protocol__group_1ga3eb781776ab6dcbc6fa96e1b0ed18011) {#group__usb__protocol__group_1ga3eb781776ab6dcbc6fa96e1b0ed18011} |
|
||||||
|
|
||||||
USB request types (bmRequestType) |
|
||||||
|
|
||||||
Standard request |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_TYPE_CLASS`](#group__usb__protocol__group_1gaff9ee0044c6cb131b2908356adc37dff) {#group__usb__protocol__group_1gaff9ee0044c6cb131b2908356adc37dff} |
|
||||||
|
|
||||||
Class-specific request. |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_TYPE_VENDOR`](#group__usb__protocol__group_1ga71855621792f72443ed5497b313a2517) {#group__usb__protocol__group_1ga71855621792f72443ed5497b313a2517} |
|
||||||
|
|
||||||
Vendor-specific request. |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_TYPE_MASK`](#group__usb__protocol__group_1ga8be8332e2da1e54c74c5f2a2230b0a28) {#group__usb__protocol__group_1ga8be8332e2da1e54c74c5f2a2230b0a28} |
|
||||||
|
|
||||||
Mask. |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_RECIP_DEVICE`](#group__usb__protocol__group_1ga65c1569b970837dd4a2ad8e1b4097589) {#group__usb__protocol__group_1ga65c1569b970837dd4a2ad8e1b4097589} |
|
||||||
|
|
||||||
USB recipient codes (bmRequestType) |
|
||||||
|
|
||||||
Recipient device |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_RECIP_INTERFACE`](#group__usb__protocol__group_1gad3d0e7d70c610967cc2ee12c5298ac69) {#group__usb__protocol__group_1gad3d0e7d70c610967cc2ee12c5298ac69} |
|
||||||
|
|
||||||
Recipient interface. |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_RECIP_ENDPOINT`](#group__usb__protocol__group_1ga1be00350ff83d022d41b4eae81f1e2b2) {#group__usb__protocol__group_1ga1be00350ff83d022d41b4eae81f1e2b2} |
|
||||||
|
|
||||||
Recipient endpoint. |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_RECIP_OTHER`](#group__usb__protocol__group_1gabb5706061604f770d2ce1f3891ab0296) {#group__usb__protocol__group_1gabb5706061604f770d2ce1f3891ab0296} |
|
||||||
|
|
||||||
Recipient other. |
|
||||||
|
|
||||||
#### `define `[`USB_REQ_RECIP_MASK`](#group__usb__protocol__group_1gab1738c19d49fe1d4c7edccff90e9e9e4) {#group__usb__protocol__group_1gab1738c19d49fe1d4c7edccff90e9e9e4} |
|
||||||
|
|
||||||
Mask. |
|
||||||
|
|
||||||
#### `define `[`HIRD_50_US`](#group__usb__protocol__group_1ga63ce14c89bdb5349988cb983b7176740) {#group__usb__protocol__group_1ga63ce14c89bdb5349988cb983b7176740} |
|
||||||
|
|
||||||
#### `define `[`HIRD_125_US`](#group__usb__protocol__group_1ga8fa50bfccd00843cd32719521720f7f6) {#group__usb__protocol__group_1ga8fa50bfccd00843cd32719521720f7f6} |
|
||||||
|
|
||||||
#### `define `[`HIRD_200_US`](#group__usb__protocol__group_1gad6f9ff2585cbc2b0ca161ee12a11b154) {#group__usb__protocol__group_1gad6f9ff2585cbc2b0ca161ee12a11b154} |
|
||||||
|
|
||||||
#### `define `[`HIRD_275_US`](#group__usb__protocol__group_1ga51c55e5d7938a80a53084b5a2a93b9b3) {#group__usb__protocol__group_1ga51c55e5d7938a80a53084b5a2a93b9b3} |
|
||||||
|
|
||||||
#### `define `[`HIRD_350_US`](#group__usb__protocol__group_1ga28a9220cf691f45fa880638ad92ed95a) {#group__usb__protocol__group_1ga28a9220cf691f45fa880638ad92ed95a} |
|
||||||
|
|
||||||
#### `define `[`HIRD_425_US`](#group__usb__protocol__group_1gab0f175ff5b6a35c08d4730f3b82e3290) {#group__usb__protocol__group_1gab0f175ff5b6a35c08d4730f3b82e3290} |
|
||||||
|
|
||||||
#### `define `[`HIRD_500_US`](#group__usb__protocol__group_1gaf75c36a22358dbe9d27fa2122d39ac32) {#group__usb__protocol__group_1gaf75c36a22358dbe9d27fa2122d39ac32} |
|
||||||
|
|
||||||
#### `define `[`HIRD_575_US`](#group__usb__protocol__group_1ga27244f075c4ae2c34bcdeecca8921e9d) {#group__usb__protocol__group_1ga27244f075c4ae2c34bcdeecca8921e9d} |
|
||||||
|
|
||||||
#### `define `[`HIRD_650_US`](#group__usb__protocol__group_1ga33e1236c9694d97c574677ed36da8ce4) {#group__usb__protocol__group_1ga33e1236c9694d97c574677ed36da8ce4} |
|
||||||
|
|
||||||
#### `define `[`HIRD_725_US`](#group__usb__protocol__group_1gab1cfbd6207cc526b33a65593379f1802) {#group__usb__protocol__group_1gab1cfbd6207cc526b33a65593379f1802} |
|
||||||
|
|
||||||
#### `define `[`HIRD_800_US`](#group__usb__protocol__group_1gaec9c3475ae7a1a2deefdb7f844ab25b4) {#group__usb__protocol__group_1gaec9c3475ae7a1a2deefdb7f844ab25b4} |
|
||||||
|
|
||||||
#### `define `[`HIRD_875_US`](#group__usb__protocol__group_1ga39eaf9efa2c721560ae7e6d4463ed353) {#group__usb__protocol__group_1ga39eaf9efa2c721560ae7e6d4463ed353} |
|
||||||
|
|
||||||
#### `define `[`HIRD_950_US`](#group__usb__protocol__group_1ga6a950e4e5666cd014db36bd4971ac888) {#group__usb__protocol__group_1ga6a950e4e5666cd014db36bd4971ac888} |
|
||||||
|
|
||||||
#### `define `[`HIRD_1025_US`](#group__usb__protocol__group_1ga07cfb9848da18f98190ff86ca5349b53) {#group__usb__protocol__group_1ga07cfb9848da18f98190ff86ca5349b53} |
|
||||||
|
|
||||||
#### `define `[`HIRD_1100_US`](#group__usb__protocol__group_1ga52b2c19a0df1c72ed04a97ccb3b9152e) {#group__usb__protocol__group_1ga52b2c19a0df1c72ed04a97ccb3b9152e} |
|
||||||
|
|
||||||
#### `define `[`HIRD_1175_US`](#group__usb__protocol__group_1ga29284c56fb4827b69c00332b7a4fdb76) {#group__usb__protocol__group_1ga29284c56fb4827b69c00332b7a4fdb76} |
|
||||||
|
|
||||||
#### `define `[`USB_LPM_ATTRIBUT_BLINKSTATE_MASK`](#group__usb__protocol__group_1gaf39d50c3bb01f68fa434e7fdf3a44e22) {#group__usb__protocol__group_1gaf39d50c3bb01f68fa434e7fdf3a44e22} |
|
||||||
|
|
||||||
Fields definition from a LPM TOKEN |
|
||||||
|
|
||||||
#### `define `[`USB_LPM_ATTRIBUT_FIRD_MASK`](#group__usb__protocol__group_1gaf53a7676592b02f9bb846e1062af463c) {#group__usb__protocol__group_1gaf53a7676592b02f9bb846e1062af463c} |
|
||||||
|
|
||||||
#### `define `[`USB_LPM_ATTRIBUT_REMOTEWAKE_MASK`](#group__usb__protocol__group_1ga9c1618c348394534d968097c8d76c092) {#group__usb__protocol__group_1ga9c1618c348394534d968097c8d76c092} |
|
||||||
|
|
||||||
#### `define `[`USB_LPM_ATTRIBUT_BLINKSTATE`](#group__usb__protocol__group_1ga1deb3dda1fc39b7425359c72eb548b0d) {#group__usb__protocol__group_1ga1deb3dda1fc39b7425359c72eb548b0d} |
|
||||||
|
|
||||||
#### `define `[`USB_LPM_ATTRIBUT_FIRD`](#group__usb__protocol__group_1ga0eb84fe948d5e4650a39d6081b959c70) {#group__usb__protocol__group_1ga0eb84fe948d5e4650a39d6081b959c70} |
|
||||||
|
|
||||||
#### `define `[`USB_LPM_ATTRIBUT_REMOTEWAKE`](#group__usb__protocol__group_1ga7482138e5ce2d2ec9482bcd5dbd9bd64) {#group__usb__protocol__group_1ga7482138e5ce2d2ec9482bcd5dbd9bd64} |
|
||||||
|
|
||||||
#### `define `[`USB_LPM_ATTRIBUT_BLINKSTATE_L1`](#group__usb__protocol__group_1ga02be6765d15e86d37fd66ce6862a16fc) {#group__usb__protocol__group_1ga02be6765d15e86d37fd66ce6862a16fc} |
|
||||||
|
|
||||||
#### `define `[`USB_EP_ADDR_MASK`](#group__usb__protocol__group_1ga0316d8f43a1648b76df257332b26aeb9) {#group__usb__protocol__group_1ga0316d8f43a1648b76df257332b26aeb9} |
|
||||||
|
|
||||||
Mask selecting the index part of an endpoint address. |
|
||||||
|
|
||||||
#### `define `[`USB_EP_DIR_IN`](#group__usb__protocol__group_1gaae8411e95f26738326bc25a0161dde99) {#group__usb__protocol__group_1gaae8411e95f26738326bc25a0161dde99} |
|
||||||
|
|
||||||
Endpoint transfer direction is IN. |
|
||||||
|
|
||||||
#### `define `[`USB_EP_DIR_OUT`](#group__usb__protocol__group_1ga0510b0a04d9cef144e4d9793310abccf) {#group__usb__protocol__group_1ga0510b0a04d9cef144e4d9793310abccf} |
|
||||||
|
|
||||||
Endpoint transfer direction is OUT. |
|
||||||
|
|
||||||
#### `define `[`USB_MAX_DESC_LEN`](#group__usb__protocol__group_1ga27dacd4e0b04d4ef7b8aadf6ea886f3c) {#group__usb__protocol__group_1ga27dacd4e0b04d4ef7b8aadf6ea886f3c} |
|
||||||
|
|
||||||
Maximum length in bytes of a USB descriptor. |
|
||||||
|
|
||||||
The maximum length of a USB descriptor is limited by the 8-bit bLength field. |
|
||||||
|
|
||||||
#### `define `[`USB_CONFIG_ATTR_MUST_SET`](#group__usb__protocol__group_1gac7063e965def0eaeb4d45a6f9048dc53) {#group__usb__protocol__group_1gac7063e965def0eaeb4d45a6f9048dc53} |
|
||||||
|
|
||||||
Must always be set. |
|
||||||
|
|
||||||
#### `define `[`USB_CONFIG_ATTR_BUS_POWERED`](#group__usb__protocol__group_1ga10945c8d92454009444979c38b9d2cca) {#group__usb__protocol__group_1ga10945c8d92454009444979c38b9d2cca} |
|
||||||
|
|
||||||
Bus-powered. |
|
||||||
|
|
||||||
#### `define `[`USB_CONFIG_ATTR_SELF_POWERED`](#group__usb__protocol__group_1gaf1b445db8c331630bbedb383544ed80b) {#group__usb__protocol__group_1gaf1b445db8c331630bbedb383544ed80b} |
|
||||||
|
|
||||||
Self-powered. |
|
||||||
|
|
||||||
#### `define `[`USB_CONFIG_ATTR_REMOTE_WAKEUP`](#group__usb__protocol__group_1gab8f513d1888f75d8e18960e1b1f3f747) {#group__usb__protocol__group_1gab8f513d1888f75d8e18960e1b1f3f747} |
|
||||||
|
|
||||||
remote wakeup supported |
|
||||||
|
|
||||||
#### `define `[`USB_CONFIG_MAX_POWER`](#group__usb__protocol__group_1ga55d9db758a4f408eebf4b26c6001ac9b) {#group__usb__protocol__group_1ga55d9db758a4f408eebf4b26c6001ac9b} |
|
||||||
|
|
||||||
Max power in mA. |
|
||||||
|
|
||||||
#### `enum `[`usb_reqid`](#group__usb__protocol__group_1gab43332ff8dbad3dd3c8c882b1bd68a89) {#group__usb__protocol__group_1gab43332ff8dbad3dd3c8c882b1bd68a89} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_REQ_GET_STATUS | |
|
||||||
USB_REQ_CLEAR_FEATURE | |
|
||||||
USB_REQ_SET_FEATURE | |
|
||||||
USB_REQ_SET_ADDRESS | |
|
||||||
USB_REQ_GET_DESCRIPTOR | |
|
||||||
USB_REQ_SET_DESCRIPTOR | |
|
||||||
USB_REQ_GET_CONFIGURATION | |
|
||||||
USB_REQ_SET_CONFIGURATION | |
|
||||||
USB_REQ_GET_INTERFACE | |
|
||||||
USB_REQ_SET_INTERFACE | |
|
||||||
USB_REQ_SYNCH_FRAME | |
|
||||||
|
|
||||||
Standard USB requests (bRequest) |
|
||||||
|
|
||||||
#### `enum `[`usb_device_status`](#group__usb__protocol__group_1ga5c6f61a70ef0fda1a1d6f9a34f2f0f1c) {#group__usb__protocol__group_1ga5c6f61a70ef0fda1a1d6f9a34f2f0f1c} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_DEV_STATUS_BUS_POWERED | |
|
||||||
USB_DEV_STATUS_SELF_POWERED | |
|
||||||
USB_DEV_STATUS_REMOTEWAKEUP | |
|
||||||
|
|
||||||
Standard USB device status flags. |
|
||||||
|
|
||||||
#### `enum `[`usb_interface_status`](#group__usb__protocol__group_1ga61c6d9f1bcc6112f394333fac658d627) {#group__usb__protocol__group_1ga61c6d9f1bcc6112f394333fac658d627} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_IFACE_STATUS_RESERVED | |
|
||||||
|
|
||||||
Standard USB Interface status flags. |
|
||||||
|
|
||||||
#### `enum `[`usb_endpoint_status`](#group__usb__protocol__group_1gaf926ff975fcda57f214001b51f15092d) {#group__usb__protocol__group_1gaf926ff975fcda57f214001b51f15092d} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_EP_STATUS_HALTED | |
|
||||||
|
|
||||||
Standard USB endpoint status flags. |
|
||||||
|
|
||||||
#### `enum `[`usb_device_feature`](#group__usb__protocol__group_1gab9975b89ad7079085d0300eab037c3ac) {#group__usb__protocol__group_1gab9975b89ad7079085d0300eab037c3ac} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_DEV_FEATURE_REMOTE_WAKEUP | Remote wakeup enabled. |
|
||||||
USB_DEV_FEATURE_TEST_MODE | USB test mode. |
|
||||||
USB_DEV_FEATURE_OTG_B_HNP_ENABLE | |
|
||||||
USB_DEV_FEATURE_OTG_A_HNP_SUPPORT | |
|
||||||
USB_DEV_FEATURE_OTG_A_ALT_HNP_SUPPORT | |
|
||||||
|
|
||||||
Standard USB device feature flags. |
|
||||||
|
|
||||||
valid for SetFeature request. |
|
||||||
|
|
||||||
#### `enum `[`usb_device_hs_test_mode`](#group__usb__protocol__group_1ga9027bb283d3666e351fe5c403292cf2e) {#group__usb__protocol__group_1ga9027bb283d3666e351fe5c403292cf2e} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_DEV_TEST_MODE_J | |
|
||||||
USB_DEV_TEST_MODE_K | |
|
||||||
USB_DEV_TEST_MODE_SE0_NAK | |
|
||||||
USB_DEV_TEST_MODE_PACKET | |
|
||||||
USB_DEV_TEST_MODE_FORCE_ENABLE | |
|
||||||
|
|
||||||
Test Mode possible on HS USB device. |
|
||||||
|
|
||||||
valid for USB_DEV_FEATURE_TEST_MODE request. |
|
||||||
|
|
||||||
#### `enum `[`usb_endpoint_feature`](#group__usb__protocol__group_1gac46bc23132eb03cefa56ba47024ced5d) {#group__usb__protocol__group_1gac46bc23132eb03cefa56ba47024ced5d} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_EP_FEATURE_HALT | |
|
||||||
|
|
||||||
Standard USB endpoint feature/status flags. |
|
||||||
|
|
||||||
#### `enum `[`usb_test_mode_selector`](#group__usb__protocol__group_1gade3fc5b71e88ed167a8c8d67ee087db3) {#group__usb__protocol__group_1gade3fc5b71e88ed167a8c8d67ee087db3} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_TEST_J | |
|
||||||
USB_TEST_K | |
|
||||||
USB_TEST_SE0_NAK | |
|
||||||
USB_TEST_PACKET | |
|
||||||
USB_TEST_FORCE_ENABLE | |
|
||||||
|
|
||||||
Standard USB Test Mode Selectors. |
|
||||||
|
|
||||||
#### `enum `[`usb_descriptor_type`](#group__usb__protocol__group_1ga87d46dd117d939964c939f1518dec93f) {#group__usb__protocol__group_1ga87d46dd117d939964c939f1518dec93f} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_DT_DEVICE | |
|
||||||
USB_DT_CONFIGURATION | |
|
||||||
USB_DT_STRING | |
|
||||||
USB_DT_INTERFACE | |
|
||||||
USB_DT_ENDPOINT | |
|
||||||
USB_DT_DEVICE_QUALIFIER | |
|
||||||
USB_DT_OTHER_SPEED_CONFIGURATION | |
|
||||||
USB_DT_INTERFACE_POWER | |
|
||||||
USB_DT_OTG | |
|
||||||
USB_DT_IAD | |
|
||||||
USB_DT_BOS | |
|
||||||
USB_DT_DEVICE_CAPABILITY | |
|
||||||
|
|
||||||
Standard USB descriptor types. |
|
||||||
|
|
||||||
#### `enum `[`usb_capability_type`](#group__usb__protocol__group_1gab4eef94a7d2be2570193c4f9400a6fa6) {#group__usb__protocol__group_1gab4eef94a7d2be2570193c4f9400a6fa6} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_DC_USB20_EXTENSION | |
|
||||||
|
|
||||||
USB Device Capability types. |
|
||||||
|
|
||||||
#### `enum `[`usb_capability_extension_attr`](#group__usb__protocol__group_1ga4fa8bfac1cf05037ee2ef05aaa190299) {#group__usb__protocol__group_1ga4fa8bfac1cf05037ee2ef05aaa190299} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_DC_EXT_LPM | |
|
||||||
|
|
||||||
USB Device Capability - USB 2.0 Extension To fill bmAttributes field of usb_capa_ext_desc_t structure. |
|
||||||
|
|
||||||
#### `enum `[`usb_ep_type`](#group__usb__protocol__group_1ga666def795a15032e5bf93a450f79113f) {#group__usb__protocol__group_1ga666def795a15032e5bf93a450f79113f} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_EP_TYPE_CONTROL | |
|
||||||
USB_EP_TYPE_ISOCHRONOUS | |
|
||||||
USB_EP_TYPE_BULK | |
|
||||||
USB_EP_TYPE_INTERRUPT | |
|
||||||
USB_EP_TYPE_MASK | |
|
||||||
|
|
||||||
Standard USB endpoint transfer types. |
|
||||||
|
|
||||||
#### `enum `[`usb_langid`](#group__usb__protocol__group_1ga1f92deaf695c06566999f0c5343978c1) {#group__usb__protocol__group_1ga1f92deaf695c06566999f0c5343978c1} |
|
||||||
|
|
||||||
Values | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
USB_LANGID_EN_US | English (United States) |
|
||||||
|
|
||||||
Standard USB language IDs for string descriptors. |
|
||||||
|
|
||||||
# struct `usb_setup_req_t` {#structusb__setup__req__t} |
|
||||||
|
|
||||||
A USB Device SETUP request. |
|
||||||
|
|
||||||
The data payload of SETUP packets always follows this structure. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bmRequestType`](#structusb__setup__req__t_1abea120ea756eb0abdb8aafb8713f61f4) | |
|
||||||
`public uint8_t `[`bRequest`](#structusb__setup__req__t_1a1e7be110861bd4ff75c86d5214f31543) | |
|
||||||
`public le16_t `[`wValue`](#structusb__setup__req__t_1a3f4a2e5f861f69f5ff919187c77997df) | |
|
||||||
`public le16_t `[`wIndex`](#structusb__setup__req__t_1ab714cf061bdd655bcf61fdd06e79582f) | |
|
||||||
`public le16_t `[`wLength`](#structusb__setup__req__t_1aa89ae35360f472f2cf0ea6374dde429e) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bmRequestType`](#structusb__setup__req__t_1abea120ea756eb0abdb8aafb8713f61f4) {#structusb__setup__req__t_1abea120ea756eb0abdb8aafb8713f61f4} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bRequest`](#structusb__setup__req__t_1a1e7be110861bd4ff75c86d5214f31543) {#structusb__setup__req__t_1a1e7be110861bd4ff75c86d5214f31543} |
|
||||||
|
|
||||||
#### `public le16_t `[`wValue`](#structusb__setup__req__t_1a3f4a2e5f861f69f5ff919187c77997df) {#structusb__setup__req__t_1a3f4a2e5f861f69f5ff919187c77997df} |
|
||||||
|
|
||||||
#### `public le16_t `[`wIndex`](#structusb__setup__req__t_1ab714cf061bdd655bcf61fdd06e79582f) {#structusb__setup__req__t_1ab714cf061bdd655bcf61fdd06e79582f} |
|
||||||
|
|
||||||
#### `public le16_t `[`wLength`](#structusb__setup__req__t_1aa89ae35360f472f2cf0ea6374dde429e) {#structusb__setup__req__t_1aa89ae35360f472f2cf0ea6374dde429e} |
|
||||||
|
|
||||||
# struct `usb_dev_desc_t` {#structusb__dev__desc__t} |
|
||||||
|
|
||||||
Standard USB device descriptor structure. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__dev__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__dev__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) | |
|
||||||
`public le16_t `[`bcdUSB`](#structusb__dev__desc__t_1a56cc8699d8752ad2ed929093577b524d) | |
|
||||||
`public uint8_t `[`bDeviceClass`](#structusb__dev__desc__t_1ab8e1b1fca77a607c39bba2278623d4f4) | |
|
||||||
`public uint8_t `[`bDeviceSubClass`](#structusb__dev__desc__t_1a260eec0b4e7279e6ecae808ca34c2604) | |
|
||||||
`public uint8_t `[`bDeviceProtocol`](#structusb__dev__desc__t_1a44e204b5f7158f4048edcb944351ce27) | |
|
||||||
`public uint8_t `[`bMaxPacketSize0`](#structusb__dev__desc__t_1a93b2c926b005917cdf2b5e7e4b3f80a2) | |
|
||||||
`public le16_t `[`idVendor`](#structusb__dev__desc__t_1a936f0362af0151f7370e3d18cdaa567c) | |
|
||||||
`public le16_t `[`idProduct`](#structusb__dev__desc__t_1ae8d97f443c3dc80e3f1d37f3d45c6d57) | |
|
||||||
`public le16_t `[`bcdDevice`](#structusb__dev__desc__t_1a55f0af10047f350be74d3e8c3884c035) | |
|
||||||
`public uint8_t `[`iManufacturer`](#structusb__dev__desc__t_1a7ee6ae41b483f3c49d1ddb39a83a8a43) | |
|
||||||
`public uint8_t `[`iProduct`](#structusb__dev__desc__t_1a77c33850b90ff7617243c40ce61d9168) | |
|
||||||
`public uint8_t `[`iSerialNumber`](#structusb__dev__desc__t_1aeb129fc0d41494f69369da70d73eac11) | |
|
||||||
`public uint8_t `[`bNumConfigurations`](#structusb__dev__desc__t_1abde4f60e84b2d9b10c27aa23bae62595) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__dev__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__dev__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__dev__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__dev__desc__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
#### `public le16_t `[`bcdUSB`](#structusb__dev__desc__t_1a56cc8699d8752ad2ed929093577b524d) {#structusb__dev__desc__t_1a56cc8699d8752ad2ed929093577b524d} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDeviceClass`](#structusb__dev__desc__t_1ab8e1b1fca77a607c39bba2278623d4f4) {#structusb__dev__desc__t_1ab8e1b1fca77a607c39bba2278623d4f4} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDeviceSubClass`](#structusb__dev__desc__t_1a260eec0b4e7279e6ecae808ca34c2604) {#structusb__dev__desc__t_1a260eec0b4e7279e6ecae808ca34c2604} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDeviceProtocol`](#structusb__dev__desc__t_1a44e204b5f7158f4048edcb944351ce27) {#structusb__dev__desc__t_1a44e204b5f7158f4048edcb944351ce27} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bMaxPacketSize0`](#structusb__dev__desc__t_1a93b2c926b005917cdf2b5e7e4b3f80a2) {#structusb__dev__desc__t_1a93b2c926b005917cdf2b5e7e4b3f80a2} |
|
||||||
|
|
||||||
#### `public le16_t `[`idVendor`](#structusb__dev__desc__t_1a936f0362af0151f7370e3d18cdaa567c) {#structusb__dev__desc__t_1a936f0362af0151f7370e3d18cdaa567c} |
|
||||||
|
|
||||||
#### `public le16_t `[`idProduct`](#structusb__dev__desc__t_1ae8d97f443c3dc80e3f1d37f3d45c6d57) {#structusb__dev__desc__t_1ae8d97f443c3dc80e3f1d37f3d45c6d57} |
|
||||||
|
|
||||||
#### `public le16_t `[`bcdDevice`](#structusb__dev__desc__t_1a55f0af10047f350be74d3e8c3884c035) {#structusb__dev__desc__t_1a55f0af10047f350be74d3e8c3884c035} |
|
||||||
|
|
||||||
#### `public uint8_t `[`iManufacturer`](#structusb__dev__desc__t_1a7ee6ae41b483f3c49d1ddb39a83a8a43) {#structusb__dev__desc__t_1a7ee6ae41b483f3c49d1ddb39a83a8a43} |
|
||||||
|
|
||||||
#### `public uint8_t `[`iProduct`](#structusb__dev__desc__t_1a77c33850b90ff7617243c40ce61d9168) {#structusb__dev__desc__t_1a77c33850b90ff7617243c40ce61d9168} |
|
||||||
|
|
||||||
#### `public uint8_t `[`iSerialNumber`](#structusb__dev__desc__t_1aeb129fc0d41494f69369da70d73eac11) {#structusb__dev__desc__t_1aeb129fc0d41494f69369da70d73eac11} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bNumConfigurations`](#structusb__dev__desc__t_1abde4f60e84b2d9b10c27aa23bae62595) {#structusb__dev__desc__t_1abde4f60e84b2d9b10c27aa23bae62595} |
|
||||||
|
|
||||||
# struct `usb_dev_qual_desc_t` {#structusb__dev__qual__desc__t} |
|
||||||
|
|
||||||
Standard USB device qualifier descriptor structure. |
|
||||||
|
|
||||||
This descriptor contains information about the device when running at the "other" speed (i.e. if the device is currently operating at high speed, this descriptor can be used to determine what would change if the device was operating at full speed.) |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__dev__qual__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__dev__qual__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) | |
|
||||||
`public le16_t `[`bcdUSB`](#structusb__dev__qual__desc__t_1a56cc8699d8752ad2ed929093577b524d) | |
|
||||||
`public uint8_t `[`bDeviceClass`](#structusb__dev__qual__desc__t_1ab8e1b1fca77a607c39bba2278623d4f4) | |
|
||||||
`public uint8_t `[`bDeviceSubClass`](#structusb__dev__qual__desc__t_1a260eec0b4e7279e6ecae808ca34c2604) | |
|
||||||
`public uint8_t `[`bDeviceProtocol`](#structusb__dev__qual__desc__t_1a44e204b5f7158f4048edcb944351ce27) | |
|
||||||
`public uint8_t `[`bMaxPacketSize0`](#structusb__dev__qual__desc__t_1a93b2c926b005917cdf2b5e7e4b3f80a2) | |
|
||||||
`public uint8_t `[`bNumConfigurations`](#structusb__dev__qual__desc__t_1abde4f60e84b2d9b10c27aa23bae62595) | |
|
||||||
`public uint8_t `[`bReserved`](#structusb__dev__qual__desc__t_1ab8303f57004812636de0daff446b975a) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__dev__qual__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__dev__qual__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__dev__qual__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__dev__qual__desc__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
#### `public le16_t `[`bcdUSB`](#structusb__dev__qual__desc__t_1a56cc8699d8752ad2ed929093577b524d) {#structusb__dev__qual__desc__t_1a56cc8699d8752ad2ed929093577b524d} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDeviceClass`](#structusb__dev__qual__desc__t_1ab8e1b1fca77a607c39bba2278623d4f4) {#structusb__dev__qual__desc__t_1ab8e1b1fca77a607c39bba2278623d4f4} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDeviceSubClass`](#structusb__dev__qual__desc__t_1a260eec0b4e7279e6ecae808ca34c2604) {#structusb__dev__qual__desc__t_1a260eec0b4e7279e6ecae808ca34c2604} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDeviceProtocol`](#structusb__dev__qual__desc__t_1a44e204b5f7158f4048edcb944351ce27) {#structusb__dev__qual__desc__t_1a44e204b5f7158f4048edcb944351ce27} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bMaxPacketSize0`](#structusb__dev__qual__desc__t_1a93b2c926b005917cdf2b5e7e4b3f80a2) {#structusb__dev__qual__desc__t_1a93b2c926b005917cdf2b5e7e4b3f80a2} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bNumConfigurations`](#structusb__dev__qual__desc__t_1abde4f60e84b2d9b10c27aa23bae62595) {#structusb__dev__qual__desc__t_1abde4f60e84b2d9b10c27aa23bae62595} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bReserved`](#structusb__dev__qual__desc__t_1ab8303f57004812636de0daff446b975a) {#structusb__dev__qual__desc__t_1ab8303f57004812636de0daff446b975a} |
|
||||||
|
|
||||||
# struct `usb_dev_bos_desc_t` {#structusb__dev__bos__desc__t} |
|
||||||
|
|
||||||
USB Device BOS descriptor structure. |
|
||||||
|
|
||||||
The BOS descriptor (Binary device Object Store) defines a root descriptor that is similar to the configuration descriptor, and is the base descriptor for accessing a family of related descriptors. A host can read a BOS descriptor and learn from the wTotalLength field the entire size of the device-level descriptor set, or it can read in the entire BOS descriptor set of device capabilities. The host accesses this descriptor using the GetDescriptor() request. The descriptor type in the GetDescriptor() request is set to BOS. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__dev__bos__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__dev__bos__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) | |
|
||||||
`public le16_t `[`wTotalLength`](#structusb__dev__bos__desc__t_1aef0f5fd0160660a30f12e0c82a73f3d7) | |
|
||||||
`public uint8_t `[`bNumDeviceCaps`](#structusb__dev__bos__desc__t_1aca1d3672075c130816f54ef305a5aa50) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__dev__bos__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__dev__bos__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__dev__bos__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__dev__bos__desc__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
#### `public le16_t `[`wTotalLength`](#structusb__dev__bos__desc__t_1aef0f5fd0160660a30f12e0c82a73f3d7) {#structusb__dev__bos__desc__t_1aef0f5fd0160660a30f12e0c82a73f3d7} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bNumDeviceCaps`](#structusb__dev__bos__desc__t_1aca1d3672075c130816f54ef305a5aa50) {#structusb__dev__bos__desc__t_1aca1d3672075c130816f54ef305a5aa50} |
|
||||||
|
|
||||||
# struct `usb_dev_capa_ext_desc_t` {#structusb__dev__capa__ext__desc__t} |
|
||||||
|
|
||||||
USB Device Capabilities - USB 2.0 Extension Descriptor structure. |
|
||||||
|
|
||||||
Defines the set of USB 1.1-specific device level capabilities. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__dev__capa__ext__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__dev__capa__ext__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) | |
|
||||||
`public uint8_t `[`bDevCapabilityType`](#structusb__dev__capa__ext__desc__t_1a1be7f18a35c3e636c095752fbb2149c0) | |
|
||||||
`public le32_t `[`bmAttributes`](#structusb__dev__capa__ext__desc__t_1aecf9cc6699e2f1905e31e11484095def) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__dev__capa__ext__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__dev__capa__ext__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__dev__capa__ext__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__dev__capa__ext__desc__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDevCapabilityType`](#structusb__dev__capa__ext__desc__t_1a1be7f18a35c3e636c095752fbb2149c0) {#structusb__dev__capa__ext__desc__t_1a1be7f18a35c3e636c095752fbb2149c0} |
|
||||||
|
|
||||||
#### `public le32_t `[`bmAttributes`](#structusb__dev__capa__ext__desc__t_1aecf9cc6699e2f1905e31e11484095def) {#structusb__dev__capa__ext__desc__t_1aecf9cc6699e2f1905e31e11484095def} |
|
||||||
|
|
||||||
# struct `usb_dev_lpm_desc_t` {#structusb__dev__lpm__desc__t} |
|
||||||
|
|
||||||
USB Device LPM Descriptor structure. |
|
||||||
|
|
||||||
The BOS descriptor and capabilities descriptors for LPM. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public `[`usb_dev_bos_desc_t`](.build/docs/internals_usb_protocol_group.md#structusb__dev__bos__desc__t)` `[`bos`](#structusb__dev__lpm__desc__t_1aa1445afe8acf8bc5d942305edeb6dfd1) | |
|
||||||
`public `[`usb_dev_capa_ext_desc_t`](.build/docs/internals_usb_protocol_group.md#structusb__dev__capa__ext__desc__t)` `[`capa_ext`](#structusb__dev__lpm__desc__t_1a260a9ee22980a1306d3dcff998fd48c7) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public `[`usb_dev_bos_desc_t`](.build/docs/internals_usb_protocol_group.md#structusb__dev__bos__desc__t)` `[`bos`](#structusb__dev__lpm__desc__t_1aa1445afe8acf8bc5d942305edeb6dfd1) {#structusb__dev__lpm__desc__t_1aa1445afe8acf8bc5d942305edeb6dfd1} |
|
||||||
|
|
||||||
#### `public `[`usb_dev_capa_ext_desc_t`](.build/docs/internals_usb_protocol_group.md#structusb__dev__capa__ext__desc__t)` `[`capa_ext`](#structusb__dev__lpm__desc__t_1a260a9ee22980a1306d3dcff998fd48c7) {#structusb__dev__lpm__desc__t_1a260a9ee22980a1306d3dcff998fd48c7} |
|
||||||
|
|
||||||
# struct `usb_association_desc_t` {#structusb__association__desc__t} |
|
||||||
|
|
||||||
Standard USB Interface Association Descriptor structure. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__association__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | size of this descriptor in bytes |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__association__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) | INTERFACE descriptor type. |
|
||||||
`public uint8_t `[`bFirstInterface`](#structusb__association__desc__t_1a85323ed61eb948bdea147d67e01ddc2d) | Number of interface. |
|
||||||
`public uint8_t `[`bInterfaceCount`](#structusb__association__desc__t_1a9674bda677f9898106ec2b6fe5f5723d) | value to select alternate setting |
|
||||||
`public uint8_t `[`bFunctionClass`](#structusb__association__desc__t_1a1ed25bc3320ca90e4d3acb4410aea704) | Class code assigned by the USB. |
|
||||||
`public uint8_t `[`bFunctionSubClass`](#structusb__association__desc__t_1ab25f749c091ce99b6868c949c4e45bc3) | Sub-class code assigned by the USB. |
|
||||||
`public uint8_t `[`bFunctionProtocol`](#structusb__association__desc__t_1a2b3b905ab34e6e28b57c3ddc51b3487c) | Protocol code assigned by the USB. |
|
||||||
`public uint8_t `[`iFunction`](#structusb__association__desc__t_1ab84d4b3bced6c09c62350d56fd69d226) | Index of string descriptor. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__association__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__association__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
size of this descriptor in bytes |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__association__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__association__desc__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
INTERFACE descriptor type. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bFirstInterface`](#structusb__association__desc__t_1a85323ed61eb948bdea147d67e01ddc2d) {#structusb__association__desc__t_1a85323ed61eb948bdea147d67e01ddc2d} |
|
||||||
|
|
||||||
Number of interface. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bInterfaceCount`](#structusb__association__desc__t_1a9674bda677f9898106ec2b6fe5f5723d) {#structusb__association__desc__t_1a9674bda677f9898106ec2b6fe5f5723d} |
|
||||||
|
|
||||||
value to select alternate setting |
|
||||||
|
|
||||||
#### `public uint8_t `[`bFunctionClass`](#structusb__association__desc__t_1a1ed25bc3320ca90e4d3acb4410aea704) {#structusb__association__desc__t_1a1ed25bc3320ca90e4d3acb4410aea704} |
|
||||||
|
|
||||||
Class code assigned by the USB. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bFunctionSubClass`](#structusb__association__desc__t_1ab25f749c091ce99b6868c949c4e45bc3) {#structusb__association__desc__t_1ab25f749c091ce99b6868c949c4e45bc3} |
|
||||||
|
|
||||||
Sub-class code assigned by the USB. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bFunctionProtocol`](#structusb__association__desc__t_1a2b3b905ab34e6e28b57c3ddc51b3487c) {#structusb__association__desc__t_1a2b3b905ab34e6e28b57c3ddc51b3487c} |
|
||||||
|
|
||||||
Protocol code assigned by the USB. |
|
||||||
|
|
||||||
#### `public uint8_t `[`iFunction`](#structusb__association__desc__t_1ab84d4b3bced6c09c62350d56fd69d226) {#structusb__association__desc__t_1ab84d4b3bced6c09c62350d56fd69d226} |
|
||||||
|
|
||||||
Index of string descriptor. |
|
||||||
|
|
||||||
# struct `usb_conf_desc_t` {#structusb__conf__desc__t} |
|
||||||
|
|
||||||
Standard USB configuration descriptor structure. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__conf__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__conf__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) | |
|
||||||
`public le16_t `[`wTotalLength`](#structusb__conf__desc__t_1aef0f5fd0160660a30f12e0c82a73f3d7) | |
|
||||||
`public uint8_t `[`bNumInterfaces`](#structusb__conf__desc__t_1a1ad144333e75b0d867e72f8a337cd510) | |
|
||||||
`public uint8_t `[`bConfigurationValue`](#structusb__conf__desc__t_1aecb9ae30bca0b044d2941120f21c2b29) | |
|
||||||
`public uint8_t `[`iConfiguration`](#structusb__conf__desc__t_1a5ad4440b4eb1935d66b154d274f8a272) | |
|
||||||
`public uint8_t `[`bmAttributes`](#structusb__conf__desc__t_1ae7c63b4cda39953db5710012a5d91c6f) | |
|
||||||
`public uint8_t `[`bMaxPower`](#structusb__conf__desc__t_1ad3ac74420252d7a6a03e1e9d7b481f9b) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__conf__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__conf__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__conf__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__conf__desc__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
#### `public le16_t `[`wTotalLength`](#structusb__conf__desc__t_1aef0f5fd0160660a30f12e0c82a73f3d7) {#structusb__conf__desc__t_1aef0f5fd0160660a30f12e0c82a73f3d7} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bNumInterfaces`](#structusb__conf__desc__t_1a1ad144333e75b0d867e72f8a337cd510) {#structusb__conf__desc__t_1a1ad144333e75b0d867e72f8a337cd510} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bConfigurationValue`](#structusb__conf__desc__t_1aecb9ae30bca0b044d2941120f21c2b29) {#structusb__conf__desc__t_1aecb9ae30bca0b044d2941120f21c2b29} |
|
||||||
|
|
||||||
#### `public uint8_t `[`iConfiguration`](#structusb__conf__desc__t_1a5ad4440b4eb1935d66b154d274f8a272) {#structusb__conf__desc__t_1a5ad4440b4eb1935d66b154d274f8a272} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bmAttributes`](#structusb__conf__desc__t_1ae7c63b4cda39953db5710012a5d91c6f) {#structusb__conf__desc__t_1ae7c63b4cda39953db5710012a5d91c6f} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bMaxPower`](#structusb__conf__desc__t_1ad3ac74420252d7a6a03e1e9d7b481f9b) {#structusb__conf__desc__t_1ad3ac74420252d7a6a03e1e9d7b481f9b} |
|
||||||
|
|
||||||
# struct `usb_iad_desc_t` {#structusb__iad__desc__t} |
|
||||||
|
|
||||||
Standard USB association descriptor structure. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__iad__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | Size of this descriptor in bytes. |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__iad__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) | Interface descriptor type. |
|
||||||
`public uint8_t `[`bFirstInterface`](#structusb__iad__desc__t_1a85323ed61eb948bdea147d67e01ddc2d) | Number of interface. |
|
||||||
`public uint8_t `[`bInterfaceCount`](#structusb__iad__desc__t_1a9674bda677f9898106ec2b6fe5f5723d) | value to select alternate setting |
|
||||||
`public uint8_t `[`bFunctionClass`](#structusb__iad__desc__t_1a1ed25bc3320ca90e4d3acb4410aea704) | Class code assigned by the USB. |
|
||||||
`public uint8_t `[`bFunctionSubClass`](#structusb__iad__desc__t_1ab25f749c091ce99b6868c949c4e45bc3) | Sub-class code assigned by the USB. |
|
||||||
`public uint8_t `[`bFunctionProtocol`](#structusb__iad__desc__t_1a2b3b905ab34e6e28b57c3ddc51b3487c) | Protocol code assigned by the USB. |
|
||||||
`public uint8_t `[`iFunction`](#structusb__iad__desc__t_1ab84d4b3bced6c09c62350d56fd69d226) | Index of string descriptor. |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__iad__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__iad__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
Size of this descriptor in bytes. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__iad__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__iad__desc__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
Interface descriptor type. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bFirstInterface`](#structusb__iad__desc__t_1a85323ed61eb948bdea147d67e01ddc2d) {#structusb__iad__desc__t_1a85323ed61eb948bdea147d67e01ddc2d} |
|
||||||
|
|
||||||
Number of interface. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bInterfaceCount`](#structusb__iad__desc__t_1a9674bda677f9898106ec2b6fe5f5723d) {#structusb__iad__desc__t_1a9674bda677f9898106ec2b6fe5f5723d} |
|
||||||
|
|
||||||
value to select alternate setting |
|
||||||
|
|
||||||
#### `public uint8_t `[`bFunctionClass`](#structusb__iad__desc__t_1a1ed25bc3320ca90e4d3acb4410aea704) {#structusb__iad__desc__t_1a1ed25bc3320ca90e4d3acb4410aea704} |
|
||||||
|
|
||||||
Class code assigned by the USB. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bFunctionSubClass`](#structusb__iad__desc__t_1ab25f749c091ce99b6868c949c4e45bc3) {#structusb__iad__desc__t_1ab25f749c091ce99b6868c949c4e45bc3} |
|
||||||
|
|
||||||
Sub-class code assigned by the USB. |
|
||||||
|
|
||||||
#### `public uint8_t `[`bFunctionProtocol`](#structusb__iad__desc__t_1a2b3b905ab34e6e28b57c3ddc51b3487c) {#structusb__iad__desc__t_1a2b3b905ab34e6e28b57c3ddc51b3487c} |
|
||||||
|
|
||||||
Protocol code assigned by the USB. |
|
||||||
|
|
||||||
#### `public uint8_t `[`iFunction`](#structusb__iad__desc__t_1ab84d4b3bced6c09c62350d56fd69d226) {#structusb__iad__desc__t_1ab84d4b3bced6c09c62350d56fd69d226} |
|
||||||
|
|
||||||
Index of string descriptor. |
|
||||||
|
|
||||||
# struct `usb_iface_desc_t` {#structusb__iface__desc__t} |
|
||||||
|
|
||||||
Standard USB interface descriptor structure. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__iface__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__iface__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) | |
|
||||||
`public uint8_t `[`bInterfaceNumber`](#structusb__iface__desc__t_1a3d66d88c5e928462aef62633449f1eb0) | |
|
||||||
`public uint8_t `[`bAlternateSetting`](#structusb__iface__desc__t_1a4cdd7aab185365e51a1e722f43073b8c) | |
|
||||||
`public uint8_t `[`bNumEndpoints`](#structusb__iface__desc__t_1acec2e7d68271baace354a0539f3d7e3d) | |
|
||||||
`public uint8_t `[`bInterfaceClass`](#structusb__iface__desc__t_1ae899427763e325f03241afc69a6e1ea0) | |
|
||||||
`public uint8_t `[`bInterfaceSubClass`](#structusb__iface__desc__t_1a3b3919d1203cd42550d77287f7585595) | |
|
||||||
`public uint8_t `[`bInterfaceProtocol`](#structusb__iface__desc__t_1a6872c4ec51fd061e2955f84d97bea2a7) | |
|
||||||
`public uint8_t `[`iInterface`](#structusb__iface__desc__t_1a2e4535908d90f195c6347a91e15b544d) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__iface__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__iface__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__iface__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__iface__desc__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bInterfaceNumber`](#structusb__iface__desc__t_1a3d66d88c5e928462aef62633449f1eb0) {#structusb__iface__desc__t_1a3d66d88c5e928462aef62633449f1eb0} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bAlternateSetting`](#structusb__iface__desc__t_1a4cdd7aab185365e51a1e722f43073b8c) {#structusb__iface__desc__t_1a4cdd7aab185365e51a1e722f43073b8c} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bNumEndpoints`](#structusb__iface__desc__t_1acec2e7d68271baace354a0539f3d7e3d) {#structusb__iface__desc__t_1acec2e7d68271baace354a0539f3d7e3d} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bInterfaceClass`](#structusb__iface__desc__t_1ae899427763e325f03241afc69a6e1ea0) {#structusb__iface__desc__t_1ae899427763e325f03241afc69a6e1ea0} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bInterfaceSubClass`](#structusb__iface__desc__t_1a3b3919d1203cd42550d77287f7585595) {#structusb__iface__desc__t_1a3b3919d1203cd42550d77287f7585595} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bInterfaceProtocol`](#structusb__iface__desc__t_1a6872c4ec51fd061e2955f84d97bea2a7) {#structusb__iface__desc__t_1a6872c4ec51fd061e2955f84d97bea2a7} |
|
||||||
|
|
||||||
#### `public uint8_t `[`iInterface`](#structusb__iface__desc__t_1a2e4535908d90f195c6347a91e15b544d) {#structusb__iface__desc__t_1a2e4535908d90f195c6347a91e15b544d} |
|
||||||
|
|
||||||
# struct `usb_ep_desc_t` {#structusb__ep__desc__t} |
|
||||||
|
|
||||||
Standard USB endpoint descriptor structure. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__ep__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__ep__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) | |
|
||||||
`public uint8_t `[`bEndpointAddress`](#structusb__ep__desc__t_1a527afb0f25cdd442d8d32c7df8e18c45) | |
|
||||||
`public uint8_t `[`bmAttributes`](#structusb__ep__desc__t_1ae7c63b4cda39953db5710012a5d91c6f) | |
|
||||||
`public le16_t `[`wMaxPacketSize`](#structusb__ep__desc__t_1ad083d80a481cb62796a7183f9240c914) | |
|
||||||
`public uint8_t `[`bInterval`](#structusb__ep__desc__t_1aff92277eea8536f7de1a88d818c91b9e) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__ep__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__ep__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__ep__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__ep__desc__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bEndpointAddress`](#structusb__ep__desc__t_1a527afb0f25cdd442d8d32c7df8e18c45) {#structusb__ep__desc__t_1a527afb0f25cdd442d8d32c7df8e18c45} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bmAttributes`](#structusb__ep__desc__t_1ae7c63b4cda39953db5710012a5d91c6f) {#structusb__ep__desc__t_1ae7c63b4cda39953db5710012a5d91c6f} |
|
||||||
|
|
||||||
#### `public le16_t `[`wMaxPacketSize`](#structusb__ep__desc__t_1ad083d80a481cb62796a7183f9240c914) {#structusb__ep__desc__t_1ad083d80a481cb62796a7183f9240c914} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bInterval`](#structusb__ep__desc__t_1aff92277eea8536f7de1a88d818c91b9e) {#structusb__ep__desc__t_1aff92277eea8536f7de1a88d818c91b9e} |
|
||||||
|
|
||||||
# struct `usb_str_desc_t` {#structusb__str__desc__t} |
|
||||||
|
|
||||||
A standard USB string descriptor structure. |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public uint8_t `[`bLength`](#structusb__str__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) | |
|
||||||
`public uint8_t `[`bDescriptorType`](#structusb__str__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public uint8_t `[`bLength`](#structusb__str__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8) {#structusb__str__desc__t_1a1deca1f1d6e5815b290e6e1015bce5b8} |
|
||||||
|
|
||||||
#### `public uint8_t `[`bDescriptorType`](#structusb__str__desc__t_1a67d7027b9eb9ed268d28e84fbc675707) {#structusb__str__desc__t_1a67d7027b9eb9ed268d28e84fbc675707} |
|
||||||
|
|
||||||
# struct `usb_str_lgid_desc_t` {#structusb__str__lgid__desc__t} |
|
||||||
|
|
||||||
## Summary |
|
||||||
|
|
||||||
Members | Descriptions |
|
||||||
--------------------------------|--------------------------------------------- |
|
||||||
`public `[`usb_str_desc_t`](.build/docs/internals_usb_protocol_group.md#structusb__str__desc__t)` `[`desc`](#structusb__str__lgid__desc__t_1a6b9de937ba1cb40f4b82094a8644c528) | |
|
||||||
`public le16_t `[`string`](#structusb__str__lgid__desc__t_1a79364ecffd40a6c3218c408b4891c460) | |
|
||||||
|
|
||||||
## Members |
|
||||||
|
|
||||||
#### `public `[`usb_str_desc_t`](.build/docs/internals_usb_protocol_group.md#structusb__str__desc__t)` `[`desc`](#structusb__str__lgid__desc__t_1a6b9de937ba1cb40f4b82094a8644c528) {#structusb__str__lgid__desc__t_1a6b9de937ba1cb40f4b82094a8644c528} |
|
||||||
|
|
||||||
#### `public le16_t `[`string`](#structusb__str__lgid__desc__t_1a79364ecffd40a6c3218c408b4891c460) {#structusb__str__lgid__desc__t_1a79364ecffd40a6c3218c408b4891c460} |
|
||||||
|
|
Loading…
Reference in new issue