forked from Archive/PX4-Autopilot
Correction to the ZLP fix for the STM32 F4 OTG FS driver
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4591 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
parent
0c9433d032
commit
f1c5ee72b9
|
@ -2,3 +2,19 @@
|
|||
# For a description of the syntax of this configuration file,
|
||||
# see misc/tools/kconfig-language.txt.
|
||||
#
|
||||
|
||||
menu "Custom free memory command"
|
||||
source "$APPSDIR/system/free/Kconfig"
|
||||
endmenu
|
||||
|
||||
menu "I2C tool"
|
||||
source "$APPSDIR/system/i2c/Kconfig"
|
||||
endmenu
|
||||
|
||||
menu "FLASH Program Installation"
|
||||
source "$APPSDIR/system/install/Kconfig"
|
||||
endmenu
|
||||
|
||||
menu "readline() support"
|
||||
source "$APPSDIR/system/readline/Kconfig"
|
||||
endmenu
|
||||
|
|
|
@ -2,3 +2,49 @@
|
|||
# For a description of the syntax of this configuration file,
|
||||
# see misc/tools/kconfig-language.txt.
|
||||
#
|
||||
|
||||
#if I2C
|
||||
config I2CTOOL_BUILTIN
|
||||
int "NSH built-in command"
|
||||
default y
|
||||
depends on NSH_BUILTIN_APPS
|
||||
---help---
|
||||
Build the tools as an NSH built-in command
|
||||
|
||||
config I2CTOOL_MINBUS
|
||||
int "Minimum bus number"
|
||||
default 0
|
||||
---help---
|
||||
Smallest bus index supported by the hardware (default 0).
|
||||
|
||||
config I2CTOOL_MAXBUS
|
||||
int "Maximum bus number"
|
||||
default 3
|
||||
---help---
|
||||
Largest bus index supported by the hardware (default 3)
|
||||
|
||||
config I2CTOOL_MINADDR
|
||||
int "Minimum I2C address"
|
||||
default 0x03
|
||||
---help---
|
||||
Minium 7-bit device address (default: 0x03)
|
||||
|
||||
config I2CTOOL_MAXADDR
|
||||
int "Maximum I2C address"
|
||||
default 0x77
|
||||
---help---
|
||||
Largest 7-bit device address (default: 0x77)
|
||||
|
||||
config I2CTOOL_MAXREGADDR
|
||||
int "Maximum I2C register address"
|
||||
default 0xff
|
||||
---help---
|
||||
Largest I2C register address (default: 0xff)
|
||||
|
||||
config I2CTOOL_DEFFREQ
|
||||
int "Default I2C frequency"
|
||||
default 4000000
|
||||
---help---
|
||||
Default I2C frequency (default: 4000000)
|
||||
|
||||
#endif
|
|
@ -2,3 +2,30 @@
|
|||
# For a description of the syntax of this configuration file,
|
||||
# see misc/tools/kconfig-language.txt.
|
||||
#
|
||||
|
||||
config READLINE_ECHO
|
||||
bool "Echo character input"
|
||||
default y
|
||||
---help---
|
||||
Echo received character input back via stdout. This is normal
|
||||
behavior and should be selected unless the source of stdin input
|
||||
already has local echo support or you need to suppress the back-channel
|
||||
responses for any other reason.
|
||||
|
||||
choice
|
||||
prompt "Newline Options"
|
||||
default EOL_IS_EITHER_CRLF
|
||||
|
||||
config EOL_IS_CR
|
||||
bool "EOL is CR"
|
||||
|
||||
config EOL_IS_LF
|
||||
bool "EOL is LF"
|
||||
|
||||
config EOL_IS_BOTH_CRLF
|
||||
bool "EOL is CR and LF"
|
||||
|
||||
config EOL_IS_EITHER_CRLF
|
||||
bool "EOL is CR or LF"
|
||||
|
||||
endchoice
|
||||
|
|
|
@ -1027,6 +1027,11 @@ static void stm32_epin_request(FAR struct stm32_usbdev_s *priv,
|
|||
|
||||
if (privreq->req.len == 0)
|
||||
{
|
||||
/* The ZLP flag is set TRUE whenever we want to force the driver to
|
||||
* send a zero-length-packet on the next pass through the loop (below).
|
||||
* The flag is cleared whenever a packet is sent in the loop below.
|
||||
*/
|
||||
|
||||
privep->zlp = true;
|
||||
}
|
||||
|
||||
|
@ -1043,6 +1048,10 @@ static void stm32_epin_request(FAR struct stm32_usbdev_s *priv,
|
|||
bytesleft = privreq->req.len - privreq->req.xfrd;
|
||||
nbytes = bytesleft;
|
||||
|
||||
/* Assume no zero-length-packet on the next pass through this loop */
|
||||
|
||||
privep->zlp = false;
|
||||
|
||||
/* Limit the size of the transfer to one full packet and handle
|
||||
* zero-length packets (ZLPs).
|
||||
*/
|
||||
|
@ -1053,7 +1062,6 @@ static void stm32_epin_request(FAR struct stm32_usbdev_s *priv,
|
|||
* the request.
|
||||
*/
|
||||
|
||||
privep->zlp = false;
|
||||
if (nbytes >= privep->ep.maxpacket)
|
||||
{
|
||||
nbytes = privep->ep.maxpacket;
|
||||
|
@ -1066,6 +1074,14 @@ static void stm32_epin_request(FAR struct stm32_usbdev_s *priv,
|
|||
if (bytesleft == privep->ep.maxpacket &&
|
||||
(privreq->req.flags & USBDEV_REQFLAGS_NULLPKT) != 0)
|
||||
{
|
||||
/* The ZLP flag is set TRUE whenever we want to force
|
||||
* the driver to send a zero-length-packet on the next
|
||||
* pass through this loop. The flag is cleared (above)
|
||||
* whenever we are committed to sending any packet and
|
||||
* set here when we want to force one more pass through
|
||||
* the loop.
|
||||
*/
|
||||
|
||||
privep->zlp = true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue