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

이벤트 플래그 그룹:유틸리티 서비스 및 데이터 구조


RTOS 공개 시리즈 보기

이 문서에서는 이벤트 플래그 그룹을 계속 살펴봅니다.

이벤트 플래그 그룹 유틸리티 서비스

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

이벤트 플래그 그룹 정보

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

이벤트 그룹 정보에 대한 Nucleus RTOS API 호출

서비스 요청 프로토타입:

<블록 인용>

STATUS NU_Event_Group_Information(NU_EVENT_GROUP *그룹,
CHAR *이름, UNSIGNED *짝수
t_flags, UNSIGNED *tasks_waiting,
NU_TASK **first_task),

매개변수:

<블록 인용>

그룹 – 사용자 제공 이벤트 플래그 그룹 제어 블록에 대한 포인터

이름 – 이벤트 플래그 그룹의 이름에 대한 8자 대상 영역에 대한 포인터 여기에는 null 종결자를 위한 공간이 포함됩니다.

event_flags – 지정된 이벤트 플래그 그룹의 현재 값을 수신할 변수에 대한 포인터

tasks_waiting – 이 이벤트 플래그 그룹에서 일시 중단된 작업의 수를 수신할 변수에 대한 포인터

첫 번째 작업NU_TASK 유형의 변수에 대한 포인터 첫 번째 일시 중단된 작업에 대한 포인터를 받습니다.

반품:

<블록 인용>

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

NU_INVALID_GROUP – 이벤트 플래그 그룹 포인터가 유효하지 않습니다.

이벤트 그룹 정보에 대한 Nucleus SE API 호출

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

서비스 요청 프로토타입:

<블록 인용>

STATUS NUSE_Event_Group_Information(NUSE_EVENT_GROUP 그룹,
U8 *event_flags, U8 *tasks_waiting, NUSE_TASK *first_task),

매개변수:

<블록 인용>

그룹 – 정보가 요청되는 이벤트 플래그 그룹의 인덱스

event_flags – 지정된 이벤트 플래그 그룹의 현재 값을 수신할 변수에 대한 포인터

tasks_waiting – 이 이벤트 플래그 그룹에서 일시 중단된 작업 수를 수신할 변수에 대한 포인터(작업 일시 중단이 비활성화된 경우 아무 것도 반환되지 않음)

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

반품:

<블록 인용>

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

NUSE_INVALID_GROUP – 이벤트 플래그 그룹 인덱스가 유효하지 않습니다.

Nucleus SE의 이벤트 그룹 정보 구현

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

<사전>*event_flags =NUSE_Event_Group_Data[그룹]; #if NUSE_BLOCKING_ENABLE *tasks_waiting =NUSE_Event_Group_Blocking_Count[그룹]; if (NUSE_Event_Group_Blocking_Count[그룹] !=0) { U8 인덱스; for (index=0; index

함수는 이벤트 플래그 그룹의 값을 반환합니다. 그런 다음 차단 API 호출이 활성화되면 대기 중인 작업의 수와 첫 번째 작업의 인덱스가 반환됩니다(그렇지 않으면 이 두 매개변수가 0으로 설정됨).

이벤트 플래그 그룹 수 얻기

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

이벤트 플래그 그룹 수에 대한 Nucleus RTOS API 호출

서비스 요청 프로토타입:

<블록 인용>

미등록 NU_Established_Event_Groups(VOID),

매개변수:

<블록 인용>

없음

반품:

<블록 인용>

애플리케이션에서 생성된 이벤트 플래그 그룹의 현재 수

이벤트 플래그 그룹 수에 대한 Nucleus SE API 호출

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

서비스 요청 프로토타입:

<블록 인용>

U8 NUSE_Event_Group_Count(무효);

매개변수:

<블록 인용>

없음

반품:

<블록 인용>

애플리케이션에 구성된 이벤트 플래그 그룹의 수

Nucleus SE의 이벤트 플래그 그룹 수 구현

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


임베디드

  1. 클라우드와 사내 서비스의 장단점
  2. Microsoft Azure' 블록체인 토큰 및 데이터 관리 서비스
  3. C++의 구조 및 클래스
  4. 사서함:소개 및 기본 서비스
  5. 세마포어:유틸리티 서비스 및 데이터 구조
  6. 세마포어:소개 및 기본 서비스
  7. 행사 플래그 그룹:소개 및 기본 서비스
  8. 대기열:소개 및 기본 서비스
  9. Apacer:전 세계적으로 출시된 CV110-SD 및 CV110-MSD 카드
  10. OpenHW Group은 CORE-V 오픈 소스 코어 제품군을 만들고 발표했습니다.