OS와 Contiki를 사용하는 랩톱과 모듈 간의 통신을 시도 할 때 질문은 contiki의 간섭으로 프로세스를 교체하는 방법입니까?contiki에서 인터럽트로 프로세스를 교체하는 방법은 무엇입니까?
매우 어려운 일입니다. 네가 나를 도울 수 있다면 정말 고마워.
OS와 Contiki를 사용하는 랩톱과 모듈 간의 통신을 시도 할 때 질문은 contiki의 간섭으로 프로세스를 교체하는 방법입니까?contiki에서 인터럽트로 프로세스를 교체하는 방법은 무엇입니까?
매우 어려운 일입니다. 네가 나를 도울 수 있다면 정말 고마워.
인터럽트 컨텍스트에서 프로세스를 폴링하거나 다른 프로세스 컨텍스트에서 프로세스에 대한 이벤트를 발생시킬 수 있습니다. 프로세스 관련 API에 대한 자세한 내용은 process.h 파일을 참조하십시오.
Contiki는 자주 인터럽트/프로세스 데이터 교환을 처리하기 위해 하단 절반 패턴을 사용합니다.
인터럽트 서비스 루틴은 수신 된 데이터를 버퍼링 한 다음 처리를 위해 프로세스를 웨이크/풀링합니다.
즉 :
/* This is a ISR */
void uart0_rx_isr(void) __interrupt(URX0_VECTOR)
{
/* read the UART peripheral */
char c = ...;
/* handle it to a process */
process_post(&example_process,
PROCESS_EVENT_NEW_BYTE, c);
}
여기
더 많은 정보 : https://github.com/contiki-os/contiki/wiki/Processes