: ble_peripheral ==> keyboard 프로젝트에 Central 기능을 추가중 아래와 같은 에러 발생시 디버깅 해봤습니다.
>> Debug Terminal <<
nrf_sdh_ble: Insufficient RAM allocated for the SoftDevice.
nrf_sdh_ble: Change the RAM start location from 0x20002250 to 0x200028C8.
nrf_sdh_ble: Maximum RAM size for application is 0xD738.
nrf_sdh_ble: sd_ble_enable() returned NRF_ERROR_NO_MEM.
app: Fatal error
1> 로그를 보니 RAM_START 위치를 0x200028C8 로 수정 하라고 적혀 있네요.
RAM_START 는 .emProject 파일의 linker_section_placement_macros 에 적혀 있네요.
아래처럼 직접 .emProjet 를 수정하면 끝
linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;
RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x26000;
FLASH_SIZE=0x5a000;RAM_START=0x200028C8;RAM_SIZE=0xddb0"
>> .emProject 직접 수정하지 않고 IDE 사용해 수정할려면 2번 항목 참조
2> IDE 통해서 수정하기
2-1> 프로젝트 에서 오른쪽 마우스 --> Options... 선택
2-2> 아래그림처럼 선택하기
: Common --> Linker --> Section Placement Macros --> "..."
2-3> RAM_START 값 0x200028C8 로 변경하기
이후 정상적으로 실행이 되네요.
< 기타 >
A> ble_app_hids_keyboard 프로젝트에 Nordic UART Service (NUS) 를 추가시 동일한 에러 발생
▶ ble_nus_init() 함수에서 발생을 합니다.
sdk_config.h 파일 수정 및 로그 는 아래 내용 참고하세요.
~~ 중략 ~~
#define BLE_NUS_ENABLED 1
<error> app: ERROR 4 [NRF_ERROR_NO_MEM] at D:\Project\SES\nRF5SDK_1702\nRF5_SDK\examples\ble_peripheral\ble_app_hids_keyboard\main.c:796
PC at: 0x000326AB
<error> app: End of error report
▶ sdk_config.h 파일에 한군데 더 수정
~~ 중략 ~~
#define NRF_SDH_BLE_VS_UUID_COUNT 1
▶ NRF 로그에 warning 이 추가되서 나오네요.
<warning> nrf_sdh_ble: Insufficient RAM allocated for the SoftDevice.
<warning> nrf_sdh_ble: Change the RAM start location from 0x20002250 to 0x20002260.
<warning> nrf_sdh_ble: Maximum RAM size for application is 0xDDA0.
<error> nrf_sdh_ble: sd_ble_enable() returned NRF_ERROR_NO_MEM.
<error> app: ERROR 4 [NRF_ERROR_NO_MEM] at D:\Project\SES\nRF5SDK_1702\nRF5_SDK\examples\ble_peripheral\ble_app_hids_keyboard\main.c:1437
PC at: 0x000331CB
<error> app: End of error report
==> 이후 과정은 위와 동일합니다.
혹시 적용이 안되면 SES 종료 후 다시 실행해주세요
참고하세요.
반응형
'Nordic_nRF52' 카테고리의 다른 글
[nRF52 ] ble_app_bps 프로젝트 분석 (0) | 2022.06.14 |
---|---|
[nRF52 ] ble_app_alert_notification 프로젝트 분석 (0) | 2022.06.13 |
[nRF52] nrfjprog 사용법 (--memrd, --log, --readcode, --readregs, --verify, --erasepage, --program,..) (0) | 2022.04.25 |
[nRF52] ble_app_hids_keyboard 예제에 wdt 추가하기 (0) | 2022.04.20 |
[nRF52 ] wdt (watchdog timer) 프로젝트 분석 (0) | 2022.04.20 |