mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-08 23:12:57 +00:00
When an app uses a construct such as: obj-y = main.o ../../../../samples/bluetooth/gatt/hrs.o in its makefile, it causes said object module to be built in the source tree, not in the object tree. When building massively parallel, this usually resuls on the files getting corrupted, leading to bugs such as: https://jira.zephyrproject.org/browse/ZEP-2316 https://jira.zephyrproject.org/browse/ZEP-2317 src/../../../../samples/bluetooth/gatt/.gap.o.cmd:3: warning: NUL character seen; rest of line ignored src/../../../../samples/bluetooth/gatt/.gap.o.cmd:4: warning: NUL character seen; rest of line ignored src/../../../../samples/bluetooth/gatt/.gap.o.cmd:5: *** missing separator. Stop. as multiple build are trying to touch the same file in the source tree and of course, race and causes a build bug. We have known about this issue for a long time, but it requires modifications in the build system that there is no time to tackle. A suggested workaround is to include the source files into a local .c file, so this is what this patch does, to remove the random noise. Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> |
||
---|---|---|
.. | ||
src | ||
Makefile | ||
prj_bt.conf | ||
prj_frdm_k64f_prof.conf | ||
prj_frdm_k64f.conf | ||
prj_galileo_prof.conf | ||
prj_galileo.conf | ||
prj_qemu_x86.conf | ||
prj_quark_se_c1000_devboard.conf | ||
README.rst | ||
sample.yaml |
.. _zperf-sample: zperf: Network Traffic Generator ################################ Description *********** zperf is a network traffic generator for Zephyr that may be used to evaluate network bandwidth. Features ********* - Compatible with iPerf_2.0.5. - Client or server mode allowed without need to modify the source code. - Working with task profiler (PROFILER=1 to be set when building zperf) Supported Boards **************** zperf is board-agnostic. However, to run the zperf sample application, the target platform must provide a network interface supported by Zephyr. This sample application has been tested on the following platforms: - Freedom Board (FRDM K64F) - Quark SE C1000 Development Board - QEMU x86 Requirements ************ - iPerf 2.0.5 installed on the host machine - Supported board Depending on the network technology chosen, extra steps may be required to setup the network environment. Usage ***** If Zephyr acts as a client, iPerf must be executed in server mode. For example, the following command line must be used for UDP testing: .. code-block:: console $ iperf -s -l 1K -u -V -B 2001:db8::2 For TCP testing, the command line would look like this: .. code-block:: console $ iperf -s -l 1K -V -B 2001:db8::2 In the Zephyr console, zperf can be executed as follows: .. code-block:: console zperf> udp.upload 2001:db8::2 5001 10 1K 1M For TCP the zperf command would look like this: .. code-block:: console zperf> tcp.upload 2001:db8::2 5001 10 1K 1M If the IP addresses of Zephyr and the host machine are specified in the config file, zperf can be started as follows: .. code-block:: console zperf> udp.upload2 v6 10 1K 1M or like this if you want to test TCP: .. code-block:: console zperf> tcp.upload2 v6 10 1K 1M If Zephyr is acting as a server, set the download mode as follows for UDP: .. code-block:: console zperf> udp.download 5001 or like this for TCP: .. code-block:: console zperf> tcp.download 5001 and in the host side, iPerf must be executed with the following command line if you are testing UDP: .. code-block:: console $ iperf -l 1K -u -V -c 2001:db8::1 -p 5001 and this if you are testing TCP: .. code-block:: console $ iperf -l 1K -V -c 2001:db8::1 -p 5001 iPerf output can be limited by using the -b option if Zephyr is not able to receive all the packets in orderly manner.