TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640R2F osal_snv_write 和 osal_snv_read 函数跑出错

Hi TI JRs:

     请教一个 CC2640R2F  上关于 osal_snv_write 和 osal_snv_read 的问题。

     我现在想做一件事情,希望开机时能够修改 advertData 里的 Major 和 Minor 值,这也是 TI JR 告诉我的思路。

     我的思路是这样:通过 UART 写入 4 Byte 数值,然后调用 osal_snv_write 函数把值保存到 BLE_NVID_CUST_START 的区域里,然后再开机时用 osal_snv_read 函数读出 BLE_NVID_CUST_START 里的值,并写入到 advertData 里的 Major 和 Minor。

    我现在在 simple_broadcast project 里已经可以通过串口工具写值了,程序也收到值了,但是在调用 osal_snv_write 函数是发生 crash。

    所以请问下,osal_snv_write 和 osal_snv_read 函数使用有什么注意的吗?

谢谢

user6198971:

UART_read(uart, &data[0], 8);
Write_data[0] = data[0] * 10 + data[1];Write_data[1] = data[2] * 10 + data[3];Write_data[2] = data[4] * 10 + data[5];Write_data[3] = data[6] * 10 + data[7];
osal_snv_write(BLE_NVID_CUST_START, sizeof(Write_data), &Write_data[0]);
osal_snv_read(BLE_NVID_CUST_START, sizeof(Read_data), &Read_data[0]);
if ((Read_data[0] == Write_data[0]) && (Read_data[1] == Write_data[1]) && (Read_data[2] == Write_data[2]) && (Read_data[3] == Write_data[3]))gpio_set_value(1);

YiKai Chen:

回复 user6198971:

調試看看是不是sizeof(Write_data)出問題

Viki Shi:

回复 user6198971:

建议用TI-RTOS Object Viewer查一下crash原因:
dev.ti.com/…/debugging-index.html

user6198971:

回复 Viki Shi:

Hi ViKi:

    谢谢。

    再请教下,请看下面的图片,我开始设了断点在 133 行,我按哪个按钮就能直接运行到 133 行呢?我怎么试都不能直接跑到这里。

谢谢

YiKai Chen:

回复 user6198971:

你應用程序的調用邏輯是?

user6198971:

回复 YiKai Chen:

Hi ViKi:

   我用的是 simple_broadcast 列程,我的修改是:

1. 在 main() 的最后,BIOS_start() 前通过 pthread_create 创建一个线程:mainThread,请看下面第一张图;

2. 在 mainThread 函数里,分两部分,前半部分先 UART_init、再 UART_open,请看下面第二张图;

3. 后半部分,通过 UART_read 接收几个字符,再把这几个字符通过 osal_snv_write 写到 BLE_NVID_CUST_START 位置,请看第三张图;

问题就是出在 图三的 140 行里,osal_snv_write(BLE_NVID_CUST_START, sizeof(Write_data), &Write_data[0]);。

Viki Shi:

回复 user6198971:

可能前面就跑飞了,不知道具体位置的话,就一段段设置断点去测试

user6198971:

回复 user6198971:

Hi ViKi:

    我刚刚试了下,即使不通过 UART_read,直接调用 osal_snv_write 写几个数值到 BLE_NVID_CUST_START,在跑 140  行的 osal_snv_write 也会出现 crash。

谢谢

   

user6198971:

回复 user6198971:

Hi ViKi:

    我刚刚试了下,即使不通过 UART_read,直接调用 osal_snv_write 写几个数值到 BLE_NVID_CUST_START,在跑 140  行的 osal_snv_write 也会出现 crash。

谢谢

user6198971:

回复 Viki Shi:

Hi ViKi:
不是前面跑飞的,就是在 140 行里出错的。
请帮忙看下 2020-8-28 2:23 我的问题。

谢谢

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F osal_snv_write 和 osal_snv_read 函数跑出错
分享到: 更多 (0)