내 NEC 마이크로 컨트롤러는 8 비트 타이머 컨트롤러 레지스터를 가지고있다 - ioremap의 두 번째 매개 변수에 8을 전달해야합니까?ioremap()의 두 번째 매개 변수는 레지스터의 비트 수를 나타냅니다 (Linux)?
스펙을 읽은 후에, 나는 다음 특성을 알아야합니다.
Address |Function Register Name |Symbol |R/W Manipulatable Bits |Default Val
FFFFF590H |TMP0 control register 0 |TP0CTL0 |R/W √ √ |00H
따라서 타이머 레지스터 TP0CTL0이 매핑되는 실제 주소는 0xFFFFF590입니다.
이제이 레지스터를 다음과 같이 다시 매핑합니다. 더 많은 설명을 읽은 후에는 레지스터 크기가 8 비트임을 알아야합니다.
사양은 "TPnCTL0 레지스터는 TMPn의 작동을 제어하는 8 비트 레지스터입니다."
이게 맞습니까? 0xFFFFF590으로 기본 주소를 사용하고 있으며이 레지스터의 크기는 8 비트입니다. 따라서 크기를 8 비트로 지정했습니다. 맞습니까? ioremap_nocache의 두 번째 매개 변수가 비트 크기입니까? 다음 API가 정확합니까? ioremap_nocache 함수에서 매개 변수를 올바르게 사용 했습니까?
void * tp0ctl0 = ioremap_nocache (0xFFFFF590, 8);
unsigned int val = ioread8(tp0ctl0);
val = 2;
iowrite8(val, tp0ctl0);
여기 제발 올바른 -
다음으로, 나는이 다음을 수행하고있다. 내가 사용하는 마이크로 컨트롤러 정보를 기반으로 API를 올바르게 사용하고 있는지 여부에 대해 알려주십시오.