From 602a94036adf21f7c576f9500c392a28c3c01d58 Mon Sep 17 00:00:00 2001 From: MiloradCvjetkovic Date: Tue, 4 Jun 2024 12:49:56 +0200 Subject: [PATCH] USB: update USB Device config file - change "relocate" to "locate" - update comments - update source files related to "relocate" to "locate" change - update documentation - update examples - update examples for CI --- .ci/USB/Device/RTE/USB/USBD_Config_0.h | 9 +++++---- .../Device/RTE/USB/USBD_Config_0.h.base@8.0.0 | 9 +++++---- .ci/USB/Device/RTE/USB/USBD_Config_1.h | 9 +++++---- .../Device/RTE/USB/USBD_Config_1.h.base@8.0.0 | 9 +++++---- .ci/USB/Device/RTE/USB/USBD_Config_2.h | 9 +++++---- .../Device/RTE/USB/USBD_Config_2.h.base@8.0.0 | 9 +++++---- .ci/USB/Device/RTE/USB/USBD_Config_3.h | 9 +++++---- .../Device/RTE/USB/USBD_Config_3.h.base@8.0.0 | 9 +++++---- Components/USB/Config/USBD_Config.h | 9 +++++---- Components/USB/Source/usbd_compatibility.h | 16 ++++++++-------- Components/USB/Source/usbd_section.h | 8 ++++---- .../USB/src/images/usbd_config_0_h.png | Bin 37848 -> 38077 bytes Documentation/Doxygen/USB/src/rl_usb.txt | 6 ++++-- .../USB/Device/HID/RTE/USB/USBD_Config_0.h | 9 +++++---- .../HID/RTE/USB/USBD_Config_0.h.base@8.0.0 | 9 +++++---- .../MassStorage/RTE/USB/USBD_Config_0.h | 9 +++++---- .../RTE/USB/USBD_Config_0.h.base@8.0.0 | 9 +++++---- .../Device/VirtualCOM/RTE/USB/USBD_Config_0.h | 9 +++++---- .../RTE/USB/USBD_Config_0.h.base@8.0.0 | 9 +++++---- 19 files changed, 91 insertions(+), 74 deletions(-) diff --git a/.ci/USB/Device/RTE/USB/USBD_Config_0.h b/.ci/USB/Device/RTE/USB/USBD_Config_0.h index 0e941fbf..028f4d42 100644 --- a/.ci/USB/Device/RTE/USB/USBD_Config_0.h +++ b/.ci/USB/Device/RTE/USB/USBD_Config_0.h @@ -41,7 +41,7 @@ #define USBD0_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD0_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD0_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD0_BUF_MEM_RELOC 0 +#define USBD0_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD0_BUF_MEM_SECTION_NAME ".driver.usbd0" + // // diff --git a/.ci/USB/Device/RTE/USB/USBD_Config_0.h.base@8.0.0 b/.ci/USB/Device/RTE/USB/USBD_Config_0.h.base@8.0.0 index 0e941fbf..028f4d42 100644 --- a/.ci/USB/Device/RTE/USB/USBD_Config_0.h.base@8.0.0 +++ b/.ci/USB/Device/RTE/USB/USBD_Config_0.h.base@8.0.0 @@ -41,7 +41,7 @@ #define USBD0_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD0_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD0_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD0_BUF_MEM_RELOC 0 +#define USBD0_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD0_BUF_MEM_SECTION_NAME ".driver.usbd0" + // // diff --git a/.ci/USB/Device/RTE/USB/USBD_Config_1.h b/.ci/USB/Device/RTE/USB/USBD_Config_1.h index 57edf45b..c890f30c 100644 --- a/.ci/USB/Device/RTE/USB/USBD_Config_1.h +++ b/.ci/USB/Device/RTE/USB/USBD_Config_1.h @@ -41,7 +41,7 @@ #define USBD1_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD1_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD1_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD1_BUF_MEM_RELOC 0 +#define USBD1_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD1_BUF_MEM_SECTION_NAME ".driver.usbd1" + // // diff --git a/.ci/USB/Device/RTE/USB/USBD_Config_1.h.base@8.0.0 b/.ci/USB/Device/RTE/USB/USBD_Config_1.h.base@8.0.0 index 57edf45b..c890f30c 100644 --- a/.ci/USB/Device/RTE/USB/USBD_Config_1.h.base@8.0.0 +++ b/.ci/USB/Device/RTE/USB/USBD_Config_1.h.base@8.0.0 @@ -41,7 +41,7 @@ #define USBD1_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD1_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD1_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD1_BUF_MEM_RELOC 0 +#define USBD1_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD1_BUF_MEM_SECTION_NAME ".driver.usbd1" + // // diff --git a/.ci/USB/Device/RTE/USB/USBD_Config_2.h b/.ci/USB/Device/RTE/USB/USBD_Config_2.h index e99f4b22..c60730cc 100644 --- a/.ci/USB/Device/RTE/USB/USBD_Config_2.h +++ b/.ci/USB/Device/RTE/USB/USBD_Config_2.h @@ -41,7 +41,7 @@ #define USBD2_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD2_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD2_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD2_BUF_MEM_RELOC 0 +#define USBD2_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD2_BUF_MEM_SECTION_NAME ".driver.usbd2" + // // diff --git a/.ci/USB/Device/RTE/USB/USBD_Config_2.h.base@8.0.0 b/.ci/USB/Device/RTE/USB/USBD_Config_2.h.base@8.0.0 index e99f4b22..c60730cc 100644 --- a/.ci/USB/Device/RTE/USB/USBD_Config_2.h.base@8.0.0 +++ b/.ci/USB/Device/RTE/USB/USBD_Config_2.h.base@8.0.0 @@ -41,7 +41,7 @@ #define USBD2_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD2_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD2_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD2_BUF_MEM_RELOC 0 +#define USBD2_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD2_BUF_MEM_SECTION_NAME ".driver.usbd2" + // // diff --git a/.ci/USB/Device/RTE/USB/USBD_Config_3.h b/.ci/USB/Device/RTE/USB/USBD_Config_3.h index 73823a3b..1dcc0d1f 100644 --- a/.ci/USB/Device/RTE/USB/USBD_Config_3.h +++ b/.ci/USB/Device/RTE/USB/USBD_Config_3.h @@ -41,7 +41,7 @@ #define USBD3_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD3_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD3_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD3_BUF_MEM_RELOC 0 +#define USBD3_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD3_BUF_MEM_SECTION_NAME ".driver.usbd3" + // // diff --git a/.ci/USB/Device/RTE/USB/USBD_Config_3.h.base@8.0.0 b/.ci/USB/Device/RTE/USB/USBD_Config_3.h.base@8.0.0 index 73823a3b..1dcc0d1f 100644 --- a/.ci/USB/Device/RTE/USB/USBD_Config_3.h.base@8.0.0 +++ b/.ci/USB/Device/RTE/USB/USBD_Config_3.h.base@8.0.0 @@ -41,7 +41,7 @@ #define USBD3_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD3_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD3_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD3_BUF_MEM_RELOC 0 +#define USBD3_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD3_BUF_MEM_SECTION_NAME ".driver.usbd3" + // // diff --git a/Components/USB/Config/USBD_Config.h b/Components/USB/Config/USBD_Config.h index 3a689d45..c14274e2 100644 --- a/Components/USB/Config/USBD_Config.h +++ b/Components/USB/Config/USBD_Config.h @@ -41,7 +41,7 @@ #define USBD%Instance%_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD%Instance%_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD%Instance%_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD%Instance%_BUF_MEM_RELOC 0 +#define USBD%Instance%_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD%Instance%_BUF_MEM_SECTION_NAME ".driver.usbd%Instance%" + // // diff --git a/Components/USB/Source/usbd_compatibility.h b/Components/USB/Source/usbd_compatibility.h index c75f39dc..7d83bb01 100644 --- a/Components/USB/Source/usbd_compatibility.h +++ b/Components/USB/Source/usbd_compatibility.h @@ -40,8 +40,8 @@ #ifndef USBD0_EP0_BUF_SIZE #define USBD0_EP0_BUF_SIZE (USBD0_MAX_PACKET0) #endif -#ifndef USBD0_BUF_MEM_RELOC -#define USBD0_BUF_MEM_RELOC (0) +#ifndef USBD0_BUF_MEM_LOCATE +#define USBD0_BUF_MEM_LOCATE (0) #endif #ifndef USBD1_CORE_THREAD_STACK_SIZE @@ -62,8 +62,8 @@ #ifndef USBD1_EP0_BUF_SIZE #define USBD1_EP0_BUF_SIZE (USBD1_MAX_PACKET0) #endif -#ifndef USBD1_BUF_MEM_RELOC -#define USBD1_BUF_MEM_RELOC (0) +#ifndef USBD1_BUF_MEM_LOCATE +#define USBD1_BUF_MEM_LOCATE (0) #endif #ifndef USBD2_CORE_THREAD_STACK_SIZE @@ -84,8 +84,8 @@ #ifndef USBD2_EP0_BUF_SIZE #define USBD2_EP0_BUF_SIZE (USBD2_MAX_PACKET0) #endif -#ifndef USBD2_BUF_MEM_RELOC -#define USBD2_BUF_MEM_RELOC (0) +#ifndef USBD2_BUF_MEM_LOCATE +#define USBD2_BUF_MEM_LOCATE (0) #endif #ifndef USBD3_CORE_THREAD_STACK_SIZE @@ -106,8 +106,8 @@ #ifndef USBD3_EP0_BUF_SIZE #define USBD3_EP0_BUF_SIZE (USBD3_MAX_PACKET0) #endif -#ifndef USBD3_BUF_MEM_RELOC -#define USBD3_BUF_MEM_RELOC (0) +#ifndef USBD3_BUF_MEM_LOCATE +#define USBD3_BUF_MEM_LOCATE (0) #endif diff --git a/Components/USB/Source/usbd_section.h b/Components/USB/Source/usbd_section.h index 184848e0..97d628b5 100644 --- a/Components/USB/Source/usbd_section.h +++ b/Components/USB/Source/usbd_section.h @@ -16,7 +16,7 @@ #define USBDn_DEV_BUF_MEM_SECTION_(str) __attribute__((section(str))) #ifdef USBD0_PORT -#if (USBD0_BUF_MEM_RELOC == 1) +#if (USBD0_BUF_MEM_LOCATE == 1) #define USBD0_DEV_BUF_MEM_SECTION USBDn_DEV_BUF_MEM_SECTION_(USBD0_BUF_MEM_SECTION_NAME) #else #define USBD0_DEV_BUF_MEM_SECTION @@ -24,7 +24,7 @@ #endif #ifdef USBD1_PORT -#if (USBD1_BUF_MEM_RELOC == 1) +#if (USBD1_BUF_MEM_LOCATE == 1) #define USBD1_DEV_BUF_MEM_SECTION USBDn_DEV_BUF_MEM_SECTION_(USBD1_BUF_MEM_SECTION_NAME) #else #define USBD1_DEV_BUF_MEM_SECTION @@ -32,7 +32,7 @@ #endif #ifdef USBD2_PORT -#if (USBD2_BUF_MEM_RELOC == 1) +#if (USBD2_BUF_MEM_LOCATE == 1) #define USBD2_DEV_BUF_MEM_SECTION USBDn_DEV_BUF_MEM_SECTION_(USBD2_BUF_MEM_SECTION_NAME) #else #define USBD2_DEV_BUF_MEM_SECTION @@ -40,7 +40,7 @@ #endif #ifdef USBD3_PORT -#if (USBD3_BUF_MEM_RELOC == 1) +#if (USBD3_BUF_MEM_LOCATE == 1) #define USBD3_DEV_BUF_MEM_SECTION USBDn_DEV_BUF_MEM_SECTION_(USBD3_BUF_MEM_SECTION_NAME) #else #define USBD3_DEV_BUF_MEM_SECTION diff --git a/Documentation/Doxygen/USB/src/images/usbd_config_0_h.png b/Documentation/Doxygen/USB/src/images/usbd_config_0_h.png index 636fd9456665acbc295a63e9d3daf61291a56d32..ca7d8001b555704a726b36385f23b6f2726383f5 100644 GIT binary patch literal 38077 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 z%0A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�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 literal 37848 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 S-<5#J5J@q)mnARW`2Qb620>l` diff --git a/Documentation/Doxygen/USB/src/rl_usb.txt b/Documentation/Doxygen/USB/src/rl_usb.txt index 3b9d8068..54735a7e 100644 --- a/Documentation/Doxygen/USB/src/rl_usb.txt +++ b/Documentation/Doxygen/USB/src/rl_usb.txt @@ -638,8 +638,10 @@ The configuration file USBD_Config_n.h contains the following sett - Enable OS String for device to contain Microsoft OS string descriptor. - Vendor Code specifies the vendor code used to retrieve associated feature descriptors. - Control Transfer Buffer Size specifies the maximum size of control transfer. -- Data Buffers specifies the relocation of the USB data buffers in memory. - - Relocate specifies if the USB data buffers are relocated to a specific memory address (via the linker script). +- Data Buffers is used for locating the USB data buffers in memory. + - Locate specifies if the USB data buffers are located in a specific memory (via the linker script). + This is usually necessary in case that USB Controller has some specific requirements regarding memory for USB transfers. + For example if USB Controller can only access specific memory, or if this memory needs to be non-cacheable. - Section Name specifies the section name for the USB data buffers that is used by the linker script to position it in memory. Default section name is .driver.usbd, for example for USB Device 0 the default section name is .driver.usbd0. - Use the OS Resources Settings to optimize the usage of OS resources. diff --git a/Examples/USB/Device/HID/RTE/USB/USBD_Config_0.h b/Examples/USB/Device/HID/RTE/USB/USBD_Config_0.h index 6953d1a8..33b14950 100644 --- a/Examples/USB/Device/HID/RTE/USB/USBD_Config_0.h +++ b/Examples/USB/Device/HID/RTE/USB/USBD_Config_0.h @@ -47,7 +47,7 @@ #define USBD0_DEV_DESC_IDPRODUCT 0x5901 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD0_DEV_DESC_BCDDEVICE 0x0100 // @@ -119,15 +119,16 @@ #define USBD0_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD0_BUF_MEM_RELOC 0 +#define USBD0_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD0_BUF_MEM_SECTION_NAME ".driver.usbd0" + // // diff --git a/Examples/USB/Device/HID/RTE/USB/USBD_Config_0.h.base@8.0.0 b/Examples/USB/Device/HID/RTE/USB/USBD_Config_0.h.base@8.0.0 index 0e941fbf..028f4d42 100644 --- a/Examples/USB/Device/HID/RTE/USB/USBD_Config_0.h.base@8.0.0 +++ b/Examples/USB/Device/HID/RTE/USB/USBD_Config_0.h.base@8.0.0 @@ -41,7 +41,7 @@ #define USBD0_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD0_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD0_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD0_BUF_MEM_RELOC 0 +#define USBD0_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD0_BUF_MEM_SECTION_NAME ".driver.usbd0" + // // diff --git a/Examples/USB/Device/MassStorage/RTE/USB/USBD_Config_0.h b/Examples/USB/Device/MassStorage/RTE/USB/USBD_Config_0.h index 7adcfcb4..75f52811 100644 --- a/Examples/USB/Device/MassStorage/RTE/USB/USBD_Config_0.h +++ b/Examples/USB/Device/MassStorage/RTE/USB/USBD_Config_0.h @@ -47,7 +47,7 @@ #define USBD0_DEV_DESC_IDPRODUCT 0x5903 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD0_DEV_DESC_BCDDEVICE 0x0100 // @@ -119,15 +119,16 @@ #define USBD0_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD0_BUF_MEM_RELOC 0 +#define USBD0_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD0_BUF_MEM_SECTION_NAME ".driver.usbd0" + // // diff --git a/Examples/USB/Device/MassStorage/RTE/USB/USBD_Config_0.h.base@8.0.0 b/Examples/USB/Device/MassStorage/RTE/USB/USBD_Config_0.h.base@8.0.0 index 0e941fbf..028f4d42 100644 --- a/Examples/USB/Device/MassStorage/RTE/USB/USBD_Config_0.h.base@8.0.0 +++ b/Examples/USB/Device/MassStorage/RTE/USB/USBD_Config_0.h.base@8.0.0 @@ -41,7 +41,7 @@ #define USBD0_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD0_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD0_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD0_BUF_MEM_RELOC 0 +#define USBD0_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD0_BUF_MEM_SECTION_NAME ".driver.usbd0" + // // diff --git a/Examples/USB/Device/VirtualCOM/RTE/USB/USBD_Config_0.h b/Examples/USB/Device/VirtualCOM/RTE/USB/USBD_Config_0.h index 355f615a..bdb250a8 100644 --- a/Examples/USB/Device/VirtualCOM/RTE/USB/USBD_Config_0.h +++ b/Examples/USB/Device/VirtualCOM/RTE/USB/USBD_Config_0.h @@ -47,7 +47,7 @@ #define USBD0_DEV_DESC_IDPRODUCT 0x5905 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD0_DEV_DESC_BCDDEVICE 0x0100 // @@ -119,15 +119,16 @@ #define USBD0_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD0_BUF_MEM_RELOC 0 +#define USBD0_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD0_BUF_MEM_SECTION_NAME ".driver.usbd0" + // // diff --git a/Examples/USB/Device/VirtualCOM/RTE/USB/USBD_Config_0.h.base@8.0.0 b/Examples/USB/Device/VirtualCOM/RTE/USB/USBD_Config_0.h.base@8.0.0 index 0e941fbf..028f4d42 100644 --- a/Examples/USB/Device/VirtualCOM/RTE/USB/USBD_Config_0.h.base@8.0.0 +++ b/Examples/USB/Device/VirtualCOM/RTE/USB/USBD_Config_0.h.base@8.0.0 @@ -41,7 +41,7 @@ #define USBD0_DEV_DESC_IDPRODUCT 0x0000 // Device Release Number <0x0000-0xFFFF> -// Device Release Number in binary-coded decimal (bcdDevice) +// Device Release Number in binary-coded decimal (bcdDevice). #define USBD0_DEV_DESC_BCDDEVICE 0x0100 // @@ -113,15 +113,16 @@ #define USBD0_EP0_BUF_SIZE 128 // Data Buffers -// Relocate -// Specifies if the USB data buffers are located at a specific memory address +// Locate +// Specifies if the USB data buffers are located in a specific memory // (via the linker script). -#define USBD0_BUF_MEM_RELOC 0 +#define USBD0_BUF_MEM_LOCATE 0 // Section Name // Specifies the section name for the USB data buffers // (for positioning via the linker script). #define USBD0_BUF_MEM_SECTION_NAME ".driver.usbd0" + // //