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.
toggle quoted messageShow quoted text
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.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.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, -- 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.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.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,
toggle quoted messageShow quoted text
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
|
|