Add a test case for k_thread_foreach API.
Replace deprecated k_call_stacks_analyze API with
k_thread_foreach for existing test cases.
Signed-off-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com>
Deprecated k_call_stacks_analyze() API as it is only
dumping (printing) the statically defined main, idle,
work and ISR stacks.
Use k_thread_foreach() API which is a generic API
to iterate over threads.
Signed-off-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com>
Add k_thread_foreach API to iterate over all the threads in
the system.
This API can be used for debugging threads in multi threaded
environment to dump and analyze various thread parameters like
priority, state, stack address etc...
Signed-off-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com>
Zephyr supports fatfs, nffs and fcb as storage layer. fatfs and nffs
are less suited for application in memory restricted IC's. fcb has a
smaller footprint but has a complex api.
The proposed module is a module with a even smaller footprint compared
to fcb and a simple interface for reading and writing entries. The
module provides wear levelling of flash. This allows the module to be
used not only to store configuration settings but to store device state
(e.g. state of a light switch over reboots) of a zephyr device.
Fixes buffer overflow by introducing maximum read length in nvs_read()
and nvs_read_hist().
Fixes nvs_write() not to reflash the same data. Allows the user to do
call nvs_write() for all defined entries without worries about flash
wear.
Fixes garbage collection error where wrong data could be copied.
Add nvs_delete() to allow deleting a stored entry. A deleted entry will
not be copied to a new flash sector
Include flash wear information in the README.md documentation
0/25 Update module after reviewers remarks, added documentation to
nvs.h, removed README.md by nvs.rst in doc/subsystems folder
04/26 Update module after reviewers remarks, updated nvs.rst, added more
documentation to samples/subsys/nvs/src/main.c, updated doxygen info
in nvs.h (hope this time it works).
04/26 Update subsystems.rst to include nvs.restart
04/27 Updated nvs.c and nvs.h to avoid a possible flash deletion loop
when the file system is full.
04/29 Updated nvs_write to detect and ignore deletes of non-existing
items
05/06 Update NVS module to return standard error codes, removed low
level API, added configuration options. NVS now uses the board dts to
determine the flash storage location (FLASH_AREA_STORAGE_OFFSET).
05/06 Update nvs.rst. Updated intendation and added intermediate
variables in nvs.c to make the code easier to read.
05/06 Update nvs.rst.
05/07 Update nvs.rst
05/08 Changed the API to a more standard file system API.
05/08 Removed cnt_max from nvs_read() as it is not used.
05/08 Removed #ifdef(CONFIG_NVS_LOG) from nvs_priv.h, now the module can
be build with debugging off.
05/09 Removed configuration options for SECTOR_SIZE, SECTOR_COUNT and
MAX_ELEM_SIZE. It is now easy to support multiple NVS filesystems on
one or multiple devices. Changed logging to support newlib systems.
Thanks to Olivier Martin for reporting and proposed changes.
Signed-off-by: Laczen JMS <laczenjms@gmail.com>
Due to higher traffic demands when using 6lowpan, we should raise
the default BT RX buffer counts and sizes.
This avoids the following error on some HW:
[net/buf] [WRN] net_buf_alloc_len_debug: bt_buf_get_rx():4985:
Pool 0x20009424 low on buffers.
[net/buf] [WRN] net_buf_alloc_len_debug: bt_buf_get_rx():4985:
Pool 0x20009424 blocked for 0 secs
Signed-off-by: Michael Scott <michael@opensourcefoundries.com>
it seems regular expresssion is not supported in "source xxx" after
latest changes in build system.
So explictly list all def config
Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
* add pmod mux init to config the pmode interfaces
to the specific functions
* without pmod mux init, all pmod interfaces will be
GPIO, no interfaces for spi/i2c0/i2c1/uart0
Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
* add gpio, i2c, spi definitions
* optimize and bug fix the dts.fixup
* optimize and bug fix the em_starterkit related definitions
in dts folder
Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
* em9d is configured to use ccm, and no sram
* choose dccm as virtual sram to generate the correct definitions
of CONFIG_SRAM_XXX which are used in many places, e.g. lib-hooks.c.
Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
The original em7d, em9d and em11d are different configurations of
em_starterkit. They have the same peripherals, e.g. uart, spi, gpio
, ddr. The differences of them are in arc core configurations, interrupt
number assignment.
So em7d, em9d and em11d can be viewed in the same SoC family or SoC
series.
Referring other arch's implementation, this commit merges em7d, em9d
and em11d into the same SoC, named snps_emsk. This will eliminate
unnecessary duplication and make it easier for future maintainment.
Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
Implementation of Get Descriptor Request should not return interface
or endpoint descriptors in a single request without configuration
descriptor, see USB Spec. Revision 2.0, 9.4.3 Get Descriptor
This patch fixes linux kernel usbtest subtest 7 and subtest 11 errors.
Signed-off-by: Johann Fischer <j.fischer@phytec.de>
The zephyr.exe created when building a native POSIX application can take
some parameters that are documented in the "board" document, so add a
reference to that documentation here.
fixes: #6384
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
- Changed define for SETTINGS_CONFIG_PAGE_SIZE from a hard coded value
to reference build system generated FLASH_ERASE_BLOCK_SIZE. This value
comes from 'erase-block-size' found in the dtsi file of devices.
- Modified nrf52840.dtsi to include definition for 'erase-block-size'
Fixes#7107
Signed-off-by: David Leach <david.leach@nxp.com>
The 'if condition' in usb_handle_control_transfer is diffcult
to understand. So I rewrite another version.
Fixes#7340
Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
According to data sheet of dw_spi, ser reg is used to
select spi device/slave.
one bit in ser maps to one spi device/slave, i.e..
cs 0 ---> bit 0
cs 1 ---> bit 1
cs 2 ---> bit 2
the original code has a bug. the config->slave cannot
directly be written into ser. It should be mapped to
the correct bits through 1 << config->slave.
Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
Make sure that we compile sanity checked application with
more config options in order to catch compile issues faster.
In this case DHCPv4 + debugging options are enabled for
sanity checker.
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
If DHCPv4 was enabled, then there was compile error as the code
was still using wrong variables.
Fixes#7342
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
patch removes Kconfig defines for RAM and ROM size in x86. Instead
these values are derived from dts.
Signed-off-by: Savinay Dharmappa <savinay.dharmappa@intel.com>
Clear the toolchain capability cache when ccache is cleared so that
the different host-side caching mechanisms have a similair lifetime.
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
This ensures the every characteristic has a value attribute declared
with the same UUID since the old macro did not declare the value the
application would normally have to declare one itself using a different
UUID which is not allowed.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds BT_GATT_ATTRIBUTE which replaces BT_GATT_DESCRIPTOR as the
most basic way to declare an attribute since using descriptor may be
confusing when declaring things like a characteristic value since the
Bluetooth has their procedures completely separated.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
New test checks watchdog API if the simpliest test cases work
correctly. Each test contains description at the begining of the
source file.
This implementation replace old SoC-centric implementation.
Signed-off-by: Karol Lasończyk <karol.lasonczyk@nordicsemi.no>
Commit introduces support for watchdog configuration for Nordic
Semiconductor nRF SoCs in device tree.
Signed-off-by: Karol Lasończyk <karol.lasonczyk@nordicsemi.no>
New API enables setting watchdog timeout in the unit of microseconds.
It is possible to configure watchdog timer behavior in CPU sleep state
as well as when it is halted by the debugger.
It supports watchdogs with multiple reload channels.
Jira: ZEP-2564
Signed-off-by: Michał Kruszewski <michal.kruszewski@nordicsemi.no>
Signed-off-by: Karol Lasończyk <karol.lasonczyk@nordicsemi.no>
Add a check to raise an error if SYSCFG is disabled,
before doing the pin remaping for F0 SoCs on QFN28
and TSSOP20 packages.
Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
Enable System Configuration Controller clock in clock_control
instead of gpio controller when we set a gpio as interrupt.
We use System Configuration Controller to manage external
interrupts and enable PIN pair PA11/12, used in USB device,
mapped instead of PA9/10.
Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
Enable System Configuration Controller clock in clock_control
instead of gpio controller when we set a gpio as interrupt.
We use System Configuration Controller to manage external
interrupts and internal voltage reference for 48 MHz HSI
used in USB device.
Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
In STM32L0 series, HSI48 requires VREFINT and its buffer
with 48 MHz RC to be enabled. This patch enables
VREFINT reference for HSI48 oscillator.
Signed-off-by: Ilya Tagunov <tagunil@gmail.com>
Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
USB LL API provides the EP_TYPE_* defines. STM32Cube does not
provide USB LL API for STM32L0 family. Map EP_TYPE_* defines
to PCD_EP_TYPE_* defines.
Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
As this test uses dummy L2 driver, there is no need for ethernet
specific setup as that is not used for anything.
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
When creating IPv4 packet, the IPv4 header contained uninitialized
values. This was reported by valgrind.
Conditional jump or move depends on uninitialised value(s)
at 0x8066AB0: calc_chksum (utils.c:386)
by 0x8066C99: calc_chksum_pkt (utils.c:428)
by 0x806710A: net_calc_chksum (utils.c:487)
by 0x8067B8D: net_calc_chksum_icmpv4 (net_private.h:138)
by 0x8067FEC: net_icmpv4_set_chksum (icmpv4.c:90)
by 0x8068E7A: net_icmpv4_send_error (icmpv4.c:338)
by 0x807272F: send_icmp_error (connection.c:773)
by 0x80731A3: net_conn_input (connection.c:992)
by 0x806A34D: net_ipv4_process_pkt (ipv4.c:212)
by 0x805D8B9: process_data (net_core.c:103)
by 0x805D939: processing_data (net_core.c:117)
by 0x805E498: net_rx (net_core.c:300)
Uninitialised value was created by a stack allocation
at 0x804A437: setup_ipv4_tcp (main.c:297)
Conditional jump or move depends on uninitialised value(s)
at 0x8067117: net_calc_chksum (utils.c:489)
by 0x8067B8D: net_calc_chksum_icmpv4 (net_private.h:138)
by 0x8067FEC: net_icmpv4_set_chksum (icmpv4.c:90)
by 0x8068E7A: net_icmpv4_send_error (icmpv4.c:338)
by 0x807272F: send_icmp_error (connection.c:773)
by 0x80731A3: net_conn_input (connection.c:992)
by 0x806A34D: net_ipv4_process_pkt (ipv4.c:212)
by 0x805D8B9: process_data (net_core.c:103)
by 0x805D939: processing_data (net_core.c:117)
by 0x805E498: net_rx (net_core.c:300)
by 0x805E51D: process_rx_packet (net_core.c:312)
by 0x8085E87: work_q_main (work_q.c:39)
Uninitialised value was created by a stack allocation
at 0x804A437: setup_ipv4_tcp (main.c:297)
Fixes#7447
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
The options array was not initialized to 0 and the size of the
array was not set properly. This caused following error in valgrind
Conditional jump or move depends on uninitialised value(s)
at 0x8056777: coap_find_options (coap.c:1096)
by 0x804AEFF: test_parse_simple_pdu (main.c:455)
by 0x80500E6: zephyr_app_main (main.c:1585)
by 0x807E231: bg_thread_main (init.c:254)
by 0x80842D7: _thread_entry (thread.c:201)
by 0x8059618: posix_thread_starter (posix_core.c:301)
by 0x40752C8: start_thread (in /usr/lib/libpthread-2.25.so)
by 0x4182055: clone (in /usr/lib/libc-2.25.so)
Fixes#7447
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This will lead invalid IPv6 address to be generated. This was seen
in valgrind.
Conditional jump or move depends on uninitialised value(s)
at 0x40371A4: bcmp (vg_replace_strmem.c:1100)
by 0x8058833: net_ipv6_addr_cmp (net_ip.h:542)
by 0x805B999: ipv6_addr_find (net_if.c:768)
by 0x805BC8C: net_if_ipv6_addr_add (net_if.c:846)
by 0x804A7D7: _iface_ip6_add (mgmt.c:271)
by 0x804A5DC: test_core_event (mgmt.c:251)
by 0x804AD1D: test_mgmt (mgmt.c:320)
by 0x807EA81: run_test_functions (ztest.c:56)
by 0x807EC3C: test_cb (ztest.c:196)
by 0x8085AFD: _thread_entry (thread.c:201)
by 0x8051B43: posix_thread_starter (posix_core.c:301)
by 0x40752C8: start_thread (in /usr/lib/libpthread-2.25.so)
Fixes#7447
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This removes some tricky math to calculate lengths and offsets,
ensuring that, when appending the WebSocket UUID to the handshake
key, the key_accept buffer won't overflow.
Coverity-ID: 183057
Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
Rewrite prepare_reply() to reduce unnecessary string copies and calls
to net_pkt_append_all(). Also reduces some of the tricky string length
calculations.
Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
This is handier in some ways compared to the symbol reference pages. The
search feature is more flexible, and you get to see which dependencies
are currently unsatisfied.
Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
STM32Cube HAL core initialization functions HAL_GetTick()
and HAL_Delay() are implemented in all STM32 series. This
patch moves these functions in file stm32cube_hal.c under
"common" folder to reduce code duplication.
Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>