Date   

Re: FW: support for NFFS file system

Vikrant More <vikrant8051@...>
 

Hi Vinayak, it works !!

I make following changes .....

    fs_file_t my_zfp;
    unsigned char ptr[32];

    for(cntr=0;cntr<=31;cntr++)
    {
        ptr[cntr]='@';
    }

    fs_open(&my_zfp,"mesh.prv");
    fs_write(&my_zfp,"0123456789ABCDEF",16);
    fs_read(&my_zfp,ptr,32);
    fs_close(&my_zfp);

    for(cntr=0;cntr<=31;cntr++)
    {
        printk("%c",ptr[cntr]);
    }

But it prints --> @@@@@@@@@@@@@@@@
instead of --> 0123456789ABCDEF

Any clue ??

Thanks !!

On Wed, Jan 24, 2018 at 5:41 PM, Chettimada, Vinayak Kariappa <vinayak.kariappa.chettimada@...> wrote:

Its:

 

fs_file_t my_zfp; // no * please;

 

and

 

fs_open(&my_zfp,"mesh.prv"); // & please J

 

That said, I am not expert on FS!

 

-Vinayak

 

From: zephyr-devel-bounces@lists.zephyrproject.org [mailto:zephyr-devel-bounces@lists.zephyrproject.org] On Behalf Of Vikrant More
Sent: Wednesday, January 24, 2018 1:06 PM
To: Michael Hope <michaelh@...>
Cc: zephyr-users@lists.zephyrproject.org; zephyr-devel@lists.zephyrproject.org
Subject: Re: [Zephyr-devel] FW: support for NFFS file system

 

I copied & pasted $zephyr/ext/fs/nffs directory into $zephyr_base/include
----------------------------------------------------------------------------------------------------------------------

& edit $zephyr_base/include/fs/nffs_fs.h as follow

/*
 * Copyright (c) 2017 Codecoup
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef _NFFS_FS_H_
#define _NFFS_FS_H_

#include <sys/types.h>
#include <nffs/include/nffs/nffs.h>

#ifdef __cplusplus
extern "C" {
#endif

FS_FILE_DEFINE(struct nffs_file *fp);
FS_DIR_DEFINE(struct nffs_dir *dp);

#define MAX_FILE_NAME 256

#ifdef __cplusplus
}
#endif

#endif /* _NFFS_FS_H_ */

-------------------------------------------------------------------------------------------------------------------------

& add following config into my prj.conf

CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_SOC_FLASH_NRF5=y
CONFIG_SOC_FLASH_NRF5_DEV_NAME="NRF52_FLASH"
CONFIG_SOC_FLASH_NRF5_RADIO_SYNC=y
CONFIG_ZTEST_STACKSIZE=2048
CONFIG_MAIN_STACK_SIZE=1024
CONFIG_HEAP_MEM_POOL_SIZE=1024


CONFIG_FILE_SYSTEM=y
CONFIG_FILE_SYSTEM_NFFS=y
CONFIG_FS_NFFS_NUM_FILES=4
CONFIG_FS_NFFS_NUM_DIRS=4
CONFIG_FS_NFFS_NUM_INODES=1024
CONFIG_FS_NFFS_NUM_BLOCKS=1024
CONFIG_FS_NFFS_NUM_CACHE_INODES=1
CONFIG_FS_NFFS_NUM_CACHE_BLOCKS=1
CONFIG_FILE_SYSTEM_NFFS=y
CONFIG_NFFS_FILESYSTEM_MAX_AREAS=12

------------------------------------------------------------------------------------------------------------------------

& add following lines in main.c

#include <fs.h>

void main( )
{
    fs_file_t *my_zfp;
    unsigned char ptr[32];


    fs_open(my_zfp,"mesh.prv");
    fs_write(my_zfp,"Hello World !! ",16);
    fs_read(my_zfp,ptr,32);
    fs_close(my_zfp);

    printk("%s",ptr);
}

After all this every thing gets compiled with warning :

 

warning: ‘my_zfp’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  fs_open(my_zfp,"mesh.prv");

Could you please help me, how to initialized my_zfp here ?

 

 

On Tue, Jan 23, 2018 at 1:15 AM, Michael Hope <michaelh@...> wrote:

Hi Vikrant.  You also need to enable NFFS in your configuration - try 'make menuconfig' > File Systems > File system support = y; Supported file systems -> NFFS.

You can also check out the NFFS test case under tests/subsys/fs and especially the configuration in https://github.com/zephyrproject-rtos/zephyr/blob/master/tests/subsys/fs/nffs_fs_api/nrf5x.conf

-- Michael

 

On Fri, 19 Jan 2018 at 11:46 Vikrant More <vikrant8051@...> wrote:

#include <fs.h>

void main( )
{
    fs_file_t *my_zfp;
    unsigned char ptr[32];


    fs_open(my_zfp,"mesh.prv");
    fs_write(my_zfp,"Hello World !! ",16);
    fs_read(my_zfp,ptr,32);
    fs_close(my_zfp);

    printk("%s",ptr);
}

I've edited main.c in my project as mentioned above.

And add CONFIG_FILE_SYSTEM_NFFS=y in prj.conf

 

1st time I got following error,

 

In file included from /home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:3:0:
/home/vikrant/projects/zephyr/zephyr/include/fs.h:66:12: error: ‘MAX_FILE_NAME’ undeclared here (not in a function)
  char name[MAX_FILE_NAME + 1];
            ^~~~~~~~~~~~~
CMakeFiles/app.dir/build.make:302: recipe for target 'CMakeFiles/app.dir/src/main.c.obj' failed
make[2]: *** [CMakeFiles/app.dir/src/main.c.obj] Error 1
CMakeFiles/Makefile2:259: recipe for target 'CMakeFiles/app.dir/all' failed
make[1]: *** [CMakeFiles/app.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

 

To overcome it I added ,    #define MAX_FILE_NAME 10   in zephyr/include/fs.h

 

After this I got following error,

 

../libapp.a(main.c.obj): In function `main':
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:226: undefined reference to `fs_open'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:227: undefined reference to `fs_write'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:228: undefined reference to `fs_read'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:229: undefined reference to `fs_close'
collect2: error: ld returned 1 exit status
zephyr/CMakeFiles/zephyr_prebuilt.dir/build.make:104: recipe for target 'zephyr/zephyr_prebuilt.elf' failed
make[2]: *** [zephyr/zephyr_prebuilt.elf] Error 1
CMakeFiles/Makefile2:569: recipe for target 'zephyr/CMakeFiles/zephyr_prebuilt.dir/all' failed
make[1]: *** [zephyr/CMakeFiles/zephyr_prebuilt.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

 

 

 

 

Following line are already present in zephyr/boards/arm/nrf52840_pca10056/nrf52840_pca10056.dts

 


#if defined(CONFIG_FILE_SYSTEM_NFFS)
        nffs_partition: partition@fc000 {
            label = "nffs";
            reg = <0x000fc000 0x00004000>;
        };
#endif

 

Could you please tell me what I'm missing ?

 

Thank You !!

 

On Fri, Jan 19, 2018 at 12:15 AM, Michael Hope <michaelh@...> wrote:

 

1. Ensure the board has a nffs partition defined in Device Tree.  See here for an example.

2. Turn on CONFIG_FILE_SYSTEM_NFFS in the config

3. Use the APIs in include/fs.h such as fs_open() etc

If you turn on CONFIG_FILE_SYSTEM_SHELL then you'll also get a simple interactive shell where you can list directories etc.

-- Michael

 

On Thu, 18 Jan 2018 at 15:16 Vikrant More <vikrant8051@...> wrote:

Thanks for reply.

 

Where I will find APIs & sample codes based on it to access internal flash of nrf52840 ?

 

 

On Jan 18, 2018 3:38 PM, "Puzdrowski, Andrzej" <Andrzej.Puzdrowski@nordicsemi.no> wrote:

NFFS Is supported since 1.10 release:

https://www.zephyrproject.org/releases/1-10-release-december-2017/

 

Andrzej

From: zephyr-devel-bounces@lists.zephyrproject.org [mailto:zephyr-devel-bounces@lists.zephyrproject.org] On Behalf Of Vikrant More
Sent: Thursday, January 18, 2018 10:09 AM
To: zephyr-devel@lists.zephyrproject.org; zephyr-users@lists.zephyrproject.org
Subject: [Zephyr-devel] support for NFFS file system

 

Hello World !!

 

My question is related to this link's requirement,
https://lists.zephyrproject.org/pipermail/zephyr-devel/2017-July/007888.html

Is Zephyr going to add support for NFFS file system in upcoming 1.11 (March 20148) release ?

What is current status of NFFS file system development ?

Could anybody explain me from Zephyr Core developer team ?

Thank You !! 


_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel

_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel

 

 



On Wed, Jan 24, 2018 at 5:41 PM, Chettimada, Vinayak Kariappa <vinayak.kariappa.chettimada@...> wrote:

Its:

 

fs_file_t my_zfp; // no * please;

 

and

 

fs_open(&my_zfp,"mesh.prv"); // & please J

 

That said, I am not expert on FS!

 

-Vinayak

 

From: zephyr-devel-bounces@lists.zephyrproject.org [mailto:zephyr-devel-bounces@lists.zephyrproject.org] On Behalf Of Vikrant More
Sent: Wednesday, January 24, 2018 1:06 PM
To: Michael Hope <michaelh@...>
Cc: zephyr-users@lists.zephyrproject.org; zephyr-devel@lists.zephyrproject.org
Subject: Re: [Zephyr-devel] FW: support for NFFS file system

 

I copied & pasted $zephyr/ext/fs/nffs directory into $zephyr_base/include
----------------------------------------------------------------------------------------------------------------------

& edit $zephyr_base/include/fs/nffs_fs.h as follow

/*
 * Copyright (c) 2017 Codecoup
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef _NFFS_FS_H_
#define _NFFS_FS_H_

#include <sys/types.h>
#include <nffs/include/nffs/nffs.h>

#ifdef __cplusplus
extern "C" {
#endif

FS_FILE_DEFINE(struct nffs_file *fp);
FS_DIR_DEFINE(struct nffs_dir *dp);

#define MAX_FILE_NAME 256

#ifdef __cplusplus
}
#endif

#endif /* _NFFS_FS_H_ */

-------------------------------------------------------------------------------------------------------------------------

& add following config into my prj.conf

CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_SOC_FLASH_NRF5=y
CONFIG_SOC_FLASH_NRF5_DEV_NAME="NRF52_FLASH"
CONFIG_SOC_FLASH_NRF5_RADIO_SYNC=y
CONFIG_ZTEST_STACKSIZE=2048
CONFIG_MAIN_STACK_SIZE=1024
CONFIG_HEAP_MEM_POOL_SIZE=1024


CONFIG_FILE_SYSTEM=y
CONFIG_FILE_SYSTEM_NFFS=y
CONFIG_FS_NFFS_NUM_FILES=4
CONFIG_FS_NFFS_NUM_DIRS=4
CONFIG_FS_NFFS_NUM_INODES=1024
CONFIG_FS_NFFS_NUM_BLOCKS=1024
CONFIG_FS_NFFS_NUM_CACHE_INODES=1
CONFIG_FS_NFFS_NUM_CACHE_BLOCKS=1
CONFIG_FILE_SYSTEM_NFFS=y
CONFIG_NFFS_FILESYSTEM_MAX_AREAS=12

------------------------------------------------------------------------------------------------------------------------

& add following lines in main.c

#include <fs.h>

void main( )
{
    fs_file_t *my_zfp;
    unsigned char ptr[32];


    fs_open(my_zfp,"mesh.prv");
    fs_write(my_zfp,"Hello World !! ",16);
    fs_read(my_zfp,ptr,32);
    fs_close(my_zfp);

    printk("%s",ptr);
}

After all this every thing gets compiled with warning :

 

warning: ‘my_zfp’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  fs_open(my_zfp,"mesh.prv");

Could you please help me, how to initialized my_zfp here ?

 

 

On Tue, Jan 23, 2018 at 1:15 AM, Michael Hope <michaelh@...> wrote:

Hi Vikrant.  You also need to enable NFFS in your configuration - try 'make menuconfig' > File Systems > File system support = y; Supported file systems -> NFFS.

You can also check out the NFFS test case under tests/subsys/fs and especially the configuration in https://github.com/zephyrproject-rtos/zephyr/blob/master/tests/subsys/fs/nffs_fs_api/nrf5x.conf

-- Michael

 

On Fri, 19 Jan 2018 at 11:46 Vikrant More <vikrant8051@...> wrote:

#include <fs.h>

void main( )
{
    fs_file_t *my_zfp;
    unsigned char ptr[32];


    fs_open(my_zfp,"mesh.prv");
    fs_write(my_zfp,"Hello World !! ",16);
    fs_read(my_zfp,ptr,32);
    fs_close(my_zfp);

    printk("%s",ptr);
}

I've edited main.c in my project as mentioned above.

And add CONFIG_FILE_SYSTEM_NFFS=y in prj.conf

 

1st time I got following error,

 

In file included from /home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:3:0:
/home/vikrant/projects/zephyr/zephyr/include/fs.h:66:12: error: ‘MAX_FILE_NAME’ undeclared here (not in a function)
  char name[MAX_FILE_NAME + 1];
            ^~~~~~~~~~~~~
CMakeFiles/app.dir/build.make:302: recipe for target 'CMakeFiles/app.dir/src/main.c.obj' failed
make[2]: *** [CMakeFiles/app.dir/src/main.c.obj] Error 1
CMakeFiles/Makefile2:259: recipe for target 'CMakeFiles/app.dir/all' failed
make[1]: *** [CMakeFiles/app.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

 

To overcome it I added ,    #define MAX_FILE_NAME 10   in zephyr/include/fs.h

 

After this I got following error,

 

../libapp.a(main.c.obj): In function `main':
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:226: undefined reference to `fs_open'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:227: undefined reference to `fs_write'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:228: undefined reference to `fs_read'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:229: undefined reference to `fs_close'
collect2: error: ld returned 1 exit status
zephyr/CMakeFiles/zephyr_prebuilt.dir/build.make:104: recipe for target 'zephyr/zephyr_prebuilt.elf' failed
make[2]: *** [zephyr/zephyr_prebuilt.elf] Error 1
CMakeFiles/Makefile2:569: recipe for target 'zephyr/CMakeFiles/zephyr_prebuilt.dir/all' failed
make[1]: *** [zephyr/CMakeFiles/zephyr_prebuilt.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

 

 

 

 

Following line are already present in zephyr/boards/arm/nrf52840_pca10056/nrf52840_pca10056.dts

 


#if defined(CONFIG_FILE_SYSTEM_NFFS)
        nffs_partition: partition@fc000 {
            label = "nffs";
            reg = <0x000fc000 0x00004000>;
        };
#endif

 

Could you please tell me what I'm missing ?

 

Thank You !!

 

On Fri, Jan 19, 2018 at 12:15 AM, Michael Hope <michaelh@...> wrote:

 

1. Ensure the board has a nffs partition defined in Device Tree.  See here for an example.

2. Turn on CONFIG_FILE_SYSTEM_NFFS in the config

3. Use the APIs in include/fs.h such as fs_open() etc

If you turn on CONFIG_FILE_SYSTEM_SHELL then you'll also get a simple interactive shell where you can list directories etc.

-- Michael

 

On Thu, 18 Jan 2018 at 15:16 Vikrant More <vikrant8051@...> wrote:

Thanks for reply.

 

Where I will find APIs & sample codes based on it to access internal flash of nrf52840 ?

 

 

On Jan 18, 2018 3:38 PM, "Puzdrowski, Andrzej" <Andrzej.Puzdrowski@nordicsemi.no> wrote:

NFFS Is supported since 1.10 release:

https://www.zephyrproject.org/releases/1-10-release-december-2017/

 

Andrzej

From: zephyr-devel-bounces@lists.zephyrproject.org [mailto:zephyr-devel-bounces@lists.zephyrproject.org] On Behalf Of Vikrant More
Sent: Thursday, January 18, 2018 10:09 AM
To: zephyr-devel@lists.zephyrproject.org; zephyr-users@lists.zephyrproject.org
Subject: [Zephyr-devel] support for NFFS file system

 

Hello World !!

 

My question is related to this link's requirement,
https://lists.zephyrproject.org/pipermail/zephyr-devel/2017-July/007888.html

Is Zephyr going to add support for NFFS file system in upcoming 1.11 (March 20148) release ?

What is current status of NFFS file system development ?

Could anybody explain me from Zephyr Core developer team ?

Thank You !! 


_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel

_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel

 

 



Re: FW: support for NFFS file system

Chettimada, Vinayak Kariappa
 

Its:

 

fs_file_t my_zfp; // no * please;

 

and

 

fs_open(&my_zfp,"mesh.prv"); // & please J

 

That said, I am not expert on FS!

 

-Vinayak

 

From: zephyr-devel-bounces@... [mailto:zephyr-devel-bounces@...] On Behalf Of Vikrant More
Sent: Wednesday, January 24, 2018 1:06 PM
To: Michael Hope <michaelh@...>
Cc: zephyr-users@...; zephyr-devel@...
Subject: Re: [Zephyr-devel] FW: support for NFFS file system

 

I copied & pasted $zephyr/ext/fs/nffs directory into $zephyr_base/include
----------------------------------------------------------------------------------------------------------------------

& edit $zephyr_base/include/fs/nffs_fs.h as follow

/*
 * Copyright (c) 2017 Codecoup
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef _NFFS_FS_H_
#define _NFFS_FS_H_

#include <sys/types.h>
#include <nffs/include/nffs/nffs.h>

#ifdef __cplusplus
extern "C" {
#endif

FS_FILE_DEFINE(struct nffs_file *fp);
FS_DIR_DEFINE(struct nffs_dir *dp);

#define MAX_FILE_NAME 256

#ifdef __cplusplus
}
#endif

#endif /* _NFFS_FS_H_ */

-------------------------------------------------------------------------------------------------------------------------

& add following config into my prj.conf

CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_SOC_FLASH_NRF5=y
CONFIG_SOC_FLASH_NRF5_DEV_NAME="NRF52_FLASH"
CONFIG_SOC_FLASH_NRF5_RADIO_SYNC=y
CONFIG_ZTEST_STACKSIZE=2048
CONFIG_MAIN_STACK_SIZE=1024
CONFIG_HEAP_MEM_POOL_SIZE=1024


CONFIG_FILE_SYSTEM=y
CONFIG_FILE_SYSTEM_NFFS=y
CONFIG_FS_NFFS_NUM_FILES=4
CONFIG_FS_NFFS_NUM_DIRS=4
CONFIG_FS_NFFS_NUM_INODES=1024
CONFIG_FS_NFFS_NUM_BLOCKS=1024
CONFIG_FS_NFFS_NUM_CACHE_INODES=1
CONFIG_FS_NFFS_NUM_CACHE_BLOCKS=1
CONFIG_FILE_SYSTEM_NFFS=y
CONFIG_NFFS_FILESYSTEM_MAX_AREAS=12

------------------------------------------------------------------------------------------------------------------------

& add following lines in main.c

#include <fs.h>

void main( )
{
    fs_file_t *my_zfp;
    unsigned char ptr[32];


    fs_open(my_zfp,"mesh.prv");
    fs_write(my_zfp,"Hello World !! ",16);
    fs_read(my_zfp,ptr,32);
    fs_close(my_zfp);

    printk("%s",ptr);
}

After all this every thing gets compiled with warning :

 

warning: ‘my_zfp’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  fs_open(my_zfp,"mesh.prv");

Could you please help me, how to initialized my_zfp here ?

 

 

On Tue, Jan 23, 2018 at 1:15 AM, Michael Hope <michaelh@...> wrote:

Hi Vikrant.  You also need to enable NFFS in your configuration - try 'make menuconfig' > File Systems > File system support = y; Supported file systems -> NFFS.

You can also check out the NFFS test case under tests/subsys/fs and especially the configuration in https://github.com/zephyrproject-rtos/zephyr/blob/master/tests/subsys/fs/nffs_fs_api/nrf5x.conf

-- Michael

 

On Fri, 19 Jan 2018 at 11:46 Vikrant More <vikrant8051@...> wrote:

#include <fs.h>

void main( )
{
    fs_file_t *my_zfp;
    unsigned char ptr[32];


    fs_open(my_zfp,"mesh.prv");
    fs_write(my_zfp,"Hello World !! ",16);
    fs_read(my_zfp,ptr,32);
    fs_close(my_zfp);

    printk("%s",ptr);
}

I've edited main.c in my project as mentioned above.

And add CONFIG_FILE_SYSTEM_NFFS=y in prj.conf

 

1st time I got following error,

 

In file included from /home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:3:0:
/home/vikrant/projects/zephyr/zephyr/include/fs.h:66:12: error: ‘MAX_FILE_NAME’ undeclared here (not in a function)
  char name[MAX_FILE_NAME + 1];
            ^~~~~~~~~~~~~
CMakeFiles/app.dir/build.make:302: recipe for target 'CMakeFiles/app.dir/src/main.c.obj' failed
make[2]: *** [CMakeFiles/app.dir/src/main.c.obj] Error 1
CMakeFiles/Makefile2:259: recipe for target 'CMakeFiles/app.dir/all' failed
make[1]: *** [CMakeFiles/app.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

 

To overcome it I added ,    #define MAX_FILE_NAME 10   in zephyr/include/fs.h

 

After this I got following error,

 

../libapp.a(main.c.obj): In function `main':
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:226: undefined reference to `fs_open'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:227: undefined reference to `fs_write'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:228: undefined reference to `fs_read'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:229: undefined reference to `fs_close'
collect2: error: ld returned 1 exit status
zephyr/CMakeFiles/zephyr_prebuilt.dir/build.make:104: recipe for target 'zephyr/zephyr_prebuilt.elf' failed
make[2]: *** [zephyr/zephyr_prebuilt.elf] Error 1
CMakeFiles/Makefile2:569: recipe for target 'zephyr/CMakeFiles/zephyr_prebuilt.dir/all' failed
make[1]: *** [zephyr/CMakeFiles/zephyr_prebuilt.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

 

 

 

 

Following line are already present in zephyr/boards/arm/nrf52840_pca10056/nrf52840_pca10056.dts

 


#if defined(CONFIG_FILE_SYSTEM_NFFS)
        nffs_partition: partition@fc000 {
            label = "nffs";
            reg = <0x000fc000 0x00004000>;
        };
#endif

 

Could you please tell me what I'm missing ?

 

Thank You !!

 

On Fri, Jan 19, 2018 at 12:15 AM, Michael Hope <michaelh@...> wrote:

 

1. Ensure the board has a nffs partition defined in Device Tree.  See here for an example.

2. Turn on CONFIG_FILE_SYSTEM_NFFS in the config

3. Use the APIs in include/fs.h such as fs_open() etc

If you turn on CONFIG_FILE_SYSTEM_SHELL then you'll also get a simple interactive shell where you can list directories etc.

-- Michael

 

On Thu, 18 Jan 2018 at 15:16 Vikrant More <vikrant8051@...> wrote:

Thanks for reply.

 

Where I will find APIs & sample codes based on it to access internal flash of nrf52840 ?

 

 

On Jan 18, 2018 3:38 PM, "Puzdrowski, Andrzej" <Andrzej.Puzdrowski@...> wrote:

NFFS Is supported since 1.10 release:

https://www.zephyrproject.org/releases/1-10-release-december-2017/

 

Andrzej

From: zephyr-devel-bounces@... [mailto:zephyr-devel-bounces@...] On Behalf Of Vikrant More
Sent: Thursday, January 18, 2018 10:09 AM
To: zephyr-devel@...; zephyr-users@...
Subject: [Zephyr-devel] support for NFFS file system

 

Hello World !!

 

My question is related to this link's requirement,
https://lists.zephyrproject.org/pipermail/zephyr-devel/2017-July/007888.html

Is Zephyr going to add support for NFFS file system in upcoming 1.11 (March 20148) release ?

What is current status of NFFS file system development ?

Could anybody explain me from Zephyr Core developer team ?

Thank You !! 


_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@...
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel

_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@...
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel

 

 


Re: FW: support for NFFS file system

Vikrant More <vikrant8051@...>
 

I copied & pasted $zephyr/ext/fs/nffs directory into $zephyr_base/include
----------------------------------------------------------------------------------------------------------------------
& edit $zephyr_base/include/fs/nffs_fs.h as follow

/*
 * Copyright (c) 2017 Codecoup
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef _NFFS_FS_H_
#define _NFFS_FS_H_

#include <sys/types.h>
#include <nffs/include/nffs/nffs.h>

#ifdef __cplusplus
extern "C" {
#endif

FS_FILE_DEFINE(struct nffs_file *fp);
FS_DIR_DEFINE(struct nffs_dir *dp);

#define MAX_FILE_NAME 256

#ifdef __cplusplus
}
#endif

#endif /* _NFFS_FS_H_ */

-------------------------------------------------------------------------------------------------------------------------
& add following config into my prj.conf

CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_SOC_FLASH_NRF5=y
CONFIG_SOC_FLASH_NRF5_DEV_NAME="NRF52_FLASH"
CONFIG_SOC_FLASH_NRF5_RADIO_SYNC=y
CONFIG_ZTEST_STACKSIZE=2048
CONFIG_MAIN_STACK_SIZE=1024
CONFIG_HEAP_MEM_POOL_SIZE=1024


CONFIG_FILE_SYSTEM=y
CONFIG_FILE_SYSTEM_NFFS=y
CONFIG_FS_NFFS_NUM_FILES=4
CONFIG_FS_NFFS_NUM_DIRS=4
CONFIG_FS_NFFS_NUM_INODES=1024
CONFIG_FS_NFFS_NUM_BLOCKS=1024
CONFIG_FS_NFFS_NUM_CACHE_INODES=1
CONFIG_FS_NFFS_NUM_CACHE_BLOCKS=1
CONFIG_FILE_SYSTEM_NFFS=y
CONFIG_NFFS_FILESYSTEM_MAX_AREAS=12

------------------------------------------------------------------------------------------------------------------------

& add following lines in main.c

#include <fs.h>

void main( )
{
    fs_file_t *my_zfp;
    unsigned char ptr[32];


    fs_open(my_zfp,"mesh.prv");
    fs_write(my_zfp,"Hello World !! ",16);
    fs_read(my_zfp,ptr,32);
    fs_close(my_zfp);

    printk("%s",ptr);
}


After all this every thing gets compiled with warning :

warning: ‘my_zfp’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  fs_open(my_zfp,"mesh.prv");


Could you please help me, how to initialized my_zfp here ?



On Tue, Jan 23, 2018 at 1:15 AM, Michael Hope <michaelh@...> wrote:
Hi Vikrant.  You also need to enable NFFS in your configuration - try 'make menuconfig' > File Systems > File system support = y; Supported file systems -> NFFS.

You can also check out the NFFS test case under tests/subsys/fs and especially the configuration in https://github.com/zephyrproject-rtos/zephyr/blob/master/tests/subsys/fs/nffs_fs_api/nrf5x.conf

-- Michael

On Fri, 19 Jan 2018 at 11:46 Vikrant More <vikrant8051@...> wrote:
#include <fs.h>

void main( )
{
    fs_file_t *my_zfp;
    unsigned char ptr[32];


    fs_open(my_zfp,"mesh.prv");
    fs_write(my_zfp,"Hello World !! ",16);
    fs_read(my_zfp,ptr,32);
    fs_close(my_zfp);

    printk("%s",ptr);
}

I've edited main.c in my project as mentioned above.

And add CONFIG_FILE_SYSTEM_NFFS=y in prj.conf

1st time I got following error,

In file included from /home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:3:0:
/home/vikrant/projects/zephyr/zephyr/include/fs.h:66:12: error: ‘MAX_FILE_NAME’ undeclared here (not in a function)
  char name[MAX_FILE_NAME + 1];
            ^~~~~~~~~~~~~
CMakeFiles/app.dir/build.make:302: recipe for target 'CMakeFiles/app.dir/src/main.c.obj' failed
make[2]: *** [CMakeFiles/app.dir/src/main.c.obj] Error 1
CMakeFiles/Makefile2:259: recipe for target 'CMakeFiles/app.dir/all' failed
make[1]: *** [CMakeFiles/app.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

To overcome it I added ,    #define MAX_FILE_NAME 10   in zephyr/include/fs.h

After this I got following error,

../libapp.a(main.c.obj): In function `main':
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:226: undefined reference to `fs_open'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:227: undefined reference to `fs_write'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:228: undefined reference to `fs_read'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:229: undefined reference to `fs_close'
collect2: error: ld returned 1 exit status
zephyr/CMakeFiles/zephyr_prebuilt.dir/build.make:104: recipe for target 'zephyr/zephyr_prebuilt.elf' failed
make[2]: *** [zephyr/zephyr_prebuilt.elf] Error 1
CMakeFiles/Makefile2:569: recipe for target 'zephyr/CMakeFiles/zephyr_prebuilt.dir/all' failed
make[1]: *** [zephyr/CMakeFiles/zephyr_prebuilt.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2




Following line are already present in zephyr/boards/arm/nrf52840_pca10056/nrf52840_pca10056.dts


#if defined(CONFIG_FILE_SYSTEM_NFFS)
        nffs_partition: partition@fc000 {
            label = "nffs";
            reg = <0x000fc000 0x00004000>;
        };
#endif

Could you please tell me what I'm missing ?

Thank You !!

On Fri, Jan 19, 2018 at 12:15 AM, Michael Hope <michaelh@...> wrote:

1. Ensure the board has a nffs partition defined in Device Tree.  See here for an example.
2. Turn on CONFIG_FILE_SYSTEM_NFFS in the config
3. Use the APIs in include/fs.h such as fs_open() etc

If you turn on CONFIG_FILE_SYSTEM_SHELL then you'll also get a simple interactive shell where you can list directories etc.

-- Michael


On Thu, 18 Jan 2018 at 15:16 Vikrant More <vikrant8051@...> wrote:
Thanks for reply.

Where I will find APIs & sample codes based on it to access internal flash of nrf52840 ?


On Jan 18, 2018 3:38 PM, "Puzdrowski, Andrzej" <Andrzej.Puzdrowski@nordicsemi.no> wrote:

NFFS Is supported since 1.10 release:

https://www.zephyrproject.org/releases/1-10-release-december-2017/

 

Andrzej

From: zephyr-devel-bounces@lists.zephyrproject.org [mailto:zephyr-devel-bounces@lists.zephyrproject.org] On Behalf Of Vikrant More
Sent: Thursday, January 18, 2018 10:09 AM
To: zephyr-devel@lists.zephyrproject.org; zephyr-users@lists.zephyrproject.org
Subject: [Zephyr-devel] support for NFFS file system

 

Hello World !!

 

My question is related to this link's requirement,
https://lists.zephyrproject.org/pipermail/zephyr-devel/2017-July/007888.html

Is Zephyr going to add support for NFFS file system in upcoming 1.11 (March 20148) release ?

What is current status of NFFS file system development ?

Could anybody explain me from Zephyr Core developer team ?

Thank You !! 


_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel

_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel



flash management specific features for NFFS

eric finco
 

Hi Everyone,

How the NFFS file system introduced in zephyr V1.10 release is managing flash specific requirement like bad block management and wear leveling ?
I did not find in the on-line zephyr documentation a description of the NFFS features and especially the flash specific ones; is it available somewhere;

Regards,

Riton


Re: nRF52 GPIO P2 access

Gavrikov Paul <Paul.Gavrikov@...>
 

Yikes, time for a new coffee … I needed P0 on the nRF52832 -- Thanks for your swift response!

 

Von: Chettimada, Vinayak Kariappa [mailto:vinayak.kariappa.chettimada@...]
Gesendet: Dienstag, 23. Januar 2018 14:39
An: Gavrikov Paul <Paul.Gavrikov@...>; zephyr-devel@...
Betreff: RE: nRF52 GPIO P2 access

 

Hi Paul,

 

There is no support for P1 yet in the gpio_nrf5.c implementation. Where do you get the idea of P2?   There is only P0.0 to P0.31  and P1.0 to P1.15 in nRF52840. And only P0 in nRF52832.

 

If you are using nRF52840, you can be inspired by the gpio_nrf5.c and add support for P1.

 

Regards,

Vinayak

 

From: zephyr-devel-bounces@... [mailto:zephyr-devel-bounces@...] On Behalf Of Gavrikov Paul
Sent: Tuesday, January 23, 2018 2:22 PM
To: zephyr-devel@...
Subject: [Zephyr-devel] nRF52 GPIO P2 access

 

Hi,

 

how do I get the binding for port P2 of the nRF52-DK?

 

Best,

Paul Gavrikov

 

eMail: Paul.Gavrikov@...

web:  www.newtec.de

 

NewTec GmbH

Heinrich-von-Stephan-Straße 8

D-79100 Freiburg

Geschäftsführer: Johannes Werbach, Harald Molle, Ulrich Schwer, Michael Tröscher Registergericht Memmingen - HRB 7236 USt.-IdNr. DE130850199

 


Re: nRF52 GPIO P2 access

Chettimada, Vinayak Kariappa
 

Hi Paul,

 

There is no support for P1 yet in the gpio_nrf5.c implementation. Where do you get the idea of P2?   There is only P0.0 to P0.31  and P1.0 to P1.15 in nRF52840. And only P0 in nRF52832.

 

If you are using nRF52840, you can be inspired by the gpio_nrf5.c and add support for P1.

 

Regards,

Vinayak

 

From: zephyr-devel-bounces@... [mailto:zephyr-devel-bounces@...] On Behalf Of Gavrikov Paul
Sent: Tuesday, January 23, 2018 2:22 PM
To: zephyr-devel@...
Subject: [Zephyr-devel] nRF52 GPIO P2 access

 

Hi,

 

how do I get the binding for port P2 of the nRF52-DK?

 

Best,

Paul Gavrikov

 

eMail: Paul.Gavrikov@...

web:  www.newtec.de

 

NewTec GmbH

Heinrich-von-Stephan-Straße 8

D-79100 Freiburg

Geschäftsführer: Johannes Werbach, Harald Molle, Ulrich Schwer, Michael Tröscher Registergericht Memmingen - HRB 7236 USt.-IdNr. DE130850199

 


nRF52 GPIO P2 access

Gavrikov Paul <Paul.Gavrikov@...>
 

Hi,

 

how do I get the binding for port P2 of the nRF52-DK?

 

Best,

Paul Gavrikov

 

eMail: Paul.Gavrikov@...

web:  www.newtec.de

 

NewTec GmbH

Heinrich-von-Stephan-Straße 8

D-79100 Freiburg

Geschäftsführer: Johannes Werbach, Harald Molle, Ulrich Schwer, Michael Tröscher Registergericht Memmingen - HRB 7236 USt.-IdNr. DE130850199

 


Re: FW: support for NFFS file system

Michael Hope
 

Hi Vikrant.  You also need to enable NFFS in your configuration - try 'make menuconfig' > File Systems > File system support = y; Supported file systems -> NFFS.

You can also check out the NFFS test case under tests/subsys/fs and especially the configuration in https://github.com/zephyrproject-rtos/zephyr/blob/master/tests/subsys/fs/nffs_fs_api/nrf5x.conf

-- Michael

On Fri, 19 Jan 2018 at 11:46 Vikrant More <vikrant8051@...> wrote:
#include <fs.h>

void main( )
{
    fs_file_t *my_zfp;
    unsigned char ptr[32];


    fs_open(my_zfp,"mesh.prv");
    fs_write(my_zfp,"Hello World !! ",16);
    fs_read(my_zfp,ptr,32);
    fs_close(my_zfp);

    printk("%s",ptr);
}

I've edited main.c in my project as mentioned above.

And add CONFIG_FILE_SYSTEM_NFFS=y in prj.conf

1st time I got following error,

In file included from /home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:3:0:
/home/vikrant/projects/zephyr/zephyr/include/fs.h:66:12: error: ‘MAX_FILE_NAME’ undeclared here (not in a function)
  char name[MAX_FILE_NAME + 1];
            ^~~~~~~~~~~~~
CMakeFiles/app.dir/build.make:302: recipe for target 'CMakeFiles/app.dir/src/main.c.obj' failed
make[2]: *** [CMakeFiles/app.dir/src/main.c.obj] Error 1
CMakeFiles/Makefile2:259: recipe for target 'CMakeFiles/app.dir/all' failed
make[1]: *** [CMakeFiles/app.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

To overcome it I added ,    #define MAX_FILE_NAME 10   in zephyr/include/fs.h

After this I got following error,

../libapp.a(main.c.obj): In function `main':
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:226: undefined reference to `fs_open'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:227: undefined reference to `fs_write'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:228: undefined reference to `fs_read'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:229: undefined reference to `fs_close'
collect2: error: ld returned 1 exit status
zephyr/CMakeFiles/zephyr_prebuilt.dir/build.make:104: recipe for target 'zephyr/zephyr_prebuilt.elf' failed
make[2]: *** [zephyr/zephyr_prebuilt.elf] Error 1
CMakeFiles/Makefile2:569: recipe for target 'zephyr/CMakeFiles/zephyr_prebuilt.dir/all' failed
make[1]: *** [zephyr/CMakeFiles/zephyr_prebuilt.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2




Following line are already present in zephyr/boards/arm/nrf52840_pca10056/nrf52840_pca10056.dts


#if defined(CONFIG_FILE_SYSTEM_NFFS)
        nffs_partition: partition@fc000 {
            label = "nffs";
            reg = <0x000fc000 0x00004000>;
        };
#endif

Could you please tell me what I'm missing ?

Thank You !!

On Fri, Jan 19, 2018 at 12:15 AM, Michael Hope <michaelh@...> wrote:

1. Ensure the board has a nffs partition defined in Device Tree.  See here for an example.
2. Turn on CONFIG_FILE_SYSTEM_NFFS in the config
3. Use the APIs in include/fs.h such as fs_open() etc

If you turn on CONFIG_FILE_SYSTEM_SHELL then you'll also get a simple interactive shell where you can list directories etc.

-- Michael


On Thu, 18 Jan 2018 at 15:16 Vikrant More <vikrant8051@...> wrote:
Thanks for reply.

Where I will find APIs & sample codes based on it to access internal flash of nrf52840 ?


On Jan 18, 2018 3:38 PM, "Puzdrowski, Andrzej" <Andrzej.Puzdrowski@...> wrote:

NFFS Is supported since 1.10 release:

https://www.zephyrproject.org/releases/1-10-release-december-2017/

 

Andrzej

From: zephyr-devel-bounces@... [mailto:zephyr-devel-bounces@...] On Behalf Of Vikrant More
Sent: Thursday, January 18, 2018 10:09 AM
To: zephyr-devel@...; zephyr-users@...
Subject: [Zephyr-devel] support for NFFS file system

 

Hello World !!

 

My question is related to this link's requirement,
https://lists.zephyrproject.org/pipermail/zephyr-devel/2017-July/007888.html

Is Zephyr going to add support for NFFS file system in upcoming 1.11 (March 20148) release ?

What is current status of NFFS file system development ?

Could anybody explain me from Zephyr Core developer team ?

Thank You !! 


_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@...
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel

_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@...
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel


I2C working example for nrf5

ashish.shukla@corvi.com <ashish.shukla@...>
 

Hi everyone,

I'm working with /zephyr/samples/drivers/i2c_fujitsu_fram

I configured it for nrf5. The example seems to read data from EEPROM, but it can't write anything.

I tried various APIs available in "i2c.h" , nothing seems to work. Can someone share a working example code for nrf5.   

--
Warm regards,
Ashish Shukla
Jr. Embedded Engineer
Research & Development


Please consider the environment before printing this e-mail or its attachments.

Disclaimer: The information contained herein (including any accompanying documents) is confidential and is intended solely for the addressee(s). If you have erroneously received this message, please immediately delete it and notify the sender. Also, if you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or taking any action in reliance on the contents of this message or any accompanying document is strictly prohibited and is unlawful. The organization is not responsible for any damage caused by a virus or alteration of the e-mail by a third party or otherwise. The contents of this message may not necessarily represent the views or policies of Corvi


Re: understanding of #BluetoothMesh OOB authentication procedure #bluetoothmesh

Johan Hedberg
 

Hi Vikrant,

On Sat, Jan 20, 2018, Vikrant More wrote:
But as per this link,
https://blog.bluetooth.com/provisioning-a-bluetooth-mesh-network-part-1 ,

In the exchange public keys phase, there are two possible ways for ECDH
public keys to be exchanged.
They can be exchanged over a Bluetooth link or through an OOB tunnel.
*In the provisioning invitation phase, the unprovisioned device has already
reported whether or not it supports sending its public key via an OOB
tunnel. *
If it does, the provisioner can proceed to use it and informs the
unprovisioned device by sending a Provisioning Start PDU.

could you please tell me, is this taken care by you ?
Where to edit, when I want to send ECDH public keys over OOB tunnel ?
Or is it also in development phase ?
I answered this already here:

https://lists.zephyrproject.org/pipermail/zephyr-devel/2018-January/008734.html

I'm sure we'll eventually have proper support for it, but if you want to
get it sooner feel free to send patches for it.

Johan


Re: understanding of #BluetoothMesh OOB authentication procedure #bluetoothmesh

Vikrant More <vikrant8051@...>
 

>> How provisioner will understand from where to received/read DEVICE
>> public key out of *Bluetooth-Link* or *OOB* channel ?

>I believe this is out of scope for the specification, since any OOB
>channel is by definition something else than Bluetooth. In practice this
>would then have to be a vendor-specific solution. There could e.g. be
>hints in the advertsing data, or behind the optional URL in the
>advertising data, as to what kind of OOB channel the unprovisioned node
>wants to use.

But as per this link, https://blog.bluetooth.com/provisioning-a-bluetooth-mesh-network-part-1 ,

In the exchange public keys phase, there are two possible ways for ECDH public keys to be exchanged.
They can be exchanged over a Bluetooth link or through an OOB tunnel.
In the provisioning invitation phase, the unprovisioned device has already reported whether or not it supports sending its public key via an OOB tunnel.
If it does, the provisioner can proceed to use it and informs the unprovisioned device by sending a Provisioning Start PDU.

could you please tell me, is this taken care by you ?
Where to edit, when I want to send ECDH public keys over OOB tunnel ?
Or is it also in development phase ?


Thank You !!

On Wed, Jan 17, 2018 at 2:15 PM, Johan Hedberg <johan.hedberg@...> wrote:
Hi Vikrant,

On Tue, Jan 16, 2018, Vikrant More wrote:
> When I comment-out following lines as below
>
> static const struct bt_mesh_prov prov =
> {
>     .uuid = dev_uuid,
>
>
> * //.output_size = 4,    //.output_actions = BT_MESH_BLINK | BT_MESH_BEEP |
> BT_MESH_VIBRATE | BT_MESH_DISPLAY_NUMBER | BT_MESH_DISPLAY_STRING,
> //.output_number = output_number,*
>     .complete = prov_complete,
>     .reset = prov_reset,
> };
>
> , flowchart (5.4.2) follows path as per attached FlowChart_1.pdf. Am I
> right ?

Yes.

> & when I uncomment following lines as below
>
> static const struct bt_mesh_prov prov =
> {
>     .uuid = dev_uuid,
>
>
> * .output_size = 4,    .output_actions = BT_MESH_BLINK | BT_MESH_BEEP |
> BT_MESH_VIBRATE | BT_MESH_DISPLAY_NUMBER | BT_MESH_DISPLAY_STRING,
> .output_number = output_number,*
>     .complete = prov_complete,
>     .reset = prov_reset,
> };
>
> , flowchart follows path as per attached FlowChart_2.pdf. Am I right ?

Yes.


> DEVICE's Public key can be static or dynamic plus it can exchange over
> Bluetooth-Link or OOB. Am I right ?

Yes.

> As per current implementation, we are using *dynamic Public Key*
> *& *both sides public keys are get exchanged over Bluetooth-Link instead of
> OOB. Am I right ?

Yes.

> But when I want to use static Public-Private keys for DEVICE (provisioner
> may have dynamic pair), how & where to edit so that provisioner will
> understand that DEVICE has static public key ?

The provisioner doesn't really need to know if the key is static or
public. It just needs to know which key to use for the provisioning.

What the implementation is missing right now is a way to use a static
private-public keypair instead of a dynamically generated one. We would
probably need to introduce new Kconfig option and extra code to the
current ECDH implementation (in subsys/bluetooth/host/hci_ecc.c) to read
a pre-existing public key from some persistent location instead of
generating a new key pair.

> How provisioner will understand from where to received/read DEVICE
> public key out of *Bluetooth-Link* or *OOB* channel ?

I believe this is out of scope for the specification, since any OOB
channel is by definition something else than Bluetooth. In practice this
would then have to be a vendor-specific solution. There could e.g. be
hints in the advertsing data, or behind the optional URL in the
advertising data, as to what kind of OOB channel the unprovisioned node
wants to use.

> If public keys get exchanged over insecure channel, then what is
> significance of OOB tunnel over Bluetooth-Link ?

You might want to read up on how Diffie-Hellman key exchange works:
https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

You essentially acheive confidentiality for the link with the peer
you've exchanged public keys with, but only through the OOB
authentication phase will you be able to authenticate that the peer
really is who you think it is.

Johan


Meaning of static OOB?

ashish.shukla@corvi.com <ashish.shukla@...>
 

Hi everyone,

During Authentication stage of provisioning, I understand meaning of Output OOB, Input OOB.
In case of NO OOB, value paired with Confirmation value is 0x00.
What happens in case of static OOB? 

What I interpret is : static value generated at device end is send to provisioner via an OOB tunnel which will be paired with Confirmation value calculated at provisioner end. Is that correct? 

--
Warm regards,
Ashish Shukla
Jr. Embedded Engineer
Research & Development


Please consider the environment before printing this e-mail or its attachments.

Disclaimer: The information contained herein (including any accompanying documents) is confidential and is intended solely for the addressee(s). If you have erroneously received this message, please immediately delete it and notify the sender. Also, if you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or taking any action in reliance on the contents of this message or any accompanying document is strictly prohibited and is unlawful. The organization is not responsible for any damage caused by a virus or alteration of the e-mail by a third party or otherwise. The contents of this message may not necessarily represent the views or policies of Corvi


Re: FW: support for NFFS file system

Vikrant More <vikrant8051@...>
 

#include <fs.h>

void main( )
{
    fs_file_t *my_zfp;
    unsigned char ptr[32];


    fs_open(my_zfp,"mesh.prv");
    fs_write(my_zfp,"Hello World !! ",16);
    fs_read(my_zfp,ptr,32);
    fs_close(my_zfp);

    printk("%s",ptr);
}

I've edited main.c in my project as mentioned above.

And add CONFIG_FILE_SYSTEM_NFFS=y in prj.conf

1st time I got following error,

In file included from /home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:3:0:
/home/vikrant/projects/zephyr/zephyr/include/fs.h:66:12: error: ‘MAX_FILE_NAME’ undeclared here (not in a function)
  char name[MAX_FILE_NAME + 1];
            ^~~~~~~~~~~~~
CMakeFiles/app.dir/build.make:302: recipe for target 'CMakeFiles/app.dir/src/main.c.obj' failed
make[2]: *** [CMakeFiles/app.dir/src/main.c.obj] Error 1
CMakeFiles/Makefile2:259: recipe for target 'CMakeFiles/app.dir/all' failed
make[1]: *** [CMakeFiles/app.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

To overcome it I added ,    #define MAX_FILE_NAME 10   in zephyr/include/fs.h

After this I got following error,

../libapp.a(main.c.obj): In function `main':
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:226: undefined reference to `fs_open'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:227: undefined reference to `fs_write'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:228: undefined reference to `fs_read'
/home/vikrant/projects/zephyr/zephyr/samples/bluetooth/mesh/src/main.c:229: undefined reference to `fs_close'
collect2: error: ld returned 1 exit status
zephyr/CMakeFiles/zephyr_prebuilt.dir/build.make:104: recipe for target 'zephyr/zephyr_prebuilt.elf' failed
make[2]: *** [zephyr/zephyr_prebuilt.elf] Error 1
CMakeFiles/Makefile2:569: recipe for target 'zephyr/CMakeFiles/zephyr_prebuilt.dir/all' failed
make[1]: *** [zephyr/CMakeFiles/zephyr_prebuilt.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2




Following line are already present in zephyr/boards/arm/nrf52840_pca10056/nrf52840_pca10056.dts


#if defined(CONFIG_FILE_SYSTEM_NFFS)
        nffs_partition: partition@fc000 {
            label = "nffs";
            reg = <0x000fc000 0x00004000>;
        };
#endif

Could you please tell me what I'm missing ?

Thank You !!

On Fri, Jan 19, 2018 at 12:15 AM, Michael Hope <michaelh@...> wrote:

1. Ensure the board has a nffs partition defined in Device Tree.  See here for an example.
2. Turn on CONFIG_FILE_SYSTEM_NFFS in the config
3. Use the APIs in include/fs.h such as fs_open() etc

If you turn on CONFIG_FILE_SYSTEM_SHELL then you'll also get a simple interactive shell where you can list directories etc.

-- Michael


On Thu, 18 Jan 2018 at 15:16 Vikrant More <vikrant8051@...> wrote:
Thanks for reply.

Where I will find APIs & sample codes based on it to access internal flash of nrf52840 ?


On Jan 18, 2018 3:38 PM, "Puzdrowski, Andrzej" <Andrzej.Puzdrowski@nordicsemi.no> wrote:

NFFS Is supported since 1.10 release:

https://www.zephyrproject.org/releases/1-10-release-december-2017/

 

Andrzej

From: zephyr-devel-bounces@lists.zephyrproject.org [mailto:zephyr-devel-bounces@lists.zephyrproject.org] On Behalf Of Vikrant More
Sent: Thursday, January 18, 2018 10:09 AM
To: zephyr-devel@lists.zephyrproject.org; zephyr-users@lists.zephyrproject.org
Subject: [Zephyr-devel] support for NFFS file system

 

Hello World !!

 

My question is related to this link's requirement,
https://lists.zephyrproject.org/pipermail/zephyr-devel/2017-July/007888.html

Is Zephyr going to add support for NFFS file system in upcoming 1.11 (March 20148) release ?

What is current status of NFFS file system development ?

Could anybody explain me from Zephyr Core developer team ?

Thank You !! 


_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel

_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel


Re: Working with flash on nrf52840

ashish.shukla@corvi.com <ashish.shukla@...>
 

It runs successfully. Thanks !


--
Warm regards,
Ashish Shukla
Jr. Embedded Engineer
Research & Development


Please consider the environment before printing this e-mail or its attachments.

Disclaimer: The information contained herein (including any accompanying documents) is confidential and is intended solely for the addressee(s). If you have erroneously received this message, please immediately delete it and notify the sender. Also, if you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or taking any action in reliance on the contents of this message or any accompanying document is strictly prohibited and is unlawful. The organization is not responsible for any damage caused by a virus or alteration of the e-mail by a third party or otherwise. The contents of this message may not necessarily represent the views or policies of Corvi


On Fri, Jan 19, 2018 at 12:39 PM, Puzdrowski, Andrzej <Andrzej.Puzdrowski@...> wrote:

Add configuration CONFIG_MPU_ALLOW_FLASH_WRITE=y to the project (or select via Kconfig).

This should help.

 

Andrzej

 

From: zephyr-devel-bounces@lists.zephyrproject.org [mailto:zephyr-devel-bounces@lists.zephyrproject.org] On Behalf Of ashish.shukla@...
Sent: Friday, January 19, 2018 7:09 AM
To: zephyr-devel@lists.zephyrproject.org; zephyr-users@lists.zephyrproject.org
Subject: [Zephyr-devel] Working with flash on nrf52840

 

Hello all !!

I'm working with /zephyr/samples/driver/soc_flash_nrf5. when I run this example, flash erase is successful,but it fails to write anything, resulting in error

 Data Access Violation

 Address : 0x40000

 

Changing the offset address, results in failure in flash erase itself. I guess it's something to do with offset address I'm working with. Can someone throw some light what's happening in case of nrf52840.

 

Has anyone succeeded in making it work? 


 

--

Warm regards,
Ashish Shukla

Jr. Embedded Engineer

Research & Development

 

Please consider the environment before printing this e-mail or its attachments.

 

Disclaimer: The information contained herein (including any accompanying documents) is confidential and is intended solely for the addressee(s). If you have erroneously received this message, please immediately delete it and notify the sender. Also, if you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or taking any action in reliance on the contents of this message or any accompanying document is strictly prohibited and is unlawful. The organization is not responsible for any damage caused by a virus or alteration of the e-mail by a third party or otherwise. The contents of this message may not necessarily represent the views or policies of Corvi

 



Re: Working with flash on nrf52840

Puzdrowski, Andrzej
 

Add configuration CONFIG_MPU_ALLOW_FLASH_WRITE=y to the project (or select via Kconfig).

This should help.

 

Andrzej

 

From: zephyr-devel-bounces@... [mailto:zephyr-devel-bounces@...] On Behalf Of ashish.shukla@...
Sent: Friday, January 19, 2018 7:09 AM
To: zephyr-devel@...; zephyr-users@...
Subject: [Zephyr-devel] Working with flash on nrf52840

 

Hello all !!

I'm working with /zephyr/samples/driver/soc_flash_nrf5. when I run this example, flash erase is successful,but it fails to write anything, resulting in error

 Data Access Violation

 Address : 0x40000

 

Changing the offset address, results in failure in flash erase itself. I guess it's something to do with offset address I'm working with. Can someone throw some light what's happening in case of nrf52840.

 

Has anyone succeeded in making it work? 


 

--

Warm regards,
Ashish Shukla

Jr. Embedded Engineer

Research & Development

 

Please consider the environment before printing this e-mail or its attachments.

 

Disclaimer: The information contained herein (including any accompanying documents) is confidential and is intended solely for the addressee(s). If you have erroneously received this message, please immediately delete it and notify the sender. Also, if you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or taking any action in reliance on the contents of this message or any accompanying document is strictly prohibited and is unlawful. The organization is not responsible for any damage caused by a virus or alteration of the e-mail by a third party or otherwise. The contents of this message may not necessarily represent the views or policies of Corvi

 


Working with flash on nrf52840

ashish.shukla@corvi.com <ashish.shukla@...>
 

Hello all !!

I'm working with /zephyr/samples/driver/soc_flash_nrf5. when I run this example, flash erase is successful,but it fails to write anything, resulting in error

 Data Access Violation
 Address : 0x40000

Changing the offset address, results in failure in flash erase itself. I guess it's something to do with offset address I'm working with. Can someone throw some light what's happening in case of nrf52840.

Has anyone succeeded in making it work? 


--
Warm regards,
Ashish Shukla
Jr. Embedded Engineer
Research & Development


Please consider the environment before printing this e-mail or its attachments.

Disclaimer: The information contained herein (including any accompanying documents) is confidential and is intended solely for the addressee(s). If you have erroneously received this message, please immediately delete it and notify the sender. Also, if you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or taking any action in reliance on the contents of this message or any accompanying document is strictly prohibited and is unlawful. The organization is not responsible for any damage caused by a virus or alteration of the e-mail by a third party or otherwise. The contents of this message may not necessarily represent the views or policies of Corvi


Re: FW: support for NFFS file system

Michael Hope
 


1. Ensure the board has a nffs partition defined in Device Tree.  See here for an example.
2. Turn on CONFIG_FILE_SYSTEM_NFFS in the config
3. Use the APIs in include/fs.h such as fs_open() etc

If you turn on CONFIG_FILE_SYSTEM_SHELL then you'll also get a simple interactive shell where you can list directories etc.

-- Michael


On Thu, 18 Jan 2018 at 15:16 Vikrant More <vikrant8051@...> wrote:
Thanks for reply.

Where I will find APIs & sample codes based on it to access internal flash of nrf52840 ?


On Jan 18, 2018 3:38 PM, "Puzdrowski, Andrzej" <Andrzej.Puzdrowski@...> wrote:

NFFS Is supported since 1.10 release:

https://www.zephyrproject.org/releases/1-10-release-december-2017/

 

Andrzej

From: zephyr-devel-bounces@... [mailto:zephyr-devel-bounces@...] On Behalf Of Vikrant More
Sent: Thursday, January 18, 2018 10:09 AM
To: zephyr-devel@...; zephyr-users@...
Subject: [Zephyr-devel] support for NFFS file system

 

Hello World !!

 

My question is related to this link's requirement,
https://lists.zephyrproject.org/pipermail/zephyr-devel/2017-July/007888.html

Is Zephyr going to add support for NFFS file system in upcoming 1.11 (March 20148) release ?

What is current status of NFFS file system development ?

Could anybody explain me from Zephyr Core developer team ?

Thank You !! 


_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@...
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel

_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@...
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel


Re: nRF52 k_busy_wait precision

Boie, Andrew P
 

I can't find any Zephyr API for HF clocks
There isn't one. I think Zephyr's timekeeping APIs are ripe for some iterative refinement if somebody motivated and clever wants to work on it.

Andrew

-----Original Message-----
From: zephyr-devel-bounces@lists.zephyrproject.org [mailto:zephyr-devel-bounces@lists.zephyrproject.org] On Behalf Of Bøe, Sebastian
Sent: Thursday, January 18, 2018 7:59 AM
To: Gavrikov Paul <Paul.Gavrikov@newtec.de>; zephyr-devel@lists.zephyrproject.org
Subject: Re: [Zephyr-devel] nRF52 k_busy_wait precision

I can't see any support for Kconfig-uring '_arch_k_cycle_get_32()' to use a high-power accurate HF-clock instead of a low-power inaccurate LF-clock.

So you would have to either add that support yourself or use an API that uses the HF-clock instead.

Interestingly, I can't find any Zephyr API for HF clocks, so you might have to directly interface with nrf-specific API's for the HF clock like NRF_TIMER or systick.

Someone please correct.
________________________________________
From: Gavrikov Paul <Paul.Gavrikov@newtec.de>
Sent: Thursday, 18 January 2018 4:35:32 PM
To: Bøe, Sebastian; zephyr-devel@lists.zephyrproject.org
Subject: AW: nRF52 k_busy_wait precision

Hi,

would it be possible to let the nRF use the 16MHz HF Clock? Energy consumption doesn't matter for my usecase.

Best,
Paul Gavrikov

eMail: Paul.Gavrikov@newtec.de
web: www.newtec.de

NewTec GmbH
Heinrich-von-Stephan-Straße 8
D-79100 Freiburg
Geschäftsführer: Johannes Werbach, Harald Molle, Ulrich Schwer, Michael Tröscher Registergericht Memmingen - HRB 7236 USt.-IdNr. DE130850199



-----Ursprüngliche Nachricht-----
Von: Bøe, Sebastian [mailto:Sebastian.Boe@nordicsemi.no]
Gesendet: Donnerstag, 18. Januar 2018 16:30
An: Gavrikov Paul <Paul.Gavrikov@newtec.de>; zephyr-devel@lists.zephyrproject.org
Betreff: Re: nRF52 k_busy_wait precision

Hi, some quick grepping shows that

k_busy_wait() relies on an architecture defining _arch_k_cycle_get_32().

On nRF _arch_k_cycle_get_32 relies on the RTC peripheral, which runs on a 32kHz.

A 32khz clock will give you a period of 32us, as your measurements are accurate within 32us your measurements make sense.

If you want more accuracy than 32khz you'll have to have a high-frequency clock running which is probably going to consume more power than you want.

________________________________________
From: zephyr-devel-bounces@lists.zephyrproject.org <zephyr-devel-bounces@lists.zephyrproject.org> on behalf of Gavrikov Paul <Paul.Gavrikov@newtec.de>
Sent: Thursday, 18 January 2018 4:10:13 PM
To: zephyr-devel@lists.zephyrproject.org
Subject: [Zephyr-devel] nRF52 k_busy_wait precision

Hi,
I wanted to test the precision of k_busy_wait by toggling a GPIO pin and checking the output by an osciloscope. I am using a Nordic nRF52-DK2.

Here are my results:
TIME=1 measured=6.2us
TIME=10 measured=6.5us
TIME=50 measured=32us
TIME=200 measured=182us

What is causing this drift? Is it possible to increase the precision?

void main(void)
{
struct device *dev;
dev = device_get_binding(CONFIG_GPIO_NRF5_P0_DEV_NAME);
gpio_pin_configure(dev, 13, GPIO_DIR_OUT);
int cnt = 0;
while(true) {
gpio_pin_write(dev, 13, cnt % 2);
cnt++;
k_busy_wait(TIME);
}
}

Best regards,
Paul Gavrikov

eMail: Paul.Gavrikov@newtec.de<mailto:Paul.Gavrikov@newtec.de>
web: www.newtec.de<http://www.newtec.de>

NewTec GmbH
Heinrich-von-Stephan-Straße 8
D-79100 Freiburg
Geschäftsführer: Johannes Werbach, Harald Molle, Ulrich Schwer, Michael Tröscher Registergericht Memmingen - HRB 7236 USt.-IdNr. DE130850199

_______________________________________________
Zephyr-devel mailing list
Zephyr-devel@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-devel


Re: nRF52 k_busy_wait precision

Gavrikov Paul <Paul.Gavrikov@...>
 

I've implemented it using the TIMER now, works like a charm. Thanks!

-----Ursprüngliche Nachricht-----
Von: Bøe, Sebastian [mailto:Sebastian.Boe@nordicsemi.no]
Gesendet: Donnerstag, 18. Januar 2018 16:59
An: Gavrikov Paul <Paul.Gavrikov@newtec.de>; zephyr-devel@lists.zephyrproject.org
Betreff: Re: nRF52 k_busy_wait precision

I can't see any support for Kconfig-uring '_arch_k_cycle_get_32()' to use a high-power accurate HF-clock instead of a low-power inaccurate LF-clock.

So you would have to either add that support yourself or use an API that uses the HF-clock instead.

Interestingly, I can't find any Zephyr API for HF clocks, so you might have to directly interface with nrf-specific API's for the HF clock like NRF_TIMER or systick.

Someone please correct.
________________________________________
From: Gavrikov Paul <Paul.Gavrikov@newtec.de>
Sent: Thursday, 18 January 2018 4:35:32 PM
To: Bøe, Sebastian; zephyr-devel@lists.zephyrproject.org
Subject: AW: nRF52 k_busy_wait precision

Hi,

would it be possible to let the nRF use the 16MHz HF Clock? Energy consumption doesn't matter for my usecase.

Best,
Paul Gavrikov

eMail: Paul.Gavrikov@newtec.de
web: www.newtec.de

NewTec GmbH
Heinrich-von-Stephan-Straße 8
D-79100 Freiburg
Geschäftsführer: Johannes Werbach, Harald Molle, Ulrich Schwer, Michael Tröscher Registergericht Memmingen - HRB 7236 USt.-IdNr. DE130850199



-----Ursprüngliche Nachricht-----
Von: Bøe, Sebastian [mailto:Sebastian.Boe@nordicsemi.no]
Gesendet: Donnerstag, 18. Januar 2018 16:30
An: Gavrikov Paul <Paul.Gavrikov@newtec.de>; zephyr-devel@lists.zephyrproject.org
Betreff: Re: nRF52 k_busy_wait precision

Hi, some quick grepping shows that

k_busy_wait() relies on an architecture defining _arch_k_cycle_get_32().

On nRF _arch_k_cycle_get_32 relies on the RTC peripheral, which runs on a 32kHz.

A 32khz clock will give you a period of 32us, as your measurements are accurate within 32us your measurements make sense.

If you want more accuracy than 32khz you'll have to have a high-frequency clock running which is probably going to consume more power than you want.

________________________________________
From: zephyr-devel-bounces@lists.zephyrproject.org <zephyr-devel-bounces@lists.zephyrproject.org> on behalf of Gavrikov Paul <Paul.Gavrikov@newtec.de>
Sent: Thursday, 18 January 2018 4:10:13 PM
To: zephyr-devel@lists.zephyrproject.org
Subject: [Zephyr-devel] nRF52 k_busy_wait precision

Hi,
I wanted to test the precision of k_busy_wait by toggling a GPIO pin and checking the output by an osciloscope. I am using a Nordic nRF52-DK2.

Here are my results:
TIME=1 measured=6.2us
TIME=10 measured=6.5us
TIME=50 measured=32us
TIME=200 measured=182us

What is causing this drift? Is it possible to increase the precision?

void main(void)
{
struct device *dev;
dev = device_get_binding(CONFIG_GPIO_NRF5_P0_DEV_NAME);
gpio_pin_configure(dev, 13, GPIO_DIR_OUT);
int cnt = 0;
while(true) {
gpio_pin_write(dev, 13, cnt % 2);
cnt++;
k_busy_wait(TIME);
}
}

Best regards,
Paul Gavrikov

eMail: Paul.Gavrikov@newtec.de<mailto:Paul.Gavrikov@newtec.de>
web: www.newtec.de<http://www.newtec.de>

NewTec GmbH
Heinrich-von-Stephan-Straße 8
D-79100 Freiburg
Geschäftsführer: Johannes Werbach, Harald Molle, Ulrich Schwer, Michael Tröscher Registergericht Memmingen - HRB 7236 USt.-IdNr. DE130850199


Re: nRF52 k_busy_wait precision

Sebastian Boe
 

I can't see any support for Kconfig-uring '_arch_k_cycle_get_32()' to use a
high-power accurate HF-clock instead of a low-power inaccurate LF-clock.

So you would have to either add that support yourself or use an API that uses
the HF-clock instead.

Interestingly, I can't find any Zephyr API for HF clocks, so you might have to directly
interface with nrf-specific API's for the HF clock like NRF_TIMER or systick.

Someone please correct.
________________________________________
From: Gavrikov Paul <Paul.Gavrikov@newtec.de>
Sent: Thursday, 18 January 2018 4:35:32 PM
To: Bøe, Sebastian; zephyr-devel@lists.zephyrproject.org
Subject: AW: nRF52 k_busy_wait precision

Hi,

would it be possible to let the nRF use the 16MHz HF Clock? Energy consumption doesn't matter for my usecase.

Best,
Paul Gavrikov

eMail: Paul.Gavrikov@newtec.de
web: www.newtec.de

NewTec GmbH
Heinrich-von-Stephan-Straße 8
D-79100 Freiburg
Geschäftsführer: Johannes Werbach, Harald Molle, Ulrich Schwer, Michael Tröscher Registergericht Memmingen - HRB 7236 USt.-IdNr. DE130850199



-----Ursprüngliche Nachricht-----
Von: Bøe, Sebastian [mailto:Sebastian.Boe@nordicsemi.no]
Gesendet: Donnerstag, 18. Januar 2018 16:30
An: Gavrikov Paul <Paul.Gavrikov@newtec.de>; zephyr-devel@lists.zephyrproject.org
Betreff: Re: nRF52 k_busy_wait precision

Hi, some quick grepping shows that

k_busy_wait() relies on an architecture defining _arch_k_cycle_get_32().

On nRF _arch_k_cycle_get_32 relies on the RTC peripheral, which runs on a 32kHz.

A 32khz clock will give you a period of 32us, as your measurements are accurate within 32us your measurements make sense.

If you want more accuracy than 32khz you'll have to have a high-frequency clock running which is probably going to consume more power than you want.

________________________________________
From: zephyr-devel-bounces@lists.zephyrproject.org <zephyr-devel-bounces@lists.zephyrproject.org> on behalf of Gavrikov Paul <Paul.Gavrikov@newtec.de>
Sent: Thursday, 18 January 2018 4:10:13 PM
To: zephyr-devel@lists.zephyrproject.org
Subject: [Zephyr-devel] nRF52 k_busy_wait precision

Hi,
I wanted to test the precision of k_busy_wait by toggling a GPIO pin and checking the output by an osciloscope. I am using a Nordic nRF52-DK2.

Here are my results:
TIME=1 measured=6.2us
TIME=10 measured=6.5us
TIME=50 measured=32us
TIME=200 measured=182us

What is causing this drift? Is it possible to increase the precision?

void main(void)
{
struct device *dev;
dev = device_get_binding(CONFIG_GPIO_NRF5_P0_DEV_NAME);
gpio_pin_configure(dev, 13, GPIO_DIR_OUT);
int cnt = 0;
while(true) {
gpio_pin_write(dev, 13, cnt % 2);
cnt++;
k_busy_wait(TIME);
}
}

Best regards,
Paul Gavrikov

eMail: Paul.Gavrikov@newtec.de<mailto:Paul.Gavrikov@newtec.de>
web: www.newtec.de<http://www.newtec.de>

NewTec GmbH
Heinrich-von-Stephan-Straße 8
D-79100 Freiburg
Geschäftsführer: Johannes Werbach, Harald Molle, Ulrich Schwer, Michael Tröscher Registergericht Memmingen - HRB 7236 USt.-IdNr. DE130850199

4021 - 4040 of 8033