About the Behavior of "z_clock_announce" in SMP?
"曹子龙
Hi folks: a puzzle in the timer tick interrupt handler in SMP mode. look at below, the SMP mult cores share the same "cur_tick" object to remeber the current time, each cpu would increment it when the tick hander excutes on each CPU. so, could this would accelerate the timer compare with the realworld? for example, if 4cores exist, the cur_tick would 4 times incmrent than the read world, i cant fingure out where am a wrong, so, could you figure me out? thanks for your kinldy supply. void z_clock_announce(s32_t ticks) { #ifdef CONFIG_TIMESLICING z_time_slice(ticks); #endif k_spinlock_key_t key = k_spin_lock(&timeout_lock); announce_remaining = ticks; while (first() != NULL && first()->dticks <= announce_remaining) { struct _timeout *t = first(); int dt = t->dticks; curr_tick += dt; announce_remaining -= dt; t->dticks = 0; remove_timeout(t); k_spin_unlock(&timeout_lock, key); t->fn(t); key = k_spin_lock(&timeout_lock); } if (first() != NULL) { first()->dticks -= announce_remaining; } curr_tick += announce_remaining; announce_remaining = 0; z_clock_set_timeout(next_timeout(), false); k_spin_unlock(&timeout_lock, key); }曹子龙 珠海全志科技股份有限公司 BU1-PSW 地址:广东省珠海市高新区唐家湾镇科技2路9号 TEL:13824125580 Email:caozilong@... 网址: http://www.allwinnertech.com
|
|
Re: STM32WB55 BLE address
Marcio Montenegro
Awesome, thanks!
On Tue, Aug 13, 2019 at 9:13 AM Erwan Gouriou <erwan.gouriou@...> wrote:
|
|
Re: STM32WB55 BLE address
Erwan Gouriou
Hi Marcio, Setting of public address based on flash registers should be done as part of controller init in hci driver. In function bt_ipm_ble_init in drivers/bluetooth/hci/ipm_stm32wb.c It should be done by sending a custom command to the controller (ACI_HAL_WRITE_CONFIG_DATA), which will provide the address that you can get by the piece of code you mentionned. This proprietary command is described in following application note: Hope it helps Erwan
On Thu, 8 Aug 2019 at 20:29, Marcio Montenegro <mtuxpe@...> wrote:
|
|
Re: how to make zephyr as a ble mesh provisioner?
Hi Rahul,
On 24 Jul 2019, at 8.01, rahul tiwari <rahultiwari30694@gmail.com> wrote: what are the steps required to make zephyr OS as a provisioner.There’s a preliminary pull request to add this feature, but it’s not yet merged upstream: https://github.com/zephyrproject-rtos/zephyr/pull/17729 I flashed the sample board example of mesh over nordic pca10040 , and i cant provision it from BlueZ meshctlWere you asking for provisioner support as a workaround for the above issue, or these are two independent requests? meshctl should be able to provision Zephyr as long as you have PB-GATT support enabled in Zephyr. Nordic’s nRF Mesh app (available for Android & iOS) should work as well. Johan
|
|
Zephyr 2.0.0-rc1 tagged
Glaropoulos, Ioannis
Hi Zephyr developers,
We have just tagged Zephyr 2.0.0-rc1.
All required features scheduled for 2.0 release are now merged into master. As of now we are in the stabilization phase for 2.0 release; the merge window is closed for new features and enhancements, and will remain closed until the release date. We will also start working on filling in the existing skeleton for the release notes.
During the stabilization period bug-fix, documentation, and stabilization-related patches may be merged to master. Additional features or enhancements for 2.0 release will need to be approved by TSC.
As we need to reduce bug counts for the release, you are all encouraged to submit PRs that close existing bug reports, and to help reviewing such PRs submitted by other contributors or maintainers. Testing Zephyr release candidate branches is also highly appreciated; please, test the code base and file bug reports so they can be addressed before the release deadline.
The full release log can be found here: https://github.com/zephyrproject-rtos/zephyr/releases/tag/v2.0.0-rc1
More details about Zephyr releases is found here: https://github.com/zephyrproject-rtos/zephyr/wiki/Program-Management
The final release is tentatively scheduled for August 30th.
Thanks to everybody who contributed to this release!
Ioannis Glaropoulos
|
|
Re: STM32WB55 BLE address
Marcio Montenegro
Hello Rob, I got the error below: undefined reference to `bt_ctlr_set_public_addr'Yes I included <bluetooth/controller.h> I don't know if any config is missing and how public BLE address is assigned for this board. My prj.conf: CONFIG_BT=y CONFIG_BT_DEBUG_LOG=y CONFIG_BT_PERIPHERAL=y CONFIG_BT_DEVICE_NAME="P2PSRV1" CONFIG_BT_GATT_BAS=y CONFIG_BT_DEBUG=y Anyway I can connect to nrf connect and ST BLE sensor android app. The battery service is working. Now I am finishing a custom service. Best regards, Marcio
On Wed, Aug 7, 2019 at 2:21 PM Marcio Montenegro via Lists.Zephyrproject.Org <mtuxpe=gmail.com@...> wrote:
|
|
Zephyr SDK 0.10.2 available
Kumar Gala
Hi,
Latest version of the SDK can be found here: https://github.com/zephyrproject-rtos/sdk-ng/releases/tag/v0.10.2 Please download and try things out and report any issues. Changes since the last release: • Updated QEMU to v4.1.0-rc4 to pickup MPS2 AN521 / v8m functionality as well as RISC-V fixes • Enabled aarch64 qemu target to be used for Cortex-R on Xilinx platform • Updated RISC-V toolchain with fixes from riscv/riscv-gnu-toolchain • Enabled 64-bit RISC-V toolchain, defaults to ilp32 so it can build RISC-V 32-bit code • Deprecating the 32-bit RISC-V toolchain • Pulled in openocd fix for CC13x2/CC26x2 platforms Thanks to all that contributed fixes and enhancements to this version of the SDK. - k
|
|
Cancelled Event: Zephyr Project: Dev Meeting - Thursday, 8 August 2019
#cal-cancelled
devel@lists.zephyrproject.org Calendar <devel@...>
Cancelled: Zephyr Project: Dev Meeting This event has been cancelled. When: Where: Organizer: Description:
|
|
Re: Adafruit Feature nRF52 bit bang i2c
Tomas McGuinness <tomasmcguinness@...>
After some reading, I settled on these settings:
CONFIG_I2C=y CONFIG_I2C_LOG_LEVEL_INF=y CONFIG_I2C_LOG_LEVEL_ERR=y CONFIG_I2C_LOG_LEVEL_DBG=y
CONFIG_I2C_NRFX=y CONFIG_I2C_0=y CONFIG_I2C_0_NRF_TWI=y
CONFIG_SENSOR=y CONFIG_BME280=y
With your DTS configuration of
&i2c0 { bme280@76 { compatible = "bosch,bme280"; label = "BME280"; reg = <0x76>; }; };
I get this trace!
Everything seems to be working now.
***** Booting Zephyr OS build zephyr-v1.14.0-2748-g4eb85176e325 ***** Simple Light Dev 0x20004350 name BME280 nt: 8 [temp: 22.950000; press: 100.875410; humidity: 51.296875 0:00:00.000,000] <dbg> mpu.region_init: [0] 0x00000000 0x07020024 [00:00:00.000,000] <dbg> mpu.region_init: [1] 0x20000000 0x110b001e [00:00:00.000,000] <dbg> bt_hci_core.bt_hci_driver_register: Registered Controller [00:00:00.000,000] <dbg> BME280.bme280_chip_init: BME280 chip detected [00:00:00.005,126] <dbg> temp_nrf5.temp_nrf5_init: temp: 22.950000; press: 100.875074; humidity: 51.296875 temp: 22.950000; press: 100.874640; humidity: 51.296875 temp: 22.950000; press: 100.874640; humidity: 51.286132 temp: 22.950000; press: 100.874980; humidity: 51.296875
Thanks for pointing me in the right direction, Benjamin!
Tom
Sent from Mail for Windows 10
From: Tomas McGuinness
Sent: 07 August 2019 13:41 To: devel@... Subject: RE: [Zephyr-devel] Adafruit Feature nRF52 bit bang i2c
Benjamin,
I added that entry to a file called nrf52_adafruit_feather.overlay
I had to add CONFIG_I2C_0=y to my proj file also, so it includes these settings now:
CONFIG_I2C=y CONFIG_I2C_0=y
CONFIG_SENSOR=y CONFIG_BME280=y
However, when I flash the adafruit, I get a serious looking error message:
***** Booting Zephyr OS build zephyr-v1.14.0-2748-g4eb85176e325 ***** Simple Light [00:00:00.012,939] <err> os: ***** USAGE FAULT ***** [00:00:00.012,939] <err> os: Attempt to execute undefined instruction [00:00:00.012,969] <err> os: r0/a1: 0x20004324 r1/a2: 0x0000000a r2/a3: 0x0000d4e6 [00:00:00.013,000] <err> os: r3/a4: 0x20001d28 r12/ip: 0x20001c94 r14/lr: 0x00000aab [00:00:00.013,000] <err> os: xpsr: 0x61000000 [00:00:00.013,031] <err> os: Faulting instruction address (r15/pc): 0x00000aba [00:00:00.013,031] <err> os: >>> ZEPHYR FATAL ERROR 0: CPU exception [00:00:00.013,031] <err> os: Current thread: 0x20000f54 (unknown) [00:00:00.072,937] <err> os: Halting system
Sent from Mail for Windows 10
From: Benjamin Lindqvist <benjamin.lindqvist@...>
You need to add the bme280 to your device tree file. Something like:
&i2c0 { };
On Mon, Aug 5, 2019 at 3:04 PM Tomas McGuinness <tomasmcguinness@...> wrote:
|
|
Re: STM32WB55 BLE address
Marcio Montenegro
Thanks, I'll check it out.
On Wed, Aug 7, 2019, 13:57 Rob Weber <rob@...> wrote: Hello,
|
|
Re: STM32WB55 BLE address
Rob Weber
Hello,
On Tue, Aug 06, 2019 at 11:26:59AM -0300, Marcio Montenegro wrote: I am evaluating STM32WB55 board HCI driver.I have not yet worked with any of the bluetooth APIs, but this thread peaked my interest because I am also evaluating the STM32WB55 for an upcoming project. I did a quick search through the bluetooth API and found the function bt_ctlr_set_public_addr [1]. I started digging into its implementation, but I was not able to figure out how this function relates to the rest of the bluetooth system, or how it relates to the STM32WB55 LL/HAL. I would recommend trying this function to see if it meets your needs. Please let me know if it works! I'm definitely curious to know how this might work with the STM32WB55. Cheers, Rob Weber [1] https://docs.zephyrproject.org/latest/reference/bluetooth/controller.html#_CPPv323bt_ctlr_set_public_addrPK4u8_t
|
|
Re: Adafruit Feature nRF52 bit bang i2c
Benjamin Lindqvist
It's not easy to comment on what caused the usage fault without knowing what code is actually running on the device.
On Wed, Aug 7, 2019 at 3:02 PM Tomas McGuinness <tomasmcguinness@...> wrote:
|
|
Re: Adafruit Feature nRF52 bit bang i2c
Tomas McGuinness <tomasmcguinness@...>
Benjamin,
I added that entry to a file called nrf52_adafruit_feather.overlay
I had to add CONFIG_I2C_0=y to my proj file also, so it includes these settings now:
CONFIG_I2C=y CONFIG_I2C_0=y
CONFIG_SENSOR=y CONFIG_BME280=y
However, when I flash the adafruit, I get a serious looking error message:
***** Booting Zephyr OS build zephyr-v1.14.0-2748-g4eb85176e325 ***** Simple Light [00:00:00.012,939] <err> os: ***** USAGE FAULT ***** [00:00:00.012,939] <err> os: Attempt to execute undefined instruction [00:00:00.012,969] <err> os: r0/a1: 0x20004324 r1/a2: 0x0000000a r2/a3: 0x0000d4e6 [00:00:00.013,000] <err> os: r3/a4: 0x20001d28 r12/ip: 0x20001c94 r14/lr: 0x00000aab [00:00:00.013,000] <err> os: xpsr: 0x61000000 [00:00:00.013,031] <err> os: Faulting instruction address (r15/pc): 0x00000aba [00:00:00.013,031] <err> os: >>> ZEPHYR FATAL ERROR 0: CPU exception [00:00:00.013,031] <err> os: Current thread: 0x20000f54 (unknown) [00:00:00.072,937] <err> os: Halting system
Sent from Mail for Windows 10
From: Benjamin Lindqvist <benjamin.lindqvist@...>
Sent: Monday, August 5, 2019 2:13:04 PM To: Tomas McGuinness <tomasmcguinness@...> Subject: Re: [Zephyr-devel] Adafruit Feature nRF52 bit bang i2c You need to add the bme280 to your device tree file. Something like:
&i2c0 {
bme280@76 { compatible = "bosch,bme280"; label = "BME280"; reg = <0x76>; }; };
On Mon, Aug 5, 2019 at 3:04 PM Tomas McGuinness <tomasmcguinness@...> wrote:
|
|
Upcoming Event: Zephyr Project: APIs - Tue, 08/06/2019 9:00am-10:00am, Please RSVP
#cal-reminder
devel@lists.zephyrproject.org Calendar <devel@...>
Reminder: Zephyr Project: APIs When: Tuesday, 6 August 2019, 9:00am to 10:00am, (GMT-07:00) America/Los Angeles Where:https://zoom.us/j/177647878 An RSVP is requested. Click here to RSVP Organizer: devel@... Description: Join from PC, Mac, Linux, iOS or Android: https://zoom.us/j/177647878 Live meeting minutes: https://docs.google.com/
|
|
STM32WB55 BLE address
Marcio Montenegro
Hi all, I am evaluating STM32WB55 board HCI driver. During my test I found that BLE public address is 02:80:e1:00:00:00 But this microcontroller has an internal flash register to store BLE address and device id. I would like to know the best way to change the address BLE in this case. Best regards, Marcio BLE Stack initialization: [00:00:00.015,000] <dbg> bt_settings.bt_settings_init: Bluetooth initialized Configuration mode: waiting connections... [00:00:00.187,000] <inf> bt_hci_core: Identity: 02:80:e1:00:00:00 (public) [00:00:00.187,000] <inf> bt_hci_core: HCI: version 5.0 (0x09) revision 0x0026, manufacturer 0x0030 [00:00:00.187,000] <inf> bt_hci_core: LMP: version 5.0 (0x09) subver 0x2126 Get correct BLE address: udn = LL_FLASH_GetUDN(); if(udn != 0xFFFFFFFF) { company_id = LL_FLASH_GetSTCompanyID(); device_id = LL_FLASH_GetDeviceID(); bd_addr_udn[0] = (uint8_t)(udn & 0x000000FF); bd_addr_udn[1] = (uint8_t)( (udn & 0x0000FF00) >> 8 ); bd_addr_udn[2] = (uint8_t)( (udn & 0x00FF0000) >> 16 ); bd_addr_udn[3] = (uint8_t)device_id; bd_addr_udn[4] = (uint8_t)(company_id & 0x000000FF);; bd_addr_udn[5] = (uint8_t)( (company_id & 0x0000FF00) >> 8 ); bd_addr = (const uint8_t *)bd_addr_udn; }
|
|
API meeting: Agenda
Carles Cufi
Hi all,
This week we will look at: Agenda: - GPIO: Quick confirmation of API suitability * See: https://github.com/zephyrproject-rtos/zephyr/issues/15611#issuecomment-516488369 - Sensor API: Update on progress if contributors present Additional items in the "Triage" column in the GitHub project may be discussed if time permits. If you want an item included in the meeting, please add it to the GitHub project. https://github.com/zephyrproject-rtos/zephyr/wiki/Zephyr-Committee-and-Working-Group-Meetings#zephyr-api-discussion https://github.com/zephyrproject-rtos/zephyr/projects/18 https://docs.google.com/document/d/1lv-8B5QE2m4FjBcvfqAXFIgQfW5oz6306zJ7GIZIWCk/edit Regards, Carles
|
|
Re: ARMv8 Cortex-M TrustZone configuration
Kevin Townsend
Hi Johnny, This doesn't use the LPC55S69-EVK at the moment -- it's based on a development board designed by ARM -- but it is relevant to your question and gives an initial example of TF-M in the secure processing environment (SPE) and Zephyr in the NSPE: This PR in it's current state can't be merged since there are some CI issues to resolve (work ongoing there), but if you look at samples/tfm_integration you will find a basic example that documents how the image merge and signing process works for this setup. If you're interested in getting involved with TF-M and Zephyr, any participation and contributions are of course always welcome, and I would suggest joining the Zephyr Slack where most of the adtive contributors are day to day. #general is a good place to start, but #memoryprotection may be of interest to you as well. Best regards, Kevin
On Tue, 6 Aug 2019 at 14:17, Johnny Daniels via Lists.Zephyrproject.Org <0x450=protonmail.ch@...> wrote:
|
|
ARMv8 Cortex-M TrustZone configuration
Johnny Daniels
Hello Zephyr devel universe, I have an NXP LPC55S69-EVK development board. It is based on an ARMv8 Cortex-M CPU with the TrustZone extension. Zephyr officially supports this board. I want to run Zephyr OS inside the Non-Secure World and have the Secure World free for other services. Question 1: Is this possible with the current version of the Zephyr project? If the answer to the above question is yes, then Question 2: How to achieve this separation using Zephyr's build system? Can you point me to a documentation? I can see GitHub issues and KConfig parameters which suggest that this should theoretically be possible. What I expect is something similar to: - The Zephyr build system should produce 2 binaries (for the Secure and Non-Secure worlds respectively) and 1 shared library, which is statically linked to the Non-Secure binary (for the Non-Secure-Callable veneers). - The Secure binary is the bootloader, the code which configures the TrustZone separation and then starts the Non-Secure kernel. - The Non-Secure binary starts with the kernel initialisation and continues until the execution of the application threads. - Executing `west flash` should be able to flash the Secure and Non-Secure binaries independently from one another. Question 3: From the kernel developer's perspective: What do you guys expect from Zephyr's users? How should users configure the Secure/Non-Secure domains? Regards, Johnny
|
|
Re: Why the smp version of zephyr kernel "idle" task implent the "k_busy_wait(100)" delay?
Andy Ross
FWIW: the reason for the busy wait is to reduce the number of calls to k_yield() which needs to enter the scheduler and obviously take a spinlock for synchronization. If you have one CPU spinning on the scheduler lock, the other is going to constantly have to contend for it and you get a performance disaster.
FWIW: we have an IPI framework now. This is straightforward to fix.
Andy
On 8/4/19 5:41 PM, Boie, Andrew P
wrote:
|
|
Re: [EXT] [Zephyr-users] Zephyr SDK 0.10.2-rc1 available
Kumar Gala
Yeah, that’s merged now.
toggle quoted messageShow quoted text
:) - k
On Aug 5, 2019, at 4:01 AM, Andrei Gansari <andrei.gansari@nxp.com> wrote:
|
|