산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

파티션 메모리:유틸리티 서비스 및 데이터 구조


RTOS 공개 시리즈 보기

이 기사에서는 RTOS 파티션 메모리를 계속 살펴봅니다.

파티션 풀 유틸리티 서비스

Nucleus RTOS에는 파티션 풀과 관련된 유틸리티 기능을 제공하는 세 가지 API 호출이 있습니다. 파티션 풀에 대한 정보 반환, 애플리케이션의 파티션 풀 수 반환, 애플리케이션의 모든 파티션 풀에 대한 반환 포인터. 이 중 처음 두 가지는 Nucleus SE에서 구현됩니다.

파티션 풀 정보 얻기

이 서비스 호출은 파티션 풀에 대한 정보를 선택합니다. Nucleus SE 구현은 개체 이름 지정 및 일시 중단 순서가 지원되지 않고 작업 일시 중단이 활성화되지 않을 수 있으므로 더 적은 정보를 반환한다는 점에서 Nucleus RTOS와 다릅니다.

파티션 풀 정보에 대한 Nucleus RTOS API 호출

서비스 요청 프로토타입:

<블록 인용>

STATUS NU_Partition_Pool_Information(NU_PARTITION_POOL *pool, CHAR *name, VOID **start_address, UNSIGNED *pool_size, UNSIGNED *partition_size, UNSIGNED *사용 가능, UNSIGNED *할당됨, OPTION *suspend_type, UNSIGNED *tasks_waiting , NU_TASK /강한>

매개변수:

<블록 인용>

수영장 – 정보가 요청되는 파티션 풀에 대한 포인터

이름 – 파티션 풀 이름에 대한 8자 대상 영역에 대한 포인터 여기에는 null 종결자를 위한 공간이 포함됩니다.

시작 주소 – 파티션 풀 데이터 영역의 시작에 대한 포인터를 받을 변수에 대한 포인터

수영장_크기 – 파티션 풀의 크기(바이트 단위)를 수신할 변수에 대한 포인터

partition_size – 이 풀의 파티션 크기를 수신할 변수에 대한 포인터

사용 가능 – 이 풀에서 현재 사용 가능한 파티션 수를 수신할 변수에 대한 포인터

할당됨 – 이 풀에서 현재 사용 중인 파티션 수를 수신할 변수에 대한 포인터

일시 중단_유형 – 작업 일시 중단 유형을 유지하기 위한 변수에 대한 포인터. 유효한 작업 일시 중지 유형은 NU_FIFO입니다. 및 NU_PRIORITY .

tasks_waiting – 이 파티션 풀에서 일시 중단된 작업 수를 수신할 변수에 대한 포인터

첫 번째 작업 – 첫 번째 일시 중단된 작업의 포인터가 배치된 작업 포인터에 대한 포인터

반품:

<블록 인용>

NU_SUCCESS – 통화가 성공적으로 완료되었습니다.

NU_INVALID_POOL – 파티션 풀 포인터가 유효하지 않습니다.

파티션 풀 정보에 대한 Nucleus SE API 호출

이 API 호출은 Nucleus RTOS API의 주요 기능을 지원합니다.

서비스 요청 프로토타입:

<블록 인용>

상태 NUSE_Partition_Pool_Information(NUSE_PARTITION_POOL 풀, ADDR *start_address, U32 *pool_size, U16 *partition_size, U8 *사용 가능, U8 *할당됨, U8 *tasks_waiting, NUSE_TASK *first_task)

매개변수:

<블록 인용>

수영장 – 정보가 요청되는 파티션 풀의 인덱스

시작 주소 – 파티션 풀 데이터 영역의 시작에 대한 포인터를 받을 변수에 대한 포인터

수영장_크기 – 파티션 풀의 크기(바이트 단위)를 수신할 변수에 대한 포인터

partition_size – 이 풀의 파티션 크기를 수신할 변수에 대한 포인터

사용 가능 – 이 풀에서 현재 사용 가능한 파티션 수를 수신할 변수에 대한 포인터

할당됨 – 이 풀에서 현재 사용 중인 파티션 수를 수신할 변수에 대한 포인터

tasks_waiting – 이 파티션 풀에서 일시 중단된 작업의 수를 수신할 변수에 대한 포인터(작업 일시 중단이 비활성화된 경우 아무 것도 반환되지 않음)

첫 번째 작업NUSE_TASK 유형의 변수에 대한 포인터 첫 번째 일시 중단된 작업의 인덱스를 수신합니다(작업 일시 중단이 비활성화된 경우 아무 것도 반환되지 않음)

반품:

<블록 인용>

NUSE_SUCCESS – 통화가 성공적으로 완료되었습니다.

NUSE_INVALID_POOL – 파티션 풀 인덱스가 유효하지 않습니다.

NUSE_INVALID_POINTER – 하나 이상의 포인터 매개변수가 유효하지 않습니다.

Nucleus SE의 파티션 풀 정보 구현

이 API 호출의 구현은 매우 간단합니다.

이 함수는 파티션 풀 상태를 반환합니다. 그런 다음 차단 API 호출이 활성화되면 대기 중인 작업의 수와 첫 번째 작업의 인덱스가 반환됩니다(그렇지 않으면 이 두 매개변수가 0으로 설정됨).

파티션 풀 수 구하기

이 서비스 호출은 애플리케이션에 구성된 파티션 풀의 수를 반환합니다. Nucleus RTOS에서는 시간에 따라 달라지며 반환된 값은 현재 풀 수를 나타내지만 Nucleus SE에서는 반환된 값이 빌드 시 설정되며 변경할 수 없습니다.

파티션 풀 수에 대한 Nucleus RTOS API 호출

이 API 호출은 Nucleus RTOS API의 주요 기능을 지원합니다.

서비스 요청 프로토타입:

<블록 인용>

서명되지 않은 NU_Established_Partition_Pools(VOID),

매개변수:

<블록 인용>

없음

반품:

<블록 인용>

애플리케이션에서 생성된 파티션 풀의 수

파티션 풀 수에 대한 Nucleus SE API 호출

이 API 호출은 Nucleus RTOS API의 주요 기능을 지원합니다.

서비스 요청 프로토타입:

<블록 인용>

U8 NUSE_Partition_Pool_Count(무효);

매개변수:

<블록 인용>

없음

반품:

<블록 인용>

애플리케이션에 구성된 파티션 풀의 수

구현

이 API 호출의 구현은 거의 간단합니다. #define 기호 NUSE_PARTITION_POOL_NUMBER 반환됩니다.


임베디드

  1. 클라우드와 사내 서비스의 장단점
  2. Microsoft Azure' 블록체인 토큰 및 데이터 관리 서비스
  3. 디지털 메모리 용어 및 개념
  4. 마이크로프로세서
  5. C++의 구조 및 클래스
  6. 사서함:소개 및 기본 서비스
  7. 세마포어:유틸리티 서비스 및 데이터 구조
  8. 세마포어:소개 및 기본 서비스
  9. 이벤트 플래그 그룹:유틸리티 서비스 및 데이터 구조
  10. 행사 플래그 그룹:소개 및 기본 서비스