nrf 52832-freertos 루틴
1658 단어 낮은 전력 소모 블 루 투 스
메모:이 버 전 sdk 는 s132 에 맞 춰 야 합 니 다.nrf52_3.0.0 의 softdevice 사용
1.이 demo 를 이용 하여 테스트 를 하고 자체 rtt 디 버 깅 정보 기능 을 열 었 습 니 다.그리고 자신의 task 를 새로 만 들 었 습 니 다.프로그램 이 실행 되 지 않 는 것 을 발견 한 다음 에 freertos 설정 파일 인 FreeRTOSConfig.h 를 보면 다음 과 같은 매크로 정 의 를 발견 할 수 있 습 니 다.
#define configTOTAL_HEAP_SIZE ( 4096 )
4k 의 램 공간 을 분 배 했 기 때문에 이 매개 변 수 를 확대 하여 프로그램 이 실행 되 지 않 는 문 제 를 해결 했다.이 부분 은 freertos 에 속 하 는 것 이 므 로 알 고 싶다 면 freertos 의 운영 체 제 를 알 아야 한다.
2.테스트 과정 에서 프로그램 이 일정 시간 실행 되 지 않 으 면 실행 이 중단 된다 는 것 을 알 게 되 었 습 니 다.자신의 task 를 최고 우선 순위 로 설정 하 더 라 도 효과 가 똑 같 습 니 다.그래서 예전 에 freertos 가 없 는 hrs 루틴 으로 제한 방송 모드 를 사 용 했 습 니 다.즉,방송 일정 시간 후에 방송 이 중단 되 었 지만 freertos 에서 ble 의 물건 은 task 에 넣 었 습 니 다.따라서 이 task 가 걸 려 도 다른 task'의 운행 에 영향 을 주지 않 습 니 다.그러나 코드 를 통 해 사실은 그렇지 않 습 니 다.방송 정지 사건 이 발생 한 후에 다음 과 같은 함 수 를 호출 했 기 때 문 입 니 다.
static void sleep_mode_enter(void)
{
uint32_t err_code = bsp_indication_set(BSP_INDICATE_IDLE);
NRF_LOG_INFO("sleep\r
");
return;
APP_ERROR_CHECK(err_code);
// Prepare wakeup buttons.
err_code = bsp_btn_ble_sleep_mode_prepare();
APP_ERROR_CHECK(err_code);
// Go to system-off mode (this function will not return; wakeup will cause a reset).
err_code = sd_power_system_off();
APP_ERROR_CHECK(err_code);
}
"이 함 수 는 task 를 걸 지 않 고 Puts the chip in System OFF mode 입 니 다.reset 을 통 해서 만 다시 실행 할 수 있 기 때문에 이것 이 freertos 시스템 이 오래 실행 되 지 못 하 는 이유 입 니 다."
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nrf 52832 의 timernrf 52832 에는 다섯 개의 타이머 가 있 습 니 다.timer 0-timer 4.SDK 는 이미 timer 0 을 사 용 했 기 때문에 SDK 를 사용 했다 면 timer 0 을 더 이상 사용 할 수 없고 t...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.