Discuz! Board

标题: nrf52832添加服务重启 [打印本页]

作者: 十里灯火    时间: 2018-5-11 10:17
标题: nrf52832添加服务重启
芯片nrf52832 , 开发环境keil , sdk版本 :15.0

请教大神:
我在ble_app_buttonless_dfu例程基础上添加 ble_app_uart 例程,代码加上去之后运行会重启,单步调试发现执行到这里重启:
/**@snippet [Adding proprietary Service to the SoftDevice] */
    // Add a custom base UUID.
    err_code = sd_ble_uuid_vs_add(&nus_base_uuid, &p_nus->uuid_type);  // 执行到这里 err_code返回 0004
    VERIFY_SUCCESS(err_code);     /////   重启了。   
请问啥原因呀各位?


作者: admin    时间: 2018-5-11 10:23
如果有两个定义的128bit UUID,这个位置需要添加为2
[attach]1715[/attach]

作者: 十里灯火    时间: 2018-5-11 10:39
admin 发表于 2018-5-11 10:23
如果有两个定义的128bit UUID,这个位置需要添加为2

谢谢, 我修改了 #define NRF_SDH_BLE_VS_UUID_COUNT 2   后。  系统还是重启了,但是重启的位置变了,单步调试如下:

    // Enable BLE stack.
    err_code = nrf_sdh_ble_enable(&ram_start);     ///  err_code 为 00004
    APP_ERROR_CHECK(err_code);    ////重启

[attach]1716[/attach]

这是啥情况呀:
我的设置:
[attach]1717[/attach]



作者: admin    时间: 2018-5-11 10:43
十里灯火 发表于 2018-5-11 10:39
谢谢, 我修改了 #define NRF_SDH_BLE_VS_UUID_COUNT 2   后。  系统还是重启了,但是重启的位置变了,单 ...

RAM的空间也要修改,一个服务大概是0x10大小,你ram 设置里增大这么多就可以
作者: 十里灯火    时间: 2018-5-11 10:56
admin 发表于 2018-5-11 10:43
RAM的空间也要修改

请教修改ram空间有没有什么规则呀?  

我现在修改如下,但是不行,还是在刚才 err_code = nrf_sdh_ble_enable(&ram_start); 那里出错:

我修改了两个地方
1:  我把NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE  从1408 修改为1664   
// <o> NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE - Attribute Table size in bytes. The size must be a multiple of 4.
#ifndef NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE
#define NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE    1664 //1408
#endif

2. 我修改ram1 如下:
[attach]1718[/attach]
修改的方法是,   因为我把NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 增加了256。 所以我把IRAM1 的start 地址加上了256。  从0x20002228 变为 0x20002328。    我把IRAM1 的size 减少了 256 , 从 0xDDD8  变为 0xDCD8。   这样改对吗?     我想应该是不对的,要不然为啥重启呢。。。。。     我这个修改iram参数的方法是错的吗?

作者: admin    时间: 2018-5-11 11:10
十里灯火 发表于 2018-5-11 10:56
请教修改ram空间有没有什么规则呀?  

我现在修改如下,但是不行,还是在刚才 err_code = nrf_sdh_ble ...

一个服务大概是0x10大小,你ram 设置里增大这么多就可以,  RAM 的0xddd8 -0x10
作者: 十里灯火    时间: 2018-5-11 11:22
admin 发表于 2018-5-11 11:10
一个服务大概是0x10大小,你ram 设置里增大这么多就可以,  RAM 的0xddd8 -0x10

谢谢,跑成了。  
作者: 十里灯火    时间: 2018-5-11 11:30
admin 发表于 2018-5-11 11:10
一个服务大概是0x10大小,你ram 设置里增大这么多就可以,  RAM 的0xddd8 -0x10

犯了一个小失误,我是口头计算了一下 IRAM1 start ,就改上去了。  正确的  IRAM1 start 应该是 0x20002330 。  修改了,就跑通了。  



作者: 15662170758    时间: 2018-6-28 17:57
楼主 你是怎么添加服务的?我自己添加了一个,编译也不报错,我下载到板子里,一点反应都没有,也不广播了?
作者: 15662170758    时间: 2018-6-29 09:57
十里灯火 发表于 2018-5-11 11:30
犯了一个小失误,我是口头计算了一下 IRAM1 start ,就改上去了。  正确的  IRAM1 start 应该是 0x200023 ...

怎么算的 是 0x20002330
作者: Rosa    时间: 2018-12-14 11:08
15662170758 发表于 2018-6-29 09:57
怎么算的 是 0x20002330

同问,0x20002330怎么算的?
作者: admin    时间: 2018-12-14 11:54
Rosa 发表于 2018-12-14 11:08
同问,0x20002330怎么算的?

楼主不是说了么,把IRAM1 的size 减少了 256
作者: laoye66    时间: 2020-9-13 22:55
请问我的工程按照上面的方法修改后依然会重启,RAM修改多次依然会重启,提示错误代码是4()

作者: admin    时间: 2020-9-15 08:50
laoye66 发表于 2020-9-13 22:55
请问我的工程按照上面的方法修改后依然会重启,RAM修改多次依然会重启,提示错误代码是4()

错误4是不是提示RAM区不够
作者: laoye66    时间: 2020-9-17 08:59
admin 发表于 2020-9-15 08:50
错误4是不是提示RAM区不够

修改了RAM区依然重启

作者: xiaoxue1010    时间: 2020-10-28 13:34
楼主 你是怎么添加服务的?江苏快3我自己添加了一个,编译也不报错,体彩七星彩我下载到板子里,幸运飞艇一点反应都没有,也不广播了。








欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3