Date   

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:
Thursday, 8 August 2019
8:00am to 9:00am
(UTC-07:00) America/Los Angeles

Where:
https://zoom.us/j/993312203

Organizer:
devel@...

Description:
Join Zoom Meeting
https://zoom.us/j/993312203

One tap mobile
+16699006833,,993312203# US (San Jose)
+16465588656,,993312203# US (New York)

Dial by your location
        +1 669 900 6833 US (San Jose)
        +1 646 558 8656 US (New York)
        +1 877 369 0926 US Toll-free
        +1 855 880 1246 US Toll-free
Meeting ID: 993 312 203
Find your local number: https://zoom.us/u/ankEMRagf


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@...>
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:

Hello,

 

I’m quite new to Zephyr and I’m trying to connect a BME280 to an Adafruit Feature nRF52832. As the I2C device driver isn’t available on the Adafruit Feature nRF52832, I want to try and use the Big Bang approach. I’m using the latest build of Zephyr.

 

My prj.config includes these settings:

 

CONFIG_I2C=y

CONFIG_I2C_GPIO=y

 

CONFIG_SENSOR=y

CONFIG_BME280=y

 

When I try and build the project using west, I get

 

west build -b nrf52_adafruit_feather

 

In file included from C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:24:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.h:111:2: error: #error "BME280 device type not specified"

#error "BME280 device type not specified"

  ^~~~~

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c: In function 'bme280_init':

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:357:22: warning: unused variable 'data' [-Wunused-variable]

  struct bme280_data *data = dev->driver_data;

                      ^~~~

In file included from C:/Development/zephyrproject/zephyr/include/drivers/sensor.h:23,

                 from C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:11:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c: At top level:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:385:29: error: 'DT_INST_0_BOSCH_BME280_LABEL' undeclared here (not in a function); did you mean 'DT_INST_0_SOC_NV_FLASH_LABEL'?

DEVICE_AND_API_INIT(bme280, DT_INST_0_BOSCH_BME280_LABEL, bme280_init, &bme280_data,

                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:/Development/zephyrproject/zephyr/include/device.h:107:11: note: in definition of macro 'DEVICE_AND_API_INIT'

   .name = drv_name, .init = (init_fn),     \

           ^~~~~~~~

[79/177] Building C object zephyr/drivers/i2c/CMakeFiles/drivers__i2c.dir/i2c_gpio.c.obj

C:/Development/zephyrproject/zephyr/drivers/i2c/i2c_gpio.c:94:12: warning: 'i2c_gpio_init' defined but not used [-Wunused-function]

static int i2c_gpio_init(struct device *dev)

            ^~~~~~~~~~~~~

C:/Development/zephyrproject/zephyr/drivers/i2c/i2c_gpio.c:89:30: warning: 'api' defined but not used [-Wunused-variable]

static struct i2c_driver_api api = {

                              ^~~

 

I know the Adafruit supports I2c (since it marks two pins for it). I also look at a look at the dts file for this board and can see an etry:

 

&i2c0 {

                sda-pin = <25>;

                scl-pin = <26>;

};

 

Is support for the i2c device a work in progress?

 

Any help would be appreciated.

 

Sent from Mail for Windows 10

 

 


Re: STM32WB55 BLE address

Marcio Montenegro
 

Thanks, I'll check it out. 


On Wed, Aug 7, 2019, 13:57 Rob Weber <rob@...> wrote:
Hello,

On Tue, Aug 06, 2019 at 11:26:59AM -0300, Marcio Montenegro wrote:
> 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;
>
> }

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: 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.
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;

}
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:

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:

Hello,

 

I’m quite new to Zephyr and I’m trying to connect a BME280 to an Adafruit Feature nRF52832. As the I2C device driver isn’t available on the Adafruit Feature nRF52832, I want to try and use the Big Bang approach. I’m using the latest build of Zephyr.

 

My prj.config includes these settings:

 

CONFIG_I2C=y

CONFIG_I2C_GPIO=y

 

CONFIG_SENSOR=y

CONFIG_BME280=y

 

When I try and build the project using west, I get

 

west build -b nrf52_adafruit_feather

 

In file included from C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:24:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.h:111:2: error: #error "BME280 device type not specified"

#error "BME280 device type not specified"

  ^~~~~

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c: In function 'bme280_init':

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:357:22: warning: unused variable 'data' [-Wunused-variable]

  struct bme280_data *data = dev->driver_data;

                      ^~~~

In file included from C:/Development/zephyrproject/zephyr/include/drivers/sensor.h:23,

                 from C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:11:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c: At top level:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:385:29: error: 'DT_INST_0_BOSCH_BME280_LABEL' undeclared here (not in a function); did you mean 'DT_INST_0_SOC_NV_FLASH_LABEL'?

DEVICE_AND_API_INIT(bme280, DT_INST_0_BOSCH_BME280_LABEL, bme280_init, &bme280_data,

                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:/Development/zephyrproject/zephyr/include/device.h:107:11: note: in definition of macro 'DEVICE_AND_API_INIT'

   .name = drv_name, .init = (init_fn),     \

           ^~~~~~~~

[79/177] Building C object zephyr/drivers/i2c/CMakeFiles/drivers__i2c.dir/i2c_gpio.c.obj

C:/Development/zephyrproject/zephyr/drivers/i2c/i2c_gpio.c:94:12: warning: 'i2c_gpio_init' defined but not used [-Wunused-function]

static int i2c_gpio_init(struct device *dev)

            ^~~~~~~~~~~~~

C:/Development/zephyrproject/zephyr/drivers/i2c/i2c_gpio.c:89:30: warning: 'api' defined but not used [-Wunused-variable]

static struct i2c_driver_api api = {

                              ^~~

 

I know the Adafruit supports I2c (since it marks two pins for it). I also look at a look at the dts file for this board and can see an etry:

 

&i2c0 {

                sda-pin = <25>;

                scl-pin = <26>;

};

 

Is support for the i2c device a work in progress?

 

Any help would be appreciated.

 

Sent from Mail for Windows 10

 


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:

Hello,

 

I’m quite new to Zephyr and I’m trying to connect a BME280 to an Adafruit Feature nRF52832. As the I2C device driver isn’t available on the Adafruit Feature nRF52832, I want to try and use the Big Bang approach. I’m using the latest build of Zephyr.

 

My prj.config includes these settings:

 

CONFIG_I2C=y

CONFIG_I2C_GPIO=y

 

CONFIG_SENSOR=y

CONFIG_BME280=y

 

When I try and build the project using west, I get

 

west build -b nrf52_adafruit_feather

 

In file included from C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:24:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.h:111:2: error: #error "BME280 device type not specified"

#error "BME280 device type not specified"

  ^~~~~

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c: In function 'bme280_init':

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:357:22: warning: unused variable 'data' [-Wunused-variable]

  struct bme280_data *data = dev->driver_data;

                      ^~~~

In file included from C:/Development/zephyrproject/zephyr/include/drivers/sensor.h:23,

                 from C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:11:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c: At top level:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:385:29: error: 'DT_INST_0_BOSCH_BME280_LABEL' undeclared here (not in a function); did you mean 'DT_INST_0_SOC_NV_FLASH_LABEL'?

DEVICE_AND_API_INIT(bme280, DT_INST_0_BOSCH_BME280_LABEL, bme280_init, &bme280_data,

                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:/Development/zephyrproject/zephyr/include/device.h:107:11: note: in definition of macro 'DEVICE_AND_API_INIT'

   .name = drv_name, .init = (init_fn),     \

           ^~~~~~~~

[79/177] Building C object zephyr/drivers/i2c/CMakeFiles/drivers__i2c.dir/i2c_gpio.c.obj

C:/Development/zephyrproject/zephyr/drivers/i2c/i2c_gpio.c:94:12: warning: 'i2c_gpio_init' defined but not used [-Wunused-function]

static int i2c_gpio_init(struct device *dev)

            ^~~~~~~~~~~~~

C:/Development/zephyrproject/zephyr/drivers/i2c/i2c_gpio.c:89:30: warning: 'api' defined but not used [-Wunused-variable]

static struct i2c_driver_api api = {

                              ^~~

 

I know the Adafruit supports I2c (since it marks two pins for it). I also look at a look at the dts file for this board and can see an etry:

 

&i2c0 {

                sda-pin = <25>;

                scl-pin = <26>;

};

 

Is support for the i2c device a work in progress?

 

Any help would be appreciated.

 

Sent from Mail for Windows 10

 


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

Or iPhone one-tap :
    US: +16465588656,,177647878# or +16699006833,,177647878# 
Or Telephone:
    Dial(for higher quality, dial a number based on your current location): 
        US: +1 646 558 8656 or +1 669 900 6833 or +1 855 880 1246 (Toll Free) or +1 877 369 0926 (Toll Free)
    Meeting ID: 177 647 878
    International numbers available: https://zoom.us/zoomconference?m=ioAR9GK1OE5LkN1ojt-heTCl7yPcJrhY


 Live meeting minutes: https://docs.google.com/document/d/1lv-8B5QE2m4FjBcvfqAXFIgQfW5oz6306zJ7GIZIWCk/edit?usp=sharing


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:
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


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:

There’s an open bug for this:

 

https://github.com/zephyrproject-rtos/zephyr/issues/6157

 

Andrew

 

From: devel@... <devel@...> On Behalf Of "???
Sent: Sunday, August 4, 2019 4:04 PM
To: devel <devel@...>
Subject: [Zephyr-devel] Why the smp version of zephyr kernel "idle" task implent the "k_busy_wait(100)" delay?

 

 

Hi everyone:

 

  whey the SMP version of zephyr kernel idle task has involke the "k_busy_wait"? and it is especially unreasonable to pass the delay time with 100.

why not 200, 300, 400..... and so on?

 

i cant very catch the comment with reason " to prevent the lock condentation"  if there are  lock condention exists, can the contention corner case be avoided just with a deay time??

i just cant understand the present implementation

thanks for your kindly help.

 

void idle(void *unused1, void *unused2, void *unused3)
{
    ARG_UNUSED(unused1);
    ARG_UNUSED(unused2);
    ARG_UNUSED(unused3);

 

 

    while (true) {
        k_busy_wait(100);
        k_yield();
    }

 

曹子

珠海全志科技股份有限公司      BU1-PSW

地址:广东省珠海市高新区唐家湾镇科技2路9号

TEL:13824125580

Email:caozilong@...

网址: http://www.allwinnertech.com

 

 


Re: [EXT] [Zephyr-users] Zephyr SDK 0.10.2-rc1 available

Kumar Gala
 

Yeah, that’s merged now.

:)

- k

On Aug 5, 2019, at 4:01 AM, Andrei Gansari <andrei.gansari@nxp.com> wrote:

Will not work in current mainline, unless you apply https://github.com/zephyrproject-rtos/zephyr/pull/17984


Andrei Gansari

-----Original Message-----
From: users@lists.zephyrproject.org <users@lists.zephyrproject.org> On Behalf Of Kumar Gala via Lists.Zephyrproject.Org
Sent: Friday, August 2, 2019 6:36 PM
To: zephyr-devel <zephyr-devel@lists.zephyrproject.org>; zephyr-users@lists.zephyrproject.org
Cc: users@lists.zephyrproject.org
Subject: [EXT] [Zephyr-users] Zephyr SDK 0.10.2-rc1 available

Caution: EXT Email

Hi,

Latest version of the SDK can be found here:

https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fsdk-ng%2Freleases%2Ftag%2Fv0.10.2-rc1&;data=02%7C01%7Candrei.gansari%40nxp.com%7C76dce26ca04a4a350c2108d7175f282f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637003569775968607&amp;sdata=XyPtEs%2BkmpQap%2FxD9M%2BGu5tHNKtCM11tpNN3IIISgls%3D&amp;reserved=0

Please download and try things out and report any issues.

Changes since the last release:

• Updated to QEMU 4.0.0
• Added aarch64 qemu target for use w/Cortex-R support (for xlnx-zcu102 target) • Updated openocd for bug fix on TI CC13x2/CC26x2 platforms.

- k


Re: Adafruit Feature nRF52 bit bang i2c

Benjamin Lindqvist
 

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:

Hello,

 

I’m quite new to Zephyr and I’m trying to connect a BME280 to an Adafruit Feature nRF52832. As the I2C device driver isn’t available on the Adafruit Feature nRF52832, I want to try and use the Big Bang approach. I’m using the latest build of Zephyr.

 

My prj.config includes these settings:

 

CONFIG_I2C=y

CONFIG_I2C_GPIO=y

 

CONFIG_SENSOR=y

CONFIG_BME280=y

 

When I try and build the project using west, I get

 

west build -b nrf52_adafruit_feather

 

In file included from C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:24:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.h:111:2: error: #error "BME280 device type not specified"

#error "BME280 device type not specified"

  ^~~~~

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c: In function 'bme280_init':

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:357:22: warning: unused variable 'data' [-Wunused-variable]

  struct bme280_data *data = dev->driver_data;

                      ^~~~

In file included from C:/Development/zephyrproject/zephyr/include/drivers/sensor.h:23,

                 from C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:11:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c: At top level:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:385:29: error: 'DT_INST_0_BOSCH_BME280_LABEL' undeclared here (not in a function); did you mean 'DT_INST_0_SOC_NV_FLASH_LABEL'?

DEVICE_AND_API_INIT(bme280, DT_INST_0_BOSCH_BME280_LABEL, bme280_init, &bme280_data,

                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:/Development/zephyrproject/zephyr/include/device.h:107:11: note: in definition of macro 'DEVICE_AND_API_INIT'

   .name = drv_name, .init = (init_fn),     \

           ^~~~~~~~

[79/177] Building C object zephyr/drivers/i2c/CMakeFiles/drivers__i2c.dir/i2c_gpio.c.obj

C:/Development/zephyrproject/zephyr/drivers/i2c/i2c_gpio.c:94:12: warning: 'i2c_gpio_init' defined but not used [-Wunused-function]

static int i2c_gpio_init(struct device *dev)

            ^~~~~~~~~~~~~

C:/Development/zephyrproject/zephyr/drivers/i2c/i2c_gpio.c:89:30: warning: 'api' defined but not used [-Wunused-variable]

static struct i2c_driver_api api = {

                              ^~~

 

I know the Adafruit supports I2c (since it marks two pins for it). I also look at a look at the dts file for this board and can see an etry:

 

&i2c0 {

                sda-pin = <25>;

                scl-pin = <26>;

};

 

Is support for the i2c device a work in progress?

 

Any help would be appreciated.

 

Sent from Mail for Windows 10

 


Adafruit Feature nRF52 bit bang i2c

Tomas McGuinness <tomasmcguinness@...>
 

Hello,

 

I’m quite new to Zephyr and I’m trying to connect a BME280 to an Adafruit Feature nRF52832. As the I2C device driver isn’t available on the Adafruit Feature nRF52832, I want to try and use the Big Bang approach. I’m using the latest build of Zephyr.

 

My prj.config includes these settings:

 

CONFIG_I2C=y

CONFIG_I2C_GPIO=y

 

CONFIG_SENSOR=y

CONFIG_BME280=y

 

When I try and build the project using west, I get

 

west build -b nrf52_adafruit_feather

 

In file included from C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:24:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.h:111:2: error: #error "BME280 device type not specified"

#error "BME280 device type not specified"

  ^~~~~

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c: In function 'bme280_init':

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:357:22: warning: unused variable 'data' [-Wunused-variable]

  struct bme280_data *data = dev->driver_data;

                      ^~~~

In file included from C:/Development/zephyrproject/zephyr/include/drivers/sensor.h:23,

                 from C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:11:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c: At top level:

C:/Development/zephyrproject/zephyr/drivers/sensor/bme280/bme280.c:385:29: error: 'DT_INST_0_BOSCH_BME280_LABEL' undeclared here (not in a function); did you mean 'DT_INST_0_SOC_NV_FLASH_LABEL'?

DEVICE_AND_API_INIT(bme280, DT_INST_0_BOSCH_BME280_LABEL, bme280_init, &bme280_data,

                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

C:/Development/zephyrproject/zephyr/include/device.h:107:11: note: in definition of macro 'DEVICE_AND_API_INIT'

   .name = drv_name, .init = (init_fn),     \

           ^~~~~~~~

[79/177] Building C object zephyr/drivers/i2c/CMakeFiles/drivers__i2c.dir/i2c_gpio.c.obj

C:/Development/zephyrproject/zephyr/drivers/i2c/i2c_gpio.c:94:12: warning: 'i2c_gpio_init' defined but not used [-Wunused-function]

static int i2c_gpio_init(struct device *dev)

            ^~~~~~~~~~~~~

C:/Development/zephyrproject/zephyr/drivers/i2c/i2c_gpio.c:89:30: warning: 'api' defined but not used [-Wunused-variable]

static struct i2c_driver_api api = {

                              ^~~

 

I know the Adafruit supports I2c (since it marks two pins for it). I also look at a look at the dts file for this board and can see an etry:

 

&i2c0 {

                sda-pin = <25>;

                scl-pin = <26>;

};

 

Is support for the i2c device a work in progress?

 

Any help would be appreciated.

 

Sent from Mail for Windows 10

 


Re: [EXT] [Zephyr-users] Zephyr SDK 0.10.2-rc1 available

Andrei Gansari
 

Will not work in current mainline, unless you apply https://github.com/zephyrproject-rtos/zephyr/pull/17984


Andrei Gansari

-----Original Message-----
From: users@lists.zephyrproject.org <users@lists.zephyrproject.org> On Behalf Of Kumar Gala via Lists.Zephyrproject.Org
Sent: Friday, August 2, 2019 6:36 PM
To: zephyr-devel <zephyr-devel@lists.zephyrproject.org>; zephyr-users@lists.zephyrproject.org
Cc: users@lists.zephyrproject.org
Subject: [EXT] [Zephyr-users] Zephyr SDK 0.10.2-rc1 available

Caution: EXT Email

Hi,

Latest version of the SDK can be found here:

https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fsdk-ng%2Freleases%2Ftag%2Fv0.10.2-rc1&;data=02%7C01%7Candrei.gansari%40nxp.com%7C76dce26ca04a4a350c2108d7175f282f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637003569775968607&amp;sdata=XyPtEs%2BkmpQap%2FxD9M%2BGu5tHNKtCM11tpNN3IIISgls%3D&amp;reserved=0

Please download and try things out and report any issues.

Changes since the last release:

• Updated to QEMU 4.0.0
• Added aarch64 qemu target for use w/Cortex-R support (for xlnx-zcu102 target) • Updated openocd for bug fix on TI CC13x2/CC26x2 platforms.

- k


Re: Why the smp version of zephyr kernel "idle" task implent the "k_busy_wait(100)" delay?

Boie, Andrew P
 

There’s an open bug for this:

 

https://github.com/zephyrproject-rtos/zephyr/issues/6157

 

Andrew

 

From: devel@... <devel@...> On Behalf Of "???
Sent: Sunday, August 4, 2019 4:04 PM
To: devel <devel@...>
Subject: [Zephyr-devel] Why the smp version of zephyr kernel "idle" task implent the "k_busy_wait(100)" delay?

 

 

Hi everyone:

 

  whey the SMP version of zephyr kernel idle task has involke the "k_busy_wait"? and it is especially unreasonable to pass the delay time with 100.

why not 200, 300, 400..... and so on?

 

i cant very catch the comment with reason " to prevent the lock condentation"  if there are  lock condention exists, can the contention corner case be avoided just with a deay time??

i just cant understand the present implementation

thanks for your kindly help.

 

void idle(void *unused1, void *unused2, void *unused3)
{
    ARG_UNUSED(unused1);
    ARG_UNUSED(unused2);
    ARG_UNUSED(unused3);

 

 

    while (true) {
        k_busy_wait(100);
        k_yield();
    }

 

曹子

珠海全志科技股份有限公司      BU1-PSW

地址:广东省珠海市高新区唐家湾镇科技2路9号

TEL:13824125580

Email:caozilong@...

网址: http://www.allwinnertech.com

 

 


Why the smp version of zephyr kernel "idle" task implent the "k_busy_wait(100)" delay?

"曹子龙
 


Hi everyone:

  whey the SMP version of zephyr kernel idle task has involke the "k_busy_wait"? and it is especially unreasonable to pass the delay time with 100.
why not 200, 300, 400..... and so on?

i cant very catch the comment with reason " to prevent the lock condentation"  if there are  lock condention exists, can the contention corner case be avoided just with a deay time??
i just cant understand the present implementation
thanks for your kindly help.

void idle(void *unused1, void *unused2, void *unused3)
{
    ARG_UNUSED(unused1);
    ARG_UNUSED(unused2);
    ARG_UNUSED(unused3);


    while (true) {
        k_busy_wait(100);
        k_yield();
    }

曹子龙

珠海全志科技股份有限公司      BU1-PSW

地址:广东省珠海市高新区唐家湾镇科技2路9号

TEL:13824125580

Email:caozilong@...

网址: http://www.allwinnertech.com

 



Request for comments: standard practice for driver-specific extensions

Peter A. Bigot
 

As discussed in TSC 2019-06-26 there is a need to provide access to extended capabilities when there’s an existing generic subsystem API (like GPIO or COUNTER), but a specific device has additional features that can’t be expressed.

Zephyr draft PR 17072 presents a technical solution using a stubbed real-world device. It now includes a documentation update with the technical details.

Zephyr issue 11993 provides some background.

Zephyr PR 17631 provides the complete ready-to-merge device implementation for an I2C-based high accuracy real-time clock that can be used as a 1 Hz counter.

In the devel review telecon 2019-08-01 we agreed to ask TSC to vote in the 2019-08-07 meeting (next week) on whether the approach described in 11072 is acceptable.

Please review and provide feedback on #17072 in preparation for that vote. If approved #17631 may be a candidate feature for v2.0.0.


Zephyr SDK 0.10.2-rc1 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-rc1

Please download and try things out and report any issues.

Changes since the last release:

• Updated to QEMU 4.0.0
• Added aarch64 qemu target for use w/Cortex-R support (for xlnx-zcu102 target)
• Updated openocd for bug fix on TI CC13x2/CC26x2 platforms.

- k

1881 - 1900 of 8033