Date   

tinycrypt - mbedtls

Marcus Shawcroft <marcus.shawcroft@...>
 

Hi,

We have two crypto libraries in /ext, tinycrypt and mbedtls. Can
someone help me understand:
- What is the plan / strategy here, are we moving the code base from
one to the other.
- Do we expect both to coexist in the tree long term.
- Where there are overlaps in features/capability are we intending to
prefer one implementation over the other.

?

Cheers
/Marcus


Re: Sensor result representation.

Davidoaia, Bogdan M <bogdan.m.davidoaia@...>
 

The Grove temperature sensor is under drivers/grove/temperature_sensor.c. The drivers that use double but don't really need to should be modified regardless of anything else.

The idea with the conversion helper was to allow developers to get values with the types best suited for their needs without restricting the drivers to a certain value type. Didn't think that developers would neglect to call the helper function, but in the idea of simplifying things here are my thoughts:

I agree that there is no need for _INT and _Q16_16 and we can eliminate them.

If we want to define specific value types for each channel type, then we might as well have the same type for all the channels. As you also pointed out, using double is not really necessary for most drivers and the ones that need it can just return the values converted to _INT_PLUS_MICRO.

As such, we could eliminate the type field altogether and have the implicit type _INT_PLUS_MICRO (although this should be done as a separate step, as it will affect the apps that use the type field).

If you think this is ok and nobody has an objection to this change, then I can start working on it next Wednesday as I am currently away with only access to email from time to time.

Regards,
Bogdan

-----Original Message-----
From: Marcus Shawcroft [mailto:marcus.shawcroft(a)gmail.com]
Sent: Tuesday, November 29, 2016 4:20 PM
To: Davidoaia, Bogdan M <bogdan.m.davidoaia(a)intel.com>
Cc: devel(a)lists.zephyrproject.org
Subject: [devel] Re: Sensor result representation.

Hi Bogdan,


My thoughts inline...

On 29 November 2016 at 11:41, Davidoaia, Bogdan M <bogdan.m.davidoaia(a)intel.com> wrote:

As you pointed out, there is no fixed rule for sensor value type. The reason for the flexibility is that each driver computes values using their own formula, so it may be more convenient to use a certain type.

We didn't want to use double everywhere, because floating point operations come with a cost.
Indeed, on some platforms the use of double will come with a very significant code size, performance and power implication.

However some sensors, such as the Grove temperature sensor uses logarithm to compute values, so doubles are needed.
Interresting. That sounds like a detail for the grove temperature sensor driver to hide. If(f) temperature sensors were defined to return a fixed point representation then a driver would if necessary have the option of using floating point arithmetic internally (or using a variety of other floating point avoidance strategies). (I went looking for the driver to take a peek, but can;t find it, do we have a driver this sensor yet?)

I'm reluctant to enforce a fixed type to be returned by the drivers, as this may result in some conversions and loss of precision if apps require types different from the default.
As a compromise, the sensor API could offer a function for converting a generic sensor_value struct to a specific value type. This way, the app can decide what type it wants to use, without having to write the code for converting between value types.

What are your thoughts on such an approach?
I'm concerned that there are drawbacks to this approach:

It has the effect of undermining application portability as a concept in a platform OS. It offloads the responsibility to normalize results presented in different formats to the application. Agreed such formatting is straight forward and calling a helper to do the formatting is trivial. But many application builders will neglect to call the conversion helper, because they don't need to. They will build their application against one set of devices and it just works!
When they switch devices, or someone else runs the application to another platform it will break because they forgot to call the result format futzing helper functions after getting results from the driver.

In effect the flexibility in the API makes it possible, (and even
encourages) applications that are not portable across zephyr platforms.

Many drivers will be added to the tree that make un-necessary use of potentially expensive operations (we have 4 examples already just among the temperature drivers, see below). For folks that don't care about power this is a none issue, for folks that do care, they have no way around the issue.

Looking at the 4 temp drivers we currently have in tree that report double results:

lsm6ds0: Converts an integer value to double performance a double / and a double +
lps25hb: Converts integer->double, performs double / and double +
th02: Converts integer->double, performs double / and double +
lsm9ds0: Performs all internal computation in integer form then converts to double to return the value.

None of these drivers actually need double arithmetic, and the last one is only converting to double in order to present the result. All of these drivers can be trivially be adjusted to avoid floating point operations completely, returning INT_PLUS_MICRO with no loss of precision and no impact from the implied loss of dynamic range.

We should try to keep the public facing APIs as simple and consistent as possible in order to simplify applications and maximize their portability (across boards/socs/devices).

Many (if not the majority) of IOT shaped applications are likely to be sensitive to footprint and power. Folks building in that space, on some platforms, are going to be sensitive to the unnecessary use of floating point arithmetic. The folks who don't care about power, won't mind (or notice) the additional conversion from fixed point to floating point if they choose to build their application in floating point.

For temperature, I'm struggling to see real work devices where type_int__plus_micro does not provide sufficient precision or we need the additional dynamic range of double. I suspect that if we looked at each of the other channel types in detail we would find the same, ie for most type_int_plus_micro is good enough and for the rest type_double is necessary.

Aside from defining specific formats for specific channel types, there are other simplifications possible:

We currently have 3 different fixed point representations and one floating point representation, I think there are some straight forward simplifications possible that result in no loss of precision, no loss of dynamic range and are trivial in terms of additional conversion cost compared to the cost of dealing with different representations:

1) TYPE_INT and TYPE_INT_PLUS_MICRO are identical except that TYPE_INT indicates that the umicro part of TYPE_INT_PLUS_MICRO is 0. Hence we can drop TYPE_INT and use TYPE_INT_PLUS_MICRO instead setting umicro = 0 explicitily.

2) TYPE_INT_PLUS_MICRO and SENSOR_VALUE_TYPE_Q16_16 differ only in
precision. Both are passed in the same sized data structure. There
are no instances of the latter in master. We could drop Q16_16 from sensor.h now and have all future need for a fixed point representation use TYPE_INT_PLUS_MICRO

If we do 1 and 2 above we end up with 1 fixed point representation and
1 floating point representation. We get the benefit of simplifying the interface and there is a trivial amount of code to change in the process.


Cheers
/Marcus


Daily JIRA Digest

donotreply@...
 

NEW JIRA items within last 24 hours: 3
[ZEP-1359] Ability to use hardware-based block ciphers
https://jira.zephyrproject.org/browse/ZEP-1359

[ZEP-1361] IP stack is broken
https://jira.zephyrproject.org/browse/ZEP-1361

[ZEP-1360] Target link-layer address in Neighbor Advertisement ignored
https://jira.zephyrproject.org/browse/ZEP-1360


UPDATED JIRA items within last 24 hours: 16
[ZEP-839] Thread Requirements on RFC6282
https://jira.zephyrproject.org/browse/ZEP-839

[ZEP-835] Thread Requirements on RFC2460
https://jira.zephyrproject.org/browse/ZEP-835

[ZEP-836] Thread Requirements on RFC4291
https://jira.zephyrproject.org/browse/ZEP-836

[ZEP-837] Thread Requirements on RFC4443
https://jira.zephyrproject.org/browse/ZEP-837

[ZEP-838] Thread Requirements on RFC4944
https://jira.zephyrproject.org/browse/ZEP-838

[ZEP-834] Thread Requirements on RFC1122
https://jira.zephyrproject.org/browse/ZEP-834

[ZEP-794] Requirements for Internet Hosts - Communication Layers
https://jira.zephyrproject.org/browse/ZEP-794

[ZEP-810] Network Time Protocol v4
https://jira.zephyrproject.org/browse/ZEP-810

[ZEP-803] Dynamic Configurarion of IPv4 Link-local Addresses
https://jira.zephyrproject.org/browse/ZEP-803

[ZEP-802] DNS Configuration Options for DHCPv6
https://jira.zephyrproject.org/browse/ZEP-802

[ZEP-1179] Build issues when compiling with LLVM from ISSM (icx)
https://jira.zephyrproject.org/browse/ZEP-1179

[ZEP-710] debugging on ARC results in spam of symtab internal error messages
https://jira.zephyrproject.org/browse/ZEP-710

[ZEP-1345] cpu context save and restore could corrupt stack
https://jira.zephyrproject.org/browse/ZEP-1345

[ZEP-1086] yaip: Cryptic debug messages
https://jira.zephyrproject.org/browse/ZEP-1086

[ZEP-544] Web site search on /doc pages returns no results
https://jira.zephyrproject.org/browse/ZEP-544

[ZEP-1236] Chinese video in main page ... is in English
https://jira.zephyrproject.org/browse/ZEP-1236


CLOSED JIRA items within last 24 hours: 12
[ZEP-1346] (Won't Do) UART doesn't work on Arduino 101
https://jira.zephyrproject.org/browse/ZEP-1346

[ZEP-319] (Won't Do) IOVec-like API to send and receive to/from UDP sockets.
https://jira.zephyrproject.org/browse/ZEP-319

[ZEP-1268] (Done) Echo server does not reply to echo request
https://jira.zephyrproject.org/browse/ZEP-1268

[ZEP-473] (Won't Do) Destination multicast address is not correct
https://jira.zephyrproject.org/browse/ZEP-473

[ZEP-1293] (Won't Do) ENC28J60 driver doesn't work on Arduino 101
https://jira.zephyrproject.org/browse/ZEP-1293

[ZEP-1105] (Duplicate) Reviewers are not being added occasionally
https://jira.zephyrproject.org/browse/ZEP-1105

[ZEP-1225] (Fixed) CI zephyr-sanity is not connecting to Gerrit server
https://jira.zephyrproject.org/browse/ZEP-1225

[ZEP-1349] (Fixed) ARC sleep needs to pass interrupt priority threshold when interrupts are enabled
https://jira.zephyrproject.org/browse/ZEP-1349

[ZEP-868] (Won't Do) TCP Connections are broken on Galileo
https://jira.zephyrproject.org/browse/ZEP-868

[ZEP-1267] (Done) Echo server crashes upon reception of router advertisement
https://jira.zephyrproject.org/browse/ZEP-1267

[ZEP-741] (Won't Do) Network TCP API is adhoc and makes arbitrary assumptions
https://jira.zephyrproject.org/browse/ZEP-741

[ZEP-1350] (Done) Wrong source MAC address in echo reply
https://jira.zephyrproject.org/browse/ZEP-1350


RESOLVED JIRA items within last 24 hours: 0


Daily Gerrit Digest

donotreply@...
 

NEW within last 24 hours:
- https://gerrit.zephyrproject.org/r/7756 : counter: Refactor main Kconfig file
- https://gerrit.zephyrproject.org/r/7754 : samples: softmac: Add softmac shell sample
- https://gerrit.zephyrproject.org/r/7755 : net: todo: Removed already done tasks
- https://gerrit.zephyrproject.org/r/7753 : net: icmpv6: Do not set destination ll address
- https://gerrit.zephyrproject.org/r/7752 : tests: net: ipv6: Add test for neighbor advertisement
- https://gerrit.zephyrproject.org/r/7751 : tests: net: ipv6: Wrong IP address was added to cache
- https://gerrit.zephyrproject.org/r/7748 : net: ipv6: Make NA sending function public
- https://gerrit.zephyrproject.org/r/7741 : samples: net: echo_client: Provide a configuration for arduino_101
- https://gerrit.zephyrproject.org/r/7750 : tests: net: ipv6: Fix prefix test
- https://gerrit.zephyrproject.org/r/7747 : net: ipv6: Fix debug print when DAD fails
- https://gerrit.zephyrproject.org/r/7749 : net: if: Print IPv6 prefix lifetime timeout value
- https://gerrit.zephyrproject.org/r/7746 : arch: arm: Custom IRQ vector tables for low-latency interrupts
- https://gerrit.zephyrproject.org/r/7739 : ieee802154: cc2520: Externalize how GPIOs are configured
- https://gerrit.zephyrproject.org/r/7740 : board: arduino_101: Pinumx gpio/spi pins relevantly
- https://gerrit.zephyrproject.org/r/7744 : samples: net: Do not quit echo-server if sending fails
- https://gerrit.zephyrproject.org/r/7743 : watchdog: Refactor main Kconfig file
- https://gerrit.zephyrproject.org/r/7745 : net: arp: Add ethernet header if it is missing
- https://gerrit.zephyrproject.org/r/7707 : samples: pwm: update PWM sample to support ST Nucleo boards
- https://gerrit.zephyrproject.org/r/7742 : i2c: Add doxygen markup for internal only definitions.
- https://gerrit.zephyrproject.org/r/7738 : RFC: Add device tree support for ARM platforms
- https://gerrit.zephyrproject.org/r/7732 : release-notes: update executive summary
- https://gerrit.zephyrproject.org/r/7733 : drivers: i2c_shim: grant arc the access to i2c on I/O fabric
- https://gerrit.zephyrproject.org/r/7727 : drivers: gpio_atmel: Fix erronous if statement
- https://gerrit.zephyrproject.org/r/7716 : tests/legacy/kernel/test_context: fix misplaced line
- https://gerrit.zephyrproject.org/r/7714 : kernel: legacy: remove ztest workaround
- https://gerrit.zephyrproject.org/r/7709 : drivers: spi_k64: Remove non existent CONFIG_SPI_DEBUG
- https://gerrit.zephyrproject.org/r/7708 : board: v2m_beetle: Update defconfig
- https://gerrit.zephyrproject.org/r/7706 : board: configure pwm support on ST Nucleo boards
- https://gerrit.zephyrproject.org/r/7705 : pwm/stm32: add PWM driver for STM32 F1/F4/L4
- https://gerrit.zephyrproject.org/r/7703 : pinmux: prepare support for stm32 PWM driver
- https://gerrit.zephyrproject.org/r/7704 : soc: stm32xx: add pwm pinmux support

UPDATED within last 24 hours:
- https://gerrit.zephyrproject.org/r/7516 : fs: fat: backport f_lseek bug fix from revison 0.12b
- https://gerrit.zephyrproject.org/r/7263 : Bluetooth: HFP HF: Implement missing callback for indicators
- https://gerrit.zephyrproject.org/r/7028 : Bluetooth: AT: Improve at_get_number API()
- https://gerrit.zephyrproject.org/r/7077 : Bluetooth: HFP HF: SLC query indicators present value
- https://gerrit.zephyrproject.org/r/7076 : Bluetooth: AT: Change API name skip_whitespace to skip_space
- https://gerrit.zephyrproject.org/r/6971 : net: Moved net/ to subsys/net
- https://gerrit.zephyrproject.org/r/7029 : Bluetooth: AT: Command parsing for range of values
- https://gerrit.zephyrproject.org/r/7030 : Bluetooth: HFP HF: SLC Connection send/parse CIND
- https://gerrit.zephyrproject.org/r/7626 : flash/stm32: flash driver for STM32F3x series microcontrollers
- https://gerrit.zephyrproject.org/r/7498 : console: Add a Segger RTT console driver
- https://gerrit.zephyrproject.org/r/7497 : ext: Import Segger J-Link RTT library
- https://gerrit.zephyrproject.org/r/7660 : sensor: Add nRF5 temperature driver.
- https://gerrit.zephyrproject.org/r/7699 : net: Fix stack info collector in net shell
- https://gerrit.zephyrproject.org/r/7577 : samples: zperf: Port to native IP stack
- https://gerrit.zephyrproject.org/r/7697 : printk: Add APIs to print into strings instead of default output
- https://gerrit.zephyrproject.org/r/7696 : printk: Refactor to allow passing a parsing context around
- https://gerrit.zephyrproject.org/r/3311 : include/crypto: Crypto abstraction header
- https://gerrit.zephyrproject.org/r/7616 : drivers: spi_k64: Fix compile error when syslog is enabled
- https://gerrit.zephyrproject.org/r/7270 : clock_control: Add Beetle clock_control
- https://gerrit.zephyrproject.org/r/7269 : soc_beetle: Add initial PM configuration
- https://gerrit.zephyrproject.org/r/7271 : gpio: Enable clock control in Beetle GPIO driver
- https://gerrit.zephyrproject.org/r/7581 : watchdog: Add driver for CMSDK APB WDOG
- https://gerrit.zephyrproject.org/r/7463 : uart: Enable clock control in CMSDK APB UART driver
- https://gerrit.zephyrproject.org/r/7625 : exti/stm32: add support for F334 & F373 MCUs
- https://gerrit.zephyrproject.org/r/7623 : clock/stm32: add STM32F3X reset and clock control
- https://gerrit.zephyrproject.org/r/7615 : boards: add initial support for Nucleo-64 with SoC STM32F373
- https://gerrit.zephyrproject.org/r/7611 : boards: add initial support for Nucleo-64 with Soc STM32F107
- https://gerrit.zephyrproject.org/r/7613 : soc/stm32: add initial support for STM32F3X series
- https://gerrit.zephyrproject.org/r/6586 : misc: Let the compiler choose whether to omit frame pointer
- https://gerrit.zephyrproject.org/r/7614 : boards: add initial support for Nucleo-64 with Soc STM32F334
- https://gerrit.zephyrproject.org/r/6689 : uart/qmsi: Fix driver function and update Kbuild in ext
- https://gerrit.zephyrproject.org/r/7066 : unified: added _MOVE_INSTR for RISCV32 architecture
- https://gerrit.zephyrproject.org/r/7068 : boards: added support for the zedboard_pulpino board
- https://gerrit.zephyrproject.org/r/7063 : scripts: added Makefile to handle an external riscv32 toolchain

MERGED within last 24 hours:
- https://gerrit.zephyrproject.org/r/7737 : sensor: fix typo in Kconfig
- https://gerrit.zephyrproject.org/r/7736 : Bluetooth: Controller: Fix DLE to check supported rx length
- https://gerrit.zephyrproject.org/r/7735 : Zephyr 1.6.0-rc3
- https://gerrit.zephyrproject.org/r/7730 : samples: drivers: current sensing : Exit from testcase if device not found
- https://gerrit.zephyrproject.org/r/7728 : samples: drivers: led_apa102c: Exit from testcase if device not found
- https://gerrit.zephyrproject.org/r/7718 : libc/minimal: snprintf(): KILL negative len parameter
- https://gerrit.zephyrproject.org/r/7719 : tests/ztest/mock: remove usage of legacy k_fifo_get()
- https://gerrit.zephyrproject.org/r/7720 : samples: event_collector: Remove redundant check
- https://gerrit.zephyrproject.org/r/7721 : quark_se: power_mgmt: Fixes a cpu context save bug
- https://gerrit.zephyrproject.org/r/7722 : quark_se_ss: power_mgmt: Fix a bug in call to sleep instruction
- https://gerrit.zephyrproject.org/r/7723 : kernel/arch: move common thread.flags definitions to common file
- https://gerrit.zephyrproject.org/r/7724 : kernel: remove K_TIMING thread flag
- https://gerrit.zephyrproject.org/r/7725 : arc: fix missing _firq_stack symbol when INIT_STACKS=y and NUM_BANKS=1
- https://gerrit.zephyrproject.org/r/7726 : arm: fix bug when Zero Latency Interrupts are enabled
- https://gerrit.zephyrproject.org/r/7711 : Bluetooth: Make bt_send stack requirements a Kconfig option
- https://gerrit.zephyrproject.org/r/7713 : tests/kernel: Test CONFIG_RUNTIME_NMI behavior
- https://gerrit.zephyrproject.org/r/7702 : net: buf: move test to unified kernel
- https://gerrit.zephyrproject.org/r/7715 : arm/frdm_k64f: fix boot issue with MBED bootloader and INIT_STACKS=y
- https://gerrit.zephyrproject.org/r/7710 : Bluetooth: samples/hci_uart: Use proper stack declaration
- https://gerrit.zephyrproject.org/r/7712 : arm/frdm_k64f: fix boot issue with MBED bootloader and INIT_STACKS=y
- https://gerrit.zephyrproject.org/r/7526 : meta-zephyr-sdk-build.sh: Build Xtensa toolchain
- https://gerrit.zephyrproject.org/r/7523 : gcc-source_6.%.bbappend: Add patches for Xtensa
- https://gerrit.zephyrproject.org/r/7525 : make_zephyr_sdk.sh: Include Xtensa toolchain in the SDK
- https://gerrit.zephyrproject.org/r/7519 : qemu: Build qemu for Xtensa
- https://gerrit.zephyrproject.org/r/7521 : hosttools: add "rimage" and "rmbox"
- https://gerrit.zephyrproject.org/r/7522 : xtensa: self contained BSP info
- https://gerrit.zephyrproject.org/r/7520 : sound_open_firmware_tools: Build rimage, rmbox
- https://gerrit.zephyrproject.org/r/7524 : newlib: Add support for Xtensa
- https://gerrit.zephyrproject.org/r/7518 : samples: event_collector: Remove redundant check
- https://gerrit.zephyrproject.org/r/7583 : tests/ztest/mock: remove usage of legacy k_fifo_get()
- https://gerrit.zephyrproject.org/r/7512 : libc/minimal: snprintf(): KILL negative len parameter
- https://gerrit.zephyrproject.org/r/7584 : tcp: Add tcptest.py script
- https://gerrit.zephyrproject.org/r/7414 : ethernet: Add driver initialization priority to Kconfig
- https://gerrit.zephyrproject.org/r/7701 : Bluetooth: L2CAP: Fix set but not used variables
- https://gerrit.zephyrproject.org/r/7690 : net: Drop IPv4 and IPv6 packet if size is wrong
- https://gerrit.zephyrproject.org/r/7700 : Bluetooth: Fix missing prototype config
- https://gerrit.zephyrproject.org/r/7467 : Enable shallow clone of all checkouts
- https://gerrit.zephyrproject.org/r/7589 : tag: email message sent by fix tag job


Re: CONFIG_AON_TIMER_QMSI not contained in any Kconfig

Vincenzo Frascino <vincenzo.frascino@...>
 

Please, ignore my email.


On 29 November 2016 at 14:00, Vincenzo Frascino <
vincenzo.frascino(a)linaro.org> wrote:

Hi,

I started integrating the "non system timers" for Beetle and I noticed
that the Kconfig into the counter directory does not contain any reference
to CONFIG_AON_TIMER_QMSI.

I searched project-wise and I could not find any as well.

Is this wanted?

--
Best Regards,
Vincenzo

Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linaro
http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog


--
Best Regards,
Vincenzo

Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linaro
http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog


Re: Sensor result representation.

Marcus Shawcroft <marcus.shawcroft@...>
 

Hi Bogdan,


My thoughts inline...

On 29 November 2016 at 11:41, Davidoaia, Bogdan M
<bogdan.m.davidoaia(a)intel.com> wrote:

As you pointed out, there is no fixed rule for sensor value type. The reason for the flexibility is that each driver computes values using their own formula, so it may be more convenient to use a certain type.

We didn't want to use double everywhere, because floating point operations come with a cost.
Indeed, on some platforms the use of double will come with a very
significant code size, performance and power implication.

However some sensors, such as the Grove temperature sensor uses logarithm to compute values, so doubles are needed.
Interresting. That sounds like a detail for the grove temperature
sensor driver to hide. If(f) temperature sensors were defined to
return a fixed point representation then a driver would if necessary
have the option of using floating point arithmetic internally (or
using a variety of other floating point avoidance strategies). (I
went looking for the driver to take a peek, but can;t find it, do we
have a driver this sensor yet?)

I'm reluctant to enforce a fixed type to be returned by the drivers, as this may result in some conversions and loss of precision if apps require types different from the default.
As a compromise, the sensor API could offer a function for converting a generic sensor_value struct to a specific value type. This way, the app can decide what type it wants to use, without having to write the code for converting between value types.

What are your thoughts on such an approach?
I'm concerned that there are drawbacks to this approach:

It has the effect of undermining application portability as a concept
in a platform OS. It offloads the responsibility to normalize results
presented in different formats to the application. Agreed such
formatting is straight forward and calling a helper to do the
formatting is trivial. But many application builders will neglect to
call the conversion helper, because they don't need to. They will
build their application against one set of devices and it just works!
When they switch devices, or someone else runs the application to
another platform it will break because they forgot to call the result
format futzing helper functions after getting results from the driver.

In effect the flexibility in the API makes it possible, (and even
encourages) applications that are not portable across zephyr
platforms.

Many drivers will be added to the tree that make un-necessary use of
potentially expensive operations (we have 4 examples already just
among the temperature drivers, see below). For folks that don't care
about power this is a none issue, for folks that do care, they have no
way around the issue.

Looking at the 4 temp drivers we currently have in tree that report
double results:

lsm6ds0: Converts an integer value to double performance a double /
and a double +
lps25hb: Converts integer->double, performs double / and double +
th02: Converts integer->double, performs double / and double +
lsm9ds0: Performs all internal computation in integer form then
converts to double to return the value.

None of these drivers actually need double arithmetic, and the last
one is only converting to double in order to present the result. All
of these drivers can be trivially be adjusted to avoid floating point
operations completely, returning INT_PLUS_MICRO with no loss of
precision and no impact from the implied loss of dynamic range.

We should try to keep the public facing APIs as simple and consistent
as possible in order to simplify applications and maximize their
portability (across boards/socs/devices).

Many (if not the majority) of IOT shaped applications are likely to be
sensitive to footprint and power. Folks building in that space, on
some platforms, are going to be sensitive to the unnecessary use of
floating point arithmetic. The folks who don't care about power,
won't mind (or notice) the additional conversion from fixed point to
floating point if they choose to build their application in floating
point.

For temperature, I'm struggling to see real work devices where
type_int__plus_micro does not provide sufficient precision or we need
the additional dynamic range of double. I suspect that if we looked at
each of the other channel types in detail we would find the same, ie
for most type_int_plus_micro is good enough and for the rest
type_double is necessary.

Aside from defining specific formats for specific channel types, there
are other simplifications possible:

We currently have 3 different fixed point representations and one
floating point representation, I think there are some straight forward
simplifications possible that result in no loss of precision, no loss
of dynamic range and are trivial in terms of additional conversion
cost compared to the cost of dealing with different representations:

1) TYPE_INT and TYPE_INT_PLUS_MICRO are identical except that TYPE_INT
indicates that the umicro part of TYPE_INT_PLUS_MICRO is 0. Hence we
can drop TYPE_INT and use TYPE_INT_PLUS_MICRO instead setting umicro
= 0 explicitily.

2) TYPE_INT_PLUS_MICRO and SENSOR_VALUE_TYPE_Q16_16 differ only in
precision. Both are passed in the same sized data structure. There
are no instances of the latter in master. We could drop Q16_16 from
sensor.h now and have all future need for a fixed point representation
use TYPE_INT_PLUS_MICRO

If we do 1 and 2 above we end up with 1 fixed point representation and
1 floating point representation. We get the benefit of simplifying
the interface and there is a trivial amount of code to change in the
process.


Cheers
/Marcus


CONFIG_AON_TIMER_QMSI not contained in any Kconfig

Vincenzo Frascino <vincenzo.frascino@...>
 

Hi,

I started integrating the "non system timers" for Beetle and I noticed that
the Kconfig into the counter directory does not contain any reference to
CONFIG_AON_TIMER_QMSI.

I searched project-wise and I could not find any as well.

Is this wanted?

--
Best Regards,
Vincenzo

Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linaro
http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog


Re: Sensor result representation.

Davidoaia, Bogdan M <bogdan.m.davidoaia@...>
 

Hi Marcus,

As you pointed out, there is no fixed rule for sensor value type. The reason for the flexibility is that each driver computes values using their own formula, so it may be more convenient to use a certain type.

We didn't want to use double everywhere, because floating point operations come with a cost. However some sensors, such as the Grove temperature sensor uses logarithm to compute values, so doubles are needed.

I'm reluctant to enforce a fixed type to be returned by the drivers, as this may result in some conversions and loss of precision if apps require types different from the default.

As a compromise, the sensor API could offer a function for converting a generic sensor_value struct to a specific value type. This way, the app can decide what type it wants to use, without having to write the code for converting between value types.

What are your thoughts on such an approach?

Thanks,
Bogdan

-----Original Message-----
From: Marcus Shawcroft [mailto:marcus.shawcroft(a)gmail.com]
Sent: Friday, November 25, 2016 4:10 PM
To: devel(a)lists.zephyrproject.org
Subject: [devel] Sensor result representation.

Hi!

The sensor.h public API provides a mechanism for a sensor drivers to publish results in one of four different formats:

SENSOR_VALUE_TYPE_INT
SENSOR_VALUE_TYPE_INT_PLUS_MICRO
SENSOR_VALUE_TYPE_Q16_16
SENSOR_VALUE_TYPE_DOUBLE

There is no guidance (that I could find) on which data format a driver should return for any given sensor channel. This flexibility in the API has been exploited to a degree, looking at just temperature sensors in the current tree we have:

dht, bmg160,tmp007,tmp112, hp206chts221dsc1009, bma280, mpu6050, mcp9808, lis3mdl, sht3xd, bmi160, bme280 all returning temperature values formatted as INT_PLUS_MICRO.

and

lsm6ds0, lps25hb, th02, lsm9ds0 all returning temperature values formatted as DOUBLE.

Having different drivers return data for the same channel type in different formats implies that every application written to consume such data needs some kind of demuxing code or, more likely, it will be built to work against a specific flavour of driver... either way this situation is not ideal.

Is there a reason we have designed in this degree of flexibility?

If not then perhaps for each channel type in sensor.h we should define the data format returned by all drivers supporting that channel type?

I raise this issue now while there are relatively few drivers, because tighting API behaviour now is going to be significantly easier in the short term than it will be in the medium / long term when we have more drivers and more divergence in behaviour.

Cheers
/Marcus


Zephyr 1.6.0-rc3 tagged

Nashif, Anas
 

Hi,
Hoping this would be the last release candidate before the final 1.6 release. Here is the change log since the last release:


Anas Nashif (3):
release-notes: cleanup entries
release notes: update highlights
Zephyr 1.6.0-rc3

Benjamin Walsh (14):
kernel/arch: remove unused uk_task_ptr parameter from _new_thread()
kernel: add support for switching to main thread without _Swap()
arm: use interrupt stack during early init
arc: use one of the interrupt stacks during early init
arm: support interrupt stack with CONFIG_INIT_STACKS
arc: support interrupt/FIRQ stacks with CONFIG_INIT_STACKS
kernel: streamline initialization of _thread_base and timeouts
kernel/mbox: add missing dummy thread timeout init
arm: fix early boot on Cortex-M0 with init stack
arm/frdm_k64f: fix boot issue with MBED bootloader and INIT_STACKS=y
kernel/arch: move common thread.flags definitions to common file
kernel: remove K_TIMING thread flag
arc: fix missing _firq_stack symbol when INIT_STACKS=y and NUM_BANKS=1
arm: fix bug when Zero Latency Interrupts are enabled

Carles Cufi (1):
Bluetooth: hci_uart: Fix init order in hci_uart bootup

Flavio Santes (2):
tinycrypt/hmac: Array compared to NULL has no effect
tinycrypt/sha256: Array compared to NULL has no effect

Inaky Perez-Gonzalez (4):
tests/drivers/pci_enum: move to ztest and run in HW when possible
libc: remove useless code in _prf()
libc/minimal: snprintf(): KILL negative len parameter
tests/ztest/mock: remove usage of legacy k_fifo_get()

Iván Briano (1):
ext hal qmsi: Avoid QMSI specific flags when QMSI is not used

James Fagan (1):
aio: Configuration issue in aio driver

Javier B Perez (1):
release notes: add release notes doc

Jithu Joseph (1):
samples: event_collector: Remove redundant check

Johan Hedberg (1):
release-notes: Add Bluetooth changes

Luiz Augusto von Dentz (3):
Bluetooth: L2CAP: Fix regression with move to k_sem API
Bluetooth: L2CAP: Fix segmentation
Bluetooth: L2CAP: Fix possibly reading past the end of buffer

Mahavir Jain (1):
doc: fix ring_buffer code snippet

Marcus Shawcroft (2):
gpio: Document public API return codes.
gpio: Add doxygen markup for internal only definitions.

Ramesh Thomas (3):
tests: power_mgmt: Fix wrong value being passed to post_ops func
quark_se: power_mgmt: Fixes a cpu context save bug
quark_se_ss: power_mgmt: Fix a bug in call to sleep instruction

Szymon Janc (4):
Bluetooth: Kconfig: Remove deprecated dependency for ECC support
Bluetooth: tests: Fix Makefiles comments
Bluetooth: Kconfig: Remove deprecated dependency on NANO_TIMEOUT
Bluetooth: GATT: Fix primary service discovery response

Tomasz Bursztyka (1):
clock_control: NRF5 Kconfig option should be available only on NRF5

Vinayak Chettimada (1):
kernel: declare main and idle stack as globals

Vincenzo Frascino (2):
arm: Fix CONFIG_RUNTIME_NMI behavior
arm: Enable REBOOT when RUNTIME_NMI is selected

MAINTAINERS | 7 +
Makefile | 2 +-
arch/arc/core/reset.S | 50 +++-
arch/arc/core/thread.c | 11 +-
arch/arc/include/kernel_arch_data.h | 18 --
arch/arc/soc/quark_se_c1000_ss/power.c | 3 +-
arch/arm/core/Kconfig | 1 +
arch/arm/core/cortex_m/Kconfig | 1 +
arch/arm/core/cortex_m/nmi.c | 4 +-
arch/arm/core/cortex_m/reset.S | 23 +-
arch/arm/core/cortex_m/vector_table.S | 10 +-
arch/arm/core/cortex_m/vector_table.h | 4 -
arch/arm/core/irq_manage.c | 2 +-
arch/arm/core/thread.c | 11 +-
arch/arm/include/kernel_arch_data.h | 18 --
arch/arm/include/kernel_arch_func.h | 41 +++
arch/nios2/core/thread.c | 13 +-
arch/nios2/include/kernel_arch_data.h | 25 +-
arch/x86/core/intstub.S | 4 -
arch/x86/core/thread.c | 16 +-
arch/x86/include/kernel_arch_data.h | 37 +--
arch/x86/soc/intel_quark/quark_se/power.c | 32 +--
arch/x86/soc/intel_quark/quark_se/soc_power.S | 58 ++--
arch/x86/soc/intel_quark/quark_se/soc_power.h | 29 --
doc/kernel_v2/other/ring_buffers.rst | 2 +-
drivers/aio/aio_comparator_qmsi.c | 2 +
drivers/clock_control/Kconfig.nrf5 | 2 +
ext/hal/qmsi/Makefile | 7 +-
ext/lib/crypto/tinycrypt/source/hmac.c | 8 +-
ext/lib/crypto/tinycrypt/source/sha256.c | 4 +-
include/arch/arm/cortex_m/nmi.h | 2 +
include/gpio.h | 27 +-
kernel/unified/Kconfig | 9 +
kernel/unified/include/kernel_structs.h | 37 +++
kernel/unified/include/ksched.h | 60 ++--
kernel/unified/include/nano_internal.h | 1 -
kernel/unified/include/timeout_q.h | 24 +-
kernel/unified/include/wait_q.h | 23 +-
kernel/unified/init.c | 31 +-
kernel/unified/legacy_timer.c | 1 -
kernel/unified/mailbox.c | 2 +-
kernel/unified/sched.c | 11 +-
kernel/unified/sem.c | 6 +-
kernel/unified/thread.c | 31 +-
lib/libc/minimal/source/stdout/prf.c | 31 +-
lib/libc/minimal/source/stdout/sprintf.c | 16 +-
release-notes.rst | 317 +++++++++++++++++++++
samples/bluetooth/hci_uart/src/main.c | 7 +-
.../src/kernel_event_collector_sample.c | 2 +-
subsys/bluetooth/Kconfig | 1 -
subsys/bluetooth/host/Kconfig | 1 -
subsys/bluetooth/host/gatt.c | 5 +
subsys/bluetooth/host/l2cap.c | 6 +-
tests/bluetooth/shell/Makefile | 2 +-
tests/bluetooth/tester/Makefile | 2 +-
tests/drivers/pci_enum/Makefile | 6 +-
tests/drivers/pci_enum/prj.conf | 1 +
tests/drivers/pci_enum/prj.mdef | 5 -
tests/drivers/pci_enum/prj_qemu_x86.conf | 5 +
tests/drivers/pci_enum/sample.tc | 5 -
tests/drivers/pci_enum/src/Makefile | 2 +-
tests/drivers/pci_enum/src/pci_enum.c | 32 +--
tests/drivers/pci_enum/testcase.ini | 2 +-
tests/kernel/test_sprintf/src/test_sprintf.c | 41 ---
tests/power/power_states/src/main.c | 4 +-
tests/ztest/src/ztest_mock.c | 75 +++--
tests/ztest/test/mock/testcase.ini | 3 +-
67 files changed, 821 insertions(+), 460 deletions(-)


Daily JIRA Digest

donotreply@...
 

NEW JIRA items within last 24 hours: 1
[ZEP-1358] BMI160 accelerometer gives 0 on all axes
https://jira.zephyrproject.org/browse/ZEP-1358


UPDATED JIRA items within last 24 hours: 0

CLOSED JIRA items within last 24 hours: 1
[ZEP-1191] (Done) Create wiki page for Hexiwear board
https://jira.zephyrproject.org/browse/ZEP-1191


RESOLVED JIRA items within last 24 hours: 0


Daily Gerrit Digest

donotreply@...
 

NEW within last 24 hours:
- https://gerrit.zephyrproject.org/r/7700 : Bluetooth: Fix missing prototype config
- https://gerrit.zephyrproject.org/r/7701 : Bluetooth: L2CAP: Fix set but not used variables
- https://gerrit.zephyrproject.org/r/7695 : drivers: spi_k64: Clear RX and TX FIFO before starting transfer
- https://gerrit.zephyrproject.org/r/7694 : drivers: spi_k64: Fix logging in SPI driver
- https://gerrit.zephyrproject.org/r/7699 : net: Fix stack info collector in net shell
- https://gerrit.zephyrproject.org/r/7692 : Bluetooth: Remove snprintf usage from address helpers
- https://gerrit.zephyrproject.org/r/7691 : Bluetooth: Rename log.c to util.c in anticipation of more generic usage

UPDATED within last 24 hours:
- https://gerrit.zephyrproject.org/r/7660 : sensor: Add nRF5 temperature driver.
- https://gerrit.zephyrproject.org/r/7617 : arm: frdm_k64f: Enable SPI0 in pinumx
- https://gerrit.zephyrproject.org/r/7616 : drivers: spi_k64: Fix compile error when syslog is enabled
- https://gerrit.zephyrproject.org/r/7065 : kernel: updated default IDLE_STACK_SIZE to 512 for RISCV32
- https://gerrit.zephyrproject.org/r/7611 : boards: add initial support for Nucleo-64 with Soc STM32F107
- https://gerrit.zephyrproject.org/r/7067 : timer: added timer driver for the pulpino SOC
- https://gerrit.zephyrproject.org/r/7577 : samples: zperf: Port to native IP stack
- https://gerrit.zephyrproject.org/r/7068 : boards: added support for the zedboard_pulpino board
- https://gerrit.zephyrproject.org/r/7066 : unified: added _MOVE_INSTR for RISCV32 architecture
- https://gerrit.zephyrproject.org/r/7063 : scripts: added Makefile to handle an external riscv32 toolchain
- https://gerrit.zephyrproject.org/r/7618 : drivers: spi_k64: Correct init priority for SPI
- https://gerrit.zephyrproject.org/r/7244 : ext: qmsi: fix an incomplete type issue
- https://gerrit.zephyrproject.org/r/7612 : Bluetooth: AVDTP: Stream data structure
- https://gerrit.zephyrproject.org/r/7496 : soc/stm32f1: Add the new type of SoC STM32F107
- https://gerrit.zephyrproject.org/r/6719 : Bluetooth: A2DP: Stream End Point Structure
- https://gerrit.zephyrproject.org/r/7613 : soc/stm32: add initial support for STM32F3X series
- https://gerrit.zephyrproject.org/r/6720 : Bluetooth: A2DP: Stream End Point Registration
- https://gerrit.zephyrproject.org/r/6717 : Bluetooth: A2DP: A2DP sink service record registration
- https://gerrit.zephyrproject.org/r/7626 : flash/stm32: flash driver for STM32F3x series microcontrollers
- https://gerrit.zephyrproject.org/r/3311 : include/crypto: Crypto abstraction header
- https://gerrit.zephyrproject.org/r/7492 : Bluetooth: A2DP: Added Preset Structure
- https://gerrit.zephyrproject.org/r/7623 : clock/stm32: add STM32F3X reset and clock control
- https://gerrit.zephyrproject.org/r/7625 : exti/stm32: add support for F334 & F373 MCUs
- https://gerrit.zephyrproject.org/r/7622 : clock/stm32: add STM32F107 reset and clock control
- https://gerrit.zephyrproject.org/r/7615 : boards: add initial support for Nucleo-64 with SoC STM32F373
- https://gerrit.zephyrproject.org/r/7614 : boards: add initial support for Nucleo-64 with Soc STM32F334
- https://gerrit.zephyrproject.org/r/6971 : net: Moved net/ to subsys/net
- https://gerrit.zephyrproject.org/r/7620 : drivers: spi_k64: Add debug and error messages
- https://gerrit.zephyrproject.org/r/6481 : net: Moved net_if_ipv6_addr_lookup_by_iface() to net_if.c
- https://gerrit.zephyrproject.org/r/7648 : DRAFT Merge net branch into master
- https://gerrit.zephyrproject.org/r/7649 : drivers: spi_k64: Fix logging in SPI driver
- https://gerrit.zephyrproject.org/r/7661 : random: Add random driver for nRF5
- https://gerrit.zephyrproject.org/r/7647 : net_buf: fixes an issue with frames in multiple fragments
- https://gerrit.zephyrproject.org/r/7597 : quark_se_ss: power_mgmt: Remove redundant int trigger setting

MERGED within last 24 hours:
- https://gerrit.zephyrproject.org/r/7688 : Bluetooth: Fix coding style issues in LE address helper functions
- https://gerrit.zephyrproject.org/r/7693 : net: ipv6: Check extension header No Next Header
- https://gerrit.zephyrproject.org/r/7690 : net: Drop IPv4 and IPv6 packet if size is wrong
- https://gerrit.zephyrproject.org/r/7689 : drivers: nrf timer: remove unused variable
- https://gerrit.zephyrproject.org/r/7686 : release notes: update highlights
- https://gerrit.zephyrproject.org/r/7687 : Bluetooth: GATT: Fix primary service discovery response
- https://gerrit.zephyrproject.org/r/7567 : net: buf: Use NET_BUF_SIMPLE_ASSERT with net_buf_simple API
- https://gerrit.zephyrproject.org/r/7653 : net: buf: Fix warnings related to legacy API
- https://gerrit.zephyrproject.org/r/7651 : net: buf: Assert on invalid parameters
- https://gerrit.zephyrproject.org/r/7568 : net: buf: Add debug for fragments
- https://gerrit.zephyrproject.org/r/7569 : net: buf: Add extra logic when debug is enabled
- https://gerrit.zephyrproject.org/r/7666 : net: Check duplicate IPv6 prefix when adding it
- https://gerrit.zephyrproject.org/r/7667 : net: Check duplicate IPv4 address when adding address
- https://gerrit.zephyrproject.org/r/7665 : net: Check duplicate IPv6 address when adding address
- https://gerrit.zephyrproject.org/r/7652 : net: net_send_data() should not free the net_buf
- https://gerrit.zephyrproject.org/r/7671 : test: net: remove nano/micro tests
- https://gerrit.zephyrproject.org/r/7670 : tests: net: remove qemu.pid file and bad filters
- https://gerrit.zephyrproject.org/r/6731 : logging: add exeternal hook to sys_log
- https://gerrit.zephyrproject.org/r/7596 : quark_se_ss: power_mgmt: Fix a bug in call to sleep instruction
- https://gerrit.zephyrproject.org/r/7561 : quark_se: power_mgmt: Fixes a cpu context save bug
- https://gerrit.zephyrproject.org/r/7669 : arm: systick: Some SoCs do not have systick
- https://gerrit.zephyrproject.org/r/7508 : drivers: timer: nRF SoC Series RTC system clock implementation
- https://gerrit.zephyrproject.org/r/7461 : printk: Add basic support for width modifier and zero padding
- https://gerrit.zephyrproject.org/r/7682 : sensor/lsm9ds0_gyro: Limit name space, add static.
- https://gerrit.zephyrproject.org/r/7683 : sensor/bmc150: Fix logging configuration.
- https://gerrit.zephyrproject.org/r/7684 : sensor/bmc150: Fix filename in comment.
- https://gerrit.zephyrproject.org/r/7685 : sensor/bmc150: Limit name space, add static.
- https://gerrit.zephyrproject.org/r/7672 : sensor: Remove unsued LSM6DS0_SYS_LOG_LEVEL config.
- https://gerrit.zephyrproject.org/r/7673 : sensor/lsm6ds0: Fix filename in comment.
- https://gerrit.zephyrproject.org/r/7674 : sensor/lsm6ds0: Limit name space, add static.
- https://gerrit.zephyrproject.org/r/7675 : sensor: Remove unsued LPS25HB_SYS_LOG_LEVEL config.
- https://gerrit.zephyrproject.org/r/7676 : sensor/lps25hb: Fix filename in comment.
- https://gerrit.zephyrproject.org/r/7677 : sensor/lps25hb: Limit name space add static.
- https://gerrit.zephyrproject.org/r/7678 : sensor/fxos8700: Switch to generic SYS_LOG_SENSOR_LEVEL
- https://gerrit.zephyrproject.org/r/7679 : sensor/lsm9ds0_mfd: Fix logging configuration.
- https://gerrit.zephyrproject.org/r/7680 : sensor/lsm9ds0_gyro: Fix logging configuration.
- https://gerrit.zephyrproject.org/r/7681 : sensor/lsm9ds0_gyro: Fix filename in comment.


WiFi Support

Robert Hölzl <robert.hoelzl at posteo.de...>
 

Hello

Is WiFi (IEEE 801.11) on the list of features, that shall be implemented by Zephyr in the future?

Robert


Daily JIRA Digest

donotreply@...
 

NEW JIRA items within last 24 hours: 0

UPDATED JIRA items within last 24 hours: 3
[ZEP-799] HTTP over TLS
https://jira.zephyrproject.org/browse/ZEP-799

[ZEP-1293] ENC28J60 driver doesn't work on Arduino 101
https://jira.zephyrproject.org/browse/ZEP-1293

[ZEP-1357] iot/dns: Client is broken
https://jira.zephyrproject.org/browse/ZEP-1357


CLOSED JIRA items within last 24 hours: 0

RESOLVED JIRA items within last 24 hours: 0


Daily Gerrit Digest

donotreply@...
 

NEW within last 24 hours:
- https://gerrit.zephyrproject.org/r/7685 : sensor/bmc150: Limit name space, add static.
- https://gerrit.zephyrproject.org/r/7679 : sensor/lsm9ds0_mfd: Fix logging configuration.
- https://gerrit.zephyrproject.org/r/7678 : sensor/fxos8700: Switch to generic SYS_LOG_SENSOR_LEVEL
- https://gerrit.zephyrproject.org/r/7675 : sensor: Remove unsued LPS25HB_SYS_LOG_LEVEL config.
- https://gerrit.zephyrproject.org/r/7672 : sensor: Remove unsued LSM6DS0_SYS_LOG_LEVEL config.
- https://gerrit.zephyrproject.org/r/7673 : sensor/lsm6ds0: Fix filename in comment.
- https://gerrit.zephyrproject.org/r/7684 : sensor/bmc150: Fix filename in comment.
- https://gerrit.zephyrproject.org/r/7676 : sensor/lps25hb: Fix filename in comment.
- https://gerrit.zephyrproject.org/r/7680 : sensor/lsm9ds0_gyro: Fix logging configuration.
- https://gerrit.zephyrproject.org/r/7677 : sensor/lps25hb: Limit name space add static.
- https://gerrit.zephyrproject.org/r/7681 : sensor/lsm9ds0_gyro: Fix filename in comment.
- https://gerrit.zephyrproject.org/r/7683 : sensor/bmc150: Fix logging configuration.
- https://gerrit.zephyrproject.org/r/7682 : sensor/lsm9ds0_gyro: Limit name space, add static.
- https://gerrit.zephyrproject.org/r/7674 : sensor/lsm6ds0: Limit name space, add static.
- https://gerrit.zephyrproject.org/r/7671 : test: net: remove nano/micro tests
- https://gerrit.zephyrproject.org/r/7670 : tests: net: remove qemu.pid file and bad filters

UPDATED within last 24 hours:
- https://gerrit.zephyrproject.org/r/7669 : arm: systick: Some SoCs do not have systick
- https://gerrit.zephyrproject.org/r/7577 : samples: zperf: Port to native IP stack
- https://gerrit.zephyrproject.org/r/7508 : drivers: timer: nRF SoC Series RTC system clock implementation

MERGED within last 24 hours:


Daily JIRA Digest

donotreply@...
 

NEW JIRA items within last 24 hours: 1
[ZEP-1356] Connection TX stack oveflow
https://jira.zephyrproject.org/browse/ZEP-1356


UPDATED JIRA items within last 24 hours: 4
[ZEP-706] cannot set debug breakpoints on ARC side of Arduino 101
https://jira.zephyrproject.org/browse/ZEP-706

[ZEP-710] debugging on ARC results in spam of symtab internal error messages
https://jira.zephyrproject.org/browse/ZEP-710

[ZEP-1343] tests/drivers/pci_enum: failing on QEMU ARM and X86 due to missing commit
https://jira.zephyrproject.org/browse/ZEP-1343

[ZEP-1348] samples/nfc build failures
https://jira.zephyrproject.org/browse/ZEP-1348


CLOSED JIRA items within last 24 hours: 1
[ZEP-934] (Fixed) NIOS_II port
https://jira.zephyrproject.org/browse/ZEP-934


RESOLVED JIRA items within last 24 hours: 0


Daily Gerrit Digest

donotreply@...
 

NEW within last 24 hours:
- https://gerrit.zephyrproject.org/r/7669 : arm: systick: Some SoCs do not have systick
- https://gerrit.zephyrproject.org/r/7659 : Fix Kconfig formatting.
- https://gerrit.zephyrproject.org/r/7668 : ZEP-1027 Add environment variables to getting_started.rst
- https://gerrit.zephyrproject.org/r/7665 : net: Check duplicate IPv6 address when adding address
- https://gerrit.zephyrproject.org/r/7666 : net: Check duplicate IPv6 prefix when adding it
- https://gerrit.zephyrproject.org/r/7667 : net: Check duplicate IPv4 address when adding address
- https://gerrit.zephyrproject.org/r/7664 : second test
- https://gerrit.zephyrproject.org/r/7661 : random: Add random driver for nRF5
- https://gerrit.zephyrproject.org/r/7660 : sensor: Add nRF5 temperature driver.

UPDATED within last 24 hours:
- https://gerrit.zephyrproject.org/r/7508 : drivers: timer: nRF SoC Series RTC system clock implementation
- https://gerrit.zephyrproject.org/r/7498 : console: Add a Segger RTT console driver
- https://gerrit.zephyrproject.org/r/7497 : ext: Import Segger J-Link RTT library
- https://gerrit.zephyrproject.org/r/7622 : clock/stm32: add STM32F107 reset and clock control
- https://gerrit.zephyrproject.org/r/7461 : printk: Add basic support for width modifier and zero padding
- https://gerrit.zephyrproject.org/r/7577 : DRAFT samples: zperf: Port to native IP stack
- https://gerrit.zephyrproject.org/r/7645 : add-reviewers: add fallback identifiers
- https://gerrit.zephyrproject.org/r/5137 : DONT MERGE - add changes to two different branches
- https://gerrit.zephyrproject.org/r/5895 : DONT MERGE - test CI time with only 1 level
- https://gerrit.zephyrproject.org/r/7649 : drivers: spi_k64: Fix logging in SPI driver
- https://gerrit.zephyrproject.org/r/7647 : net_buf: fixes an issue with frames in multiple fragments
- https://gerrit.zephyrproject.org/r/7626 : flash/stm32: flash driver for STM32F3x series microcontrollers

MERGED within last 24 hours:
- https://gerrit.zephyrproject.org/r/7655 : samples/sensors: Update README files
- https://gerrit.zephyrproject.org/r/7656 : tests/multilib: Update README file
- https://gerrit.zephyrproject.org/r/7657 : tests/drivers: Update pinmux application
- https://gerrit.zephyrproject.org/r/7627 : arc: fix missing _firq_stack symbol when INIT_STACKS=y and NUM_BANKS=1
- https://gerrit.zephyrproject.org/r/7643 : kernel/arch: move common thread.flags definitions to common file
- https://gerrit.zephyrproject.org/r/7598 : kernel: remove K_TIMING thread flag
- https://gerrit.zephyrproject.org/r/7631 : arm: fix bug when Zero Latency Interrupts are enabled
- https://gerrit.zephyrproject.org/r/7032 : Bluetooth: doc: Fix reference to documentation location
- https://gerrit.zephyrproject.org/r/7016 : Bluetooth: Use convenience macros for timeout durations
- https://gerrit.zephyrproject.org/r/7641 : samples/nfc: Remove x86 asm code
- https://gerrit.zephyrproject.org/r/7642 : samples/nfc: Update README file
- https://gerrit.zephyrproject.org/r/7646 : samples/nfc: Update sample app
- https://gerrit.zephyrproject.org/r/7654 : samples: net: enable debugging with qemu target


Daily JIRA Digest

donotreply@...
 

NEW JIRA items within last 24 hours: 5
[ZEP-1351] FDRM k64f SPI does not work
https://jira.zephyrproject.org/browse/ZEP-1351

[ZEP-1350] Wrong source MAC address in echo reply
https://jira.zephyrproject.org/browse/ZEP-1350

[ZEP-1353] FDRM k64f Console output broken on normal flash mode
https://jira.zephyrproject.org/browse/ZEP-1353

[ZEP-1354] gatt-discover-primary returns wrong service handles and UUID
https://jira.zephyrproject.org/browse/ZEP-1354

[ZEP-1355] Connection Failed to be Established
https://jira.zephyrproject.org/browse/ZEP-1355


UPDATED JIRA items within last 24 hours: 10
[ZEP-827] HTTP Client sample application
https://jira.zephyrproject.org/browse/ZEP-827

[ZEP-820] HTTP v1.1 Server Sample
https://jira.zephyrproject.org/browse/ZEP-820

[ZEP-1309] ARM uses the end of memory for its init stack
https://jira.zephyrproject.org/browse/ZEP-1309

[ZEP-1349] ARC sleep needs to pass interrupt priority threshold when interrupts are enabled
https://jira.zephyrproject.org/browse/ZEP-1349

[ZEP-1310] ARC uses the end of memory for its init stack
https://jira.zephyrproject.org/browse/ZEP-1310

[ZEP-1345] cpu context save and restore could corrupt stack
https://jira.zephyrproject.org/browse/ZEP-1345

[ZEP-1179] Build issues when compiling with LLVM from ISSM (icx)
https://jira.zephyrproject.org/browse/ZEP-1179

[ZEP-1336] Update external fs with bug fix in f_lseek in elm-chan FATFS rev 0.12.b
https://jira.zephyrproject.org/browse/ZEP-1336

[ZEP-1348] samples/nfc build failures
https://jira.zephyrproject.org/browse/ZEP-1348

[ZEP-472] Ethernet packets are getting missed if sent in quick succession.
https://jira.zephyrproject.org/browse/ZEP-472


CLOSED JIRA items within last 24 hours: 4
[ZEP-1312] (Fixed) ARC: software crashed at k_mbox_get() with async sending a message
https://jira.zephyrproject.org/browse/ZEP-1312

[ZEP-1195] (Fixed) Wrong ATT error code passed to the application
https://jira.zephyrproject.org/browse/ZEP-1195

[ZEP-1319] (Fixed) Zephyr is unable to compile when CONFIG_RUNTIME_NMI is enabled on ARM platforms
https://jira.zephyrproject.org/browse/ZEP-1319

[ZEP-1200] (Fixed) Failed to establish connection with remote sending Directed Advertising packets
https://jira.zephyrproject.org/browse/ZEP-1200


RESOLVED JIRA items within last 24 hours: 0


Daily Gerrit Digest

donotreply@...
 

NEW within last 24 hours:
- https://gerrit.zephyrproject.org/r/7647 : net_buf: fixes an issue with frames in multiple fragments
- https://gerrit.zephyrproject.org/r/7654 : samples: net: enable debugging with qemu target
- https://gerrit.zephyrproject.org/r/7653 : net: buf: Fix warnings related to legacy API
- https://gerrit.zephyrproject.org/r/7651 : net: buf: Assert on invalid parameters
- https://gerrit.zephyrproject.org/r/7652 : net: net_send_data() should not free the net_buf
- https://gerrit.zephyrproject.org/r/7650 : drivers: spi_k64: Clear RX and TX FIFO before starting transfer
- https://gerrit.zephyrproject.org/r/7649 : drivers: spi_k64: Fix logging in SPI driver
- https://gerrit.zephyrproject.org/r/7648 : DRAFT Merge net branch into master
- https://gerrit.zephyrproject.org/r/7645 : add-reviewers: add fallback identifiers
- https://gerrit.zephyrproject.org/r/7646 : samples/nfc: Update sample app
- https://gerrit.zephyrproject.org/r/7643 : kernel/arch: move common thread.flags definitions to common file
- https://gerrit.zephyrproject.org/r/7644 : CI: implement ccache for sanity.
- https://gerrit.zephyrproject.org/r/7631 : arm: fix bug when Zero Latency Interrupts are enabled
- https://gerrit.zephyrproject.org/r/7627 : arc: fix missing _firq_stack symbol when INIT_STACKS=y and NUM_BANKS=1
- https://gerrit.zephyrproject.org/r/7641 : samples/nfc: Remove x86 asm code
- https://gerrit.zephyrproject.org/r/7642 : samples/nfc: Update README file

UPDATED within last 24 hours:
- https://gerrit.zephyrproject.org/r/7577 : DRAFT samples: zperf: Port to native IP stack
- https://gerrit.zephyrproject.org/r/7461 : printk: Add basic support for width modifier and zero padding
- https://gerrit.zephyrproject.org/r/7569 : net: buf: Add extra logic when debug is enabled
- https://gerrit.zephyrproject.org/r/7568 : net: buf: Add debug for fragments
- https://gerrit.zephyrproject.org/r/5504 : dma: Introduce STM32F4x DMA driver
- https://gerrit.zephyrproject.org/r/7565 : boards: frdm_k64f: Add support for external 802.15.4 radio
- https://gerrit.zephyrproject.org/r/7602 : boards: frdm_k64f: Enable SPI if CC2520 device connected
- https://gerrit.zephyrproject.org/r/7492 : Bluetooth: A2DP: Added Preset Structure
- https://gerrit.zephyrproject.org/r/7567 : net: buf: Use NET_BUF_SIMPLE_ASSERT with net_buf_simple API
- https://gerrit.zephyrproject.org/r/7607 : drivers: spi_k64: Add debug and error messages
- https://gerrit.zephyrproject.org/r/7605 : arm: frdm_k64f: Enable SPI0 in pinumx
- https://gerrit.zephyrproject.org/r/7603 : drivers: spi_k64: Fix compile error when syslog is enabled
- https://gerrit.zephyrproject.org/r/7610 : arm: frdm_k64f: Configure PORTC ping as GPIO
- https://gerrit.zephyrproject.org/r/7606 : drivers: spi_k64: Correct init priority for SPI
- https://gerrit.zephyrproject.org/r/7508 : drivers: timer: nRF SoC Series RTC system clock implementation
- https://gerrit.zephyrproject.org/r/6971 : net: Moved net/ to subsys/net
- https://gerrit.zephyrproject.org/r/7611 : boards: add initial support for Nucleo-64 with Soc STM32F107
- https://gerrit.zephyrproject.org/r/7626 : flash/stm32: flash driver for STM32F3x series microcontrollers
- https://gerrit.zephyrproject.org/r/7614 : boards: add initial support for Nucleo-64 with Soc STM32F334
- https://gerrit.zephyrproject.org/r/7496 : soc/stm32f1: Add the new type of SoC STM32F107
- https://gerrit.zephyrproject.org/r/7615 : boards: add initial support for Nucleo-64 with SoC STM32F373
- https://gerrit.zephyrproject.org/r/7622 : clock/stm32: add STM32F107 reset and clock control
- https://gerrit.zephyrproject.org/r/7623 : clock/stm32: add STM32F3X reset and clock control
- https://gerrit.zephyrproject.org/r/7625 : exti/stm32: add support for F334 & F373 MCUs
- https://gerrit.zephyrproject.org/r/7613 : soc/stm32: add initial support for STM32F3X series
- https://gerrit.zephyrproject.org/r/7263 : Bluetooth: HFP HF: Implement missing callback for indicators
- https://gerrit.zephyrproject.org/r/7030 : Bluetooth: HFP HF: SLC Connection send/parse CIND
- https://gerrit.zephyrproject.org/r/7076 : Bluetooth: AT: Change API name skip_whitespace to skip_space
- https://gerrit.zephyrproject.org/r/7029 : Bluetooth: AT: Command parsing for range of values
- https://gerrit.zephyrproject.org/r/7028 : Bluetooth: AT: Improve at_get_number API()
- https://gerrit.zephyrproject.org/r/7077 : Bluetooth: HFP HF: SLC query indicators present value
- https://gerrit.zephyrproject.org/r/5895 : DONT MERGE - test CI time with only 1 level
- https://gerrit.zephyrproject.org/r/5137 : DONT MERGE - add changes to two different branches
- https://gerrit.zephyrproject.org/r/6775 : verify: change to stop the build as soon as possible
- https://gerrit.zephyrproject.org/r/7589 : tag: email message sent by fix tag job
- https://gerrit.zephyrproject.org/r/7598 : kernel: remove K_TIMING thread flag

MERGED within last 24 hours:
- https://gerrit.zephyrproject.org/r/7629 : Bluetooth: Simplify ncmd handling
- https://gerrit.zephyrproject.org/r/7630 : Bluetooth: GATT: Fix primary service discovery response
- https://gerrit.zephyrproject.org/r/7628 : kernel: disable INIT_STACKS by default
- https://gerrit.zephyrproject.org/r/7018 : net: Remove legacy IoT sample applications
- https://gerrit.zephyrproject.org/r/6367 : net: Remove legacy Contiki based uIP stack
- https://gerrit.zephyrproject.org/r/6972 : net: Make native IP stack the default
- https://gerrit.zephyrproject.org/r/7414 : ethernet: Add driver initialization priority to Kconfig
- https://gerrit.zephyrproject.org/r/7501 : ethernet: enc28j60: use unified kernel interface
- https://gerrit.zephyrproject.org/r/7609 : Bluetooth: Account K_THREAD_SIZEOF in BT_STACK macros
- https://gerrit.zephyrproject.org/r/7032 : Bluetooth: doc: Fix reference to documentation location
- https://gerrit.zephyrproject.org/r/7624 : net: ICMPv6 Echo-Reply message was incorrectly setup


Sensor result representation.

Marcus Shawcroft <marcus.shawcroft@...>
 

Hi!

The sensor.h public API provides a mechanism for a sensor drivers to
publish results in one of four different formats:

SENSOR_VALUE_TYPE_INT
SENSOR_VALUE_TYPE_INT_PLUS_MICRO
SENSOR_VALUE_TYPE_Q16_16
SENSOR_VALUE_TYPE_DOUBLE

There is no guidance (that I could find) on which data format a
driver should return for any given sensor channel. This flexibility
in the API has been exploited to a degree, looking at just temperature
sensors in the current tree we have:

dht, bmg160,tmp007,tmp112, hp206chts221dsc1009, bma280, mpu6050,
mcp9808, lis3mdl, sht3xd, bmi160, bme280 all returning temperature
values formatted as INT_PLUS_MICRO.

and

lsm6ds0, lps25hb, th02, lsm9ds0 all returning temperature values
formatted as DOUBLE.

Having different drivers return data for the same channel type in
different formats implies that every application written to consume
such data needs some kind of demuxing code or, more likely, it will
be built to work against a specific flavour of driver... either way
this situation is not ideal.

Is there a reason we have designed in this degree of flexibility?

If not then perhaps for each channel type in sensor.h we should
define the data format returned by all drivers supporting that channel
type?

I raise this issue now while there are relatively few drivers, because
tighting API behaviour now is going to be significantly easier in the
short term than it will be in the medium / long term when we have more
drivers and more divergence in behaviour.

Cheers
/Marcus


Daily JIRA Digest

donotreply@...
 

NEW JIRA items within last 24 hours: 2
[ZEP-1346] UART doesn't work on Arduino 101
https://jira.zephyrproject.org/browse/ZEP-1346

[ZEP-1348] samples/nfc build failures
https://jira.zephyrproject.org/browse/ZEP-1348


UPDATED JIRA items within last 24 hours: 6
[ZEP-742] nRF5x Series: System Clock driver using NRF_RTC
https://jira.zephyrproject.org/browse/ZEP-742

[ZEP-1320] Update Porting Guide
https://jira.zephyrproject.org/browse/ZEP-1320

[ZEP-1308] zephyr thread function k_sleep does'nt work with nrf51822
https://jira.zephyrproject.org/browse/ZEP-1308

[ZEP-1293] ENC28J60 driver doesn't work on Arduino 101
https://jira.zephyrproject.org/browse/ZEP-1293

[ZEP-1189] SoC I2C peripheral of the Quark SE cannot be used from the ARC core
https://jira.zephyrproject.org/browse/ZEP-1189

[ZEP-1315] System timer doesn't tick on bbc_microbit board
https://jira.zephyrproject.org/browse/ZEP-1315


CLOSED JIRA items within last 24 hours: 25
[ZEP-821] (Duplicate) MQTT v3.1.1 port to the new IP Stack
https://jira.zephyrproject.org/browse/ZEP-821

[ZEP-421] (Duplicate) Application Development Primer Rewrite
https://jira.zephyrproject.org/browse/ZEP-421

[ZEP-237] (Fixed) Support pre-built host tools
https://jira.zephyrproject.org/browse/ZEP-237

[ZEP-918] (Won't Do) Add ring buffer support
https://jira.zephyrproject.org/browse/ZEP-918

[ZEP-917] (Won't Do) Add abort handler support
https://jira.zephyrproject.org/browse/ZEP-917

[ZEP-914] (Won't Do) Improving locking algorithms in kernel objects
https://jira.zephyrproject.org/browse/ZEP-914

[ZEP-913] (Won't Do) Place thread stacks in their own linker section
https://jira.zephyrproject.org/browse/ZEP-913

[ZEP-405] (Duplicate) aaD, I want to be able to build my existing code which uses assert.h on Zephyr
https://jira.zephyrproject.org/browse/ZEP-405

[ZEP-753] (Duplicate) Make I2C_SDA_HOLD and I2C_SDA_SETUP SoC specific
https://jira.zephyrproject.org/browse/ZEP-753

[ZEP-619] (Duplicate) Move some configuration items in file system to header files
https://jira.zephyrproject.org/browse/ZEP-619

[ZEP-637] (Won't Do) Building and linking static libraries
https://jira.zephyrproject.org/browse/ZEP-637

[ZEP-1003] (Won't Do) Extend aio_comparator_qmsi driver to support save/restore peripheral context
https://jira.zephyrproject.org/browse/ZEP-1003

[ZEP-842] (Won't Do) Create a sample application for ENC28J60
https://jira.zephyrproject.org/browse/ZEP-842

[ZEP-668] (Duplicate) Quark SE: Add support for suspend and resume ARC Sensor subsystem when SoC enters/exits Sleep state
https://jira.zephyrproject.org/browse/ZEP-668

[ZEP-656] (Duplicate) QMSI shim driver: Comparator: Implement suspend and resume callbacks
https://jira.zephyrproject.org/browse/ZEP-656

[ZEP-660] (Duplicate) QMSI shim driver: DMA: Implement suspend and resume callbacks
https://jira.zephyrproject.org/browse/ZEP-660

[ZEP-1287] (Fixed) ARC SPI 1 Port is not working
https://jira.zephyrproject.org/browse/ZEP-1287

[ZEP-1143] (Won't Do) Zephyr does not link with ISSM toolchain
https://jira.zephyrproject.org/browse/ZEP-1143

[ZEP-756] (Duplicate) Remove Sandboxes from documentation
https://jira.zephyrproject.org/browse/ZEP-756

[ZEP-1142] (Cannot Reproduce) Tinycrypt SHA256 test blocks at test vector 13 and 14 with microkernel
https://jira.zephyrproject.org/browse/ZEP-1142

[ZEP-711] (Cannot Reproduce) I2c: fails to write with mode fast plus
https://jira.zephyrproject.org/browse/ZEP-711

[ZEP-1341] (Fixed) power_states test app passes wrong value as power state to post_ops functions
https://jira.zephyrproject.org/browse/ZEP-1341

[ZEP-1184] (Won't Do) Problematic configuration dependency for file system on QMSI flash driver
https://jira.zephyrproject.org/browse/ZEP-1184

[ZEP-1013] (Cannot Reproduce) [TCF] samples/shell/microkernel build fail
https://jira.zephyrproject.org/browse/ZEP-1013

[ZEP-714] (Cannot Reproduce) I2C fails to write/read the fourth slave among operation of multi-slaves
https://jira.zephyrproject.org/browse/ZEP-714


RESOLVED JIRA items within last 24 hours: 0

5641 - 5660 of 7584