十里灯火 发表于 2018-5-11 10:17:07

nrf52832添加服务重启

芯片nrf52832 , 开发环境keil , sdk版本 :15.0

请教大神:
我在ble_app_buttonless_dfu例程基础上添加 ble_app_uart 例程,代码加上去之后运行会重启,单步调试发现执行到这里重启:
/**@snippet */
    // 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:51

如果有两个定义的128bit UUID,这个位置需要添加为2

十里灯火 发表于 2018-5-11 10:39:07

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);    ////重启



这是啥情况呀:
我的设置:



admin 发表于 2018-5-11 10:43:56

十里灯火 发表于 2018-5-11 10:39
谢谢, 我修改了 #define NRF_SDH_BLE_VS_UUID_COUNT 2   后。系统还是重启了,但是重启的位置变了,单 ...
RAM的空间也要修改,一个服务大概是0x10大小,你ram 设置里增大这么多就可以

十里灯火 发表于 2018-5-11 10:56:04

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

修改的方法是,   因为我把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:57

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

我现在修改如下,但是不行,还是在刚才 err_code = nrf_sdh_ble ...
一个服务大概是0x10大小,你ram 设置里增大这么多就可以,RAM 的0xddd8 -0x10

十里灯火 发表于 2018-5-11 11:22:58

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

谢谢,跑成了。

十里灯火 发表于 2018-5-11 11:30:21

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

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


15662170758 发表于 2018-6-28 17:57:49

楼主 你是怎么添加服务的?我自己添加了一个,编译也不报错,我下载到板子里,一点反应都没有,也不广播了?

15662170758 发表于 2018-6-29 09:57:50

十里灯火 发表于 2018-5-11 11:30
犯了一个小失误,我是口头计算了一下 IRAM1 start ,就改上去了。正确的IRAM1 start 应该是 0x200023 ...

怎么算的 是 0x20002330

Rosa 发表于 2018-12-14 11:08:15

15662170758 发表于 2018-6-29 09:57
怎么算的 是 0x20002330

同问,0x20002330怎么算的?

admin 发表于 2018-12-14 11:54:00

Rosa 发表于 2018-12-14 11:08
同问,0x20002330怎么算的?

楼主不是说了么,把IRAM1 的size 减少了 256

laoye66 发表于 2020-9-13 22:55:53

请问我的工程按照上面的方法修改后依然会重启,RAM修改多次依然会重启,提示错误代码是4()

admin 发表于 2020-9-15 08:50:51

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

错误4是不是提示RAM区不够

laoye66 发表于 2020-9-17 08:59:01

admin 发表于 2020-9-15 08:50
错误4是不是提示RAM区不够

修改了RAM区依然重启

xiaoxue1010 发表于 2020-10-28 13:34:44

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



页: [1]
查看完整版本: nrf52832添加服务重启