STM32 + cJSON + FreeRTOS 에서 분석 하거나 출력 한 결과 가 NULL 인 문 제 를 해결 합 니 다.
1131 단어 FreeRTOS
문제 조사, cJSON 추적PrintUnformatted 소스 코드 는 모든 노드 가 성공 적 으로 만 들 어 졌 으 나 마지막 으로 전체 json 문자열 을 구성 할 때 메모리 공간 을 신청 하 는 데 실 패 했 고 돌아 올 때마다 NULL 입 니 다.코드 의 메모리 방출 부분 을 검사 한 결과, 호출 된 free 함 수 는 FreeRTOS 를 사용 한 후 vPort Free 함 수 를 사용 하여 메모 리 를 방출 해 야 합 니 다.vPort Free 함수 로 수정 한 후 다시 테스트 합 니 다. 문제 가 다시 발생 하지 않 았 습 니 다.이에 특별히 기록 합 니 다
cJSON 에서 FreeRTOS 를 사용 하여 메모리 관리 에 관 한 수정 부분 은 다음 과 같 습 니 다. 수정 내용 은 모두 cjson. c 에 있 습 니 다.
:
static void *(*cJSON_malloc)(size_t sz) = pvPortMalloc;
static void (*cJSON_free)(void *ptr) = vPortFree;
:
void cJSON_InitHooks(cJSON_Hooks* hooks)
{
if (!hooks) { /* Reset hooks */
cJSON_malloc = pvPortMalloc;
cJSON_free = vPortFree;
return;
}
cJSON_malloc = (hooks->malloc_fn)?hooks->malloc_fn:pvPortMalloc;
cJSON_free = (hooks->free_fn)?hooks->free_fn:vPortFree;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AWS Iot EduKit L 치카 처리을 순서대로 해 보아 확실히, MQTT Test Client에서 장치에서 보낸 메시지를 표시합니다. 장치가 구독하는 주제를 콘솔의 AWS IoT MQTT 클라이언트에서 게시하여 LED 막대가 깜박임을 시작하거나 중지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.