上图是nordic官方例程app_ble_blinky中main.c里蓝牙栈初始化函数 在该函数中的nrf_sdh_ble_default_cfg_set(APP_BLE_CONN_CFG_TAG, &ram_start)函数中,我想了解ram_start这个数值是如何获得的,在头文件中查询了相关说明 在不断转向定义后,我发现这一参数从app_ram_start获得 最终打印出ram_start的值是20002300,应该等于app_ram_start这个值。 通过查看memory_usage可以看到,与.data的起始地址相同 但还是不知道app_ram_start为什么等于20002300,这个值是从哪里来的
qiaoxingshu 之所以不是从0x20000000开始,是因为协议栈是需要占用一定的RAM, 而为什么是从0x200002300开始这个取决于你用的是哪个版本的协议栈,这个在协议栈的Relase Notes里面有提及到,但是基本上都差不多,具体的话可以使用默认的,如果配置不合理,会报错并告诉用户具体要设置多少.
懂了,谢谢老哥