The official git repository for OSD-Contiki, the open source OS for the Internet of Things
Go to file
George Oikonomou 568973f6ec Don't flush the CC2538 RF RX FIFO unconditionally
After reading a frame, `read()` checks the status of the RX FIFO:

* If an overflow is detected, the FIFO gets flushed
* If there are more frames in the FIFO, the `cc2538_rf_process` will get polled again in order to read out the next frame.

#1550 changed `read()`, which now performs the above check for non-poll mode, but it then flushes the FIFO unconditionally. Therefore, if there are two or more frames in the FIFO, they will get flushed before the `cc2538_rf_process` has had a chance to read them out. This results in missed frames.

Reproducing this is trivial: Build a CC2538 sniffer and see how it will never show you .15.4 ACK frames. ACK reception completes while `read()` is still streaming the previous captured frame to the host. Upon completion, the FIFO will get flushed and the ACK will get lost.

This pull proposes removing the unconditional flush and reverting to the original logic for non-TSCH operation.

Pinging @thomas-ha here for input regarding poll mode.

This pull sits on top of #1778
2016-07-17 00:24:47 +01:00
apps Orchestra: added support for RPL non-storing mode 2016-06-08 14:03:24 +02:00
core TSCH: add RADIO_DELAY_BEFORE_DETECT to rx guard time when waiting for a packet to be received 2016-07-16 18:08:41 +01:00
cpu Don't flush the CC2538 RF RX FIFO unconditionally 2016-07-17 00:24:47 +01:00
dev Merge pull request #1673 from njh/enc28j60_init_const 2016-06-03 19:46:31 +02:00
doc Fix doxygen warning 2016-03-15 10:25:05 +01:00
examples Merge pull request #1777 from herjulf/master 2016-07-15 20:30:06 +02:00
lib/newlib Implement generic Newlib syscalls 2015-12-16 19:50:49 +01:00
platform Merge pull request #1727 from g-oikonomou/contrib/cc26xx/trng 2016-07-16 23:34:53 +01:00
regression-tests Incorporate latest changes on rpl tests to 23-rpl-non-storing 2016-06-08 14:09:43 +02:00
tools Merge pull request #1730 from groessler/something_to_pull 2016-07-06 09:17:39 +02:00
.gitattributes Add binary files file extension 2015-10-22 16:19:39 +02:00
.gitignore Merge pull request #1469 from wbober/nrf52dk-pr 2016-06-01 23:11:39 +02:00
.gitmodules Align to current master 2015-09-04 17:01:04 +02:00
.travis.yml Run RPL regression tests in non-storing mode 2016-06-08 14:03:19 +02:00
CONTRIBUTING.md Updated CONTRIBUTING.md to reflect Contiki's new merging policy 2015-08-18 22:06:56 +02:00
LICENSE Removed the explicit year 2012 to make it more generic 2012-10-25 23:08:54 +02:00
Makefile.include Extended SOURCEDIRS variable with EXTRALDIRS variable in Makefile.include 2016-02-15 09:37:38 +01:00
README-BUILDING.md Rename to md 2013-03-26 23:15:37 +01:00
README-EXAMPLES.md Several minor consistency improvements. 2013-07-31 00:55:31 +02:00
README.md Travis icon in README.md: show build status of the current master rather than latest build status (can be any pull request) 2015-08-19 09:21:38 +02:00

The Contiki Operating System

Build Status

Contiki is an open source operating system that runs on tiny low-power microcontrollers and makes it possible to develop applications that make efficient use of the hardware while providing standardized low-power wireless communication for a range of hardware platforms.

Contiki is used in numerous commercial and non-commercial systems, such as city sound monitoring, street lights, networked electrical power meters, industrial monitoring, radiation monitoring, construction site monitoring, alarm systems, remote house monitoring, and so on.

For more information, see the Contiki website:

http://contiki-os.org