libm: Eliminate a warning from lgamma(); Update some comments; Add some logic to handle broadcast better -- Currently conditioned out because it does not work.

This commit is contained in:
Gregory Nutt 2017-08-08 12:08:43 -06:00
parent e748a43f99
commit f3f522514e
4 changed files with 68 additions and 11 deletions

View File

@ -602,8 +602,10 @@ Configuration sub-directories
packet correction.
Trying again with HC1 compression, I see other isses. The first
frame is received correctly, the following frames have an incorrect
packet length.
frame is received correctly, but the following frames have an incorrect
packet length and generate RX FIFO errors. Forcing the send size to
12 bytes of payload in apps/examples/udp (vs 96), eliminates this
problem and the broadcast works well.
There is probably another issue related to broadcast TX setup: If
we are sending to the multicast or broadcast address, should we

View File

@ -2064,6 +2064,13 @@ Where <subdir> is one of the following:
In the main NSH console (in UART2) type: "pts_test &". It will create a
new console in UART3. Just press ENTER and start typing commands on it.
testlibcxx
----------
This is a configuration for testing lib++. See the section above entitled
"Testing LLVM LIBC++ with NuttX" for detailed information about this
configuration.
rgbled:
-------

View File

@ -813,21 +813,69 @@ static void spirit_transmit_work(FAR void *arg)
goto errout_with_csma;
}
#if 0 /* Not verified */
/* If we are sending to the multicast or broadcast address, we should
* disable ACKs, retries, and RX timeouts.
*
* Check if this is a broadcast, multicast, or unicast transfer
*/
if (pktmeta->pm_dest.pa_addr[0] == SPIRIT_BCAST_ADDRESS ||
pktmeta->pm_dest.pa_addr[0] == SPIRIT_MCAST_ADDRESS)
{
/* Broadcast or multicast... Disable the ACK response */
ret = spirit_pktcommon_enable_txautoack(spirit, S_DISABLE);
if (ret < 0)
{
wlerr("ERROR: spirit_pktcommon_enable_txautoack failed: %d\n",
ret);
goto errout_with_csma;
}
/* Make certain that the RX timeout is disabled */
ret = spirit_timer_set_rxtimeout_counter(spirit, 0);
if (ret < 0)
{
wlerr("ERROR: spirit_timer_set_rxtimeout_counter failed: %d\n",
ret);
goto errout_with_csma;
}
}
else
{
/* Unicast.. enable the Auto ACK response */
ret = spirit_pktcommon_enable_txautoack(spirit, S_ENABLE);
if (ret < 0)
{
wlerr("ERROR: spirit_pktcommon_enable_txautoack failed: %d\n",
ret);
goto errout_with_csma;
}
/* And start the RX timeout */
ret = spirit_timer_setup_rxtimeout(spirit, priv->counter,
priv->prescaler);
if (ret < 0)
{
wlerr("ERROR: spirit_timer_setup_rxtimeout failed: %d\n", ret);
goto errout_with_csma;
}
}
#else
/* Start the RX timeout */
ret = spirit_timer_setup_rxtimeout(spirit, priv->counter,
priv->prescaler);
ret = spirit_timer_setup_rxtimeout(spirit, priv->counter,
priv->prescaler);
if (ret < 0)
{
wlerr("ERROR: spirit_timer_setup_rxtimeout failed: %d\n", ret);
goto errout_with_csma;
}
/* REVISIT: If we are sending to the multicast or broadcast address,
* should we not also disable ACKs, retries, and RX timeouts? What
* will happen if multiple radios ACK? At a minimum it could keep
* the driver unnecessarily busy.
*/
#endif
/* Put the SPIRIT1 into TX state. This starts the transmission */

View File

@ -243,7 +243,7 @@ double lgamma_r(double x, int *signgamp)
double t;
double y;
double z;
double nadj;
double nadj = 0.0;
double p;
double p1;
double p2;