Zynq ARM에서 소프트웨어 인터럽트를 전송하는 방법(레지스터 사용)
그래서 레지스터를 조사했을 때의 메모
소프트웨어 생성 인터럽트용 레지스터 설명(원문)
내용 메모
본 느낌, 쉘상에서 devmem을 치는 것만으로 소프트웨어 인터럽트를 할 수 있을 것 같다
(※devmem<물리 주소(원문으로 말하는 Absolute Address)><사이즈>[쓰고 싶은 값])
레지스터에 기입하는 값은 이하를 참고로.
본 느낌, 쉘상에서 devmem을 치는 것만으로 소프트웨어 인터럽트를 할 수 있을 것 같다
(※devmem<물리 주소(원문으로 말하는 Absolute Address)><사이즈>[쓰고 싶은 값])
레지스터에 기입하는 값은 이하를 참고로.
의미는 없다. 나중에 사용할 수있는 장소
인터럽트 신호를 출력할 대상을 결정하는 영역.
0b00 : CPUTargetList로 지정된 대상에 인터럽트 신호를 발행합니다.
0b01 : 모든 CPU에 인터럽트 신호를 출력합니다.
0b10 : 인터럽트 신호를 발행하는 CPU에만 발행
0b11: 예약값. 의미가 없습니다
TargetListFilter로 0b00을 입력했을 때에 이용.
예를 들어, CPUtargetList[0]은 CPU0을 의미한다. CPUTargetList[0]=1로 하면, CPU0에 인터럽트를 걸게 된다.
보안 관련 항목.
SBZ가 누군지 모르겠다. 다른 자료를 읽으면 Reserve로 취급되므로 사용하지 않아도 괜찮습니까?
소프트웨어 인터럽트 ID 번호. 0~15로 선택.
예 : 0b0011이면 인터럽트 ID는 3입니다
devmem으로 인터럽트를 보자.
devmem 물리적 주소 크기 값
예:
devmem 0xF8F01F00 32 0x10000
CPU0에 인터럽트 ID No.0의 인터럽트 송신(보안 없음)
(이것은 아직 실제 기계로 시도하지 않았습니다. 시도하면 추가합니다)
※ 잘 작동했습니다. 인터럽트 신호가 위에서 전송할 수 있음을 확인했습니다.
레지스터는 32bit에서 0b000000|00|00000001|00|00000000|0000
매번, 그냥 메모 쓰기였습니다.
참고문헌
Zynq-7000 All Programmable SoC 기술 참조 매뉴얼
ARM Generic Interrupt Controller Architecture Specification
Reference
이 문제에 관하여(Zynq ARM에서 소프트웨어 인터럽트를 전송하는 방법(레지스터 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/usiiiii/items/ec7ae10a00a843aaeb7c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Zynq-7000 All Programmable SoC 기술 참조 매뉴얼
ARM Generic Interrupt Controller Architecture Specification
Reference
이 문제에 관하여(Zynq ARM에서 소프트웨어 인터럽트를 전송하는 방법(레지스터 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/usiiiii/items/ec7ae10a00a843aaeb7c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)