레지스터 연산시 자주 사용하는 비트연산

Posted by 알 수 없는 사용자
2016. 4. 8. 01:08 기타/Linux

리눅스 디바이스 드라이버를 다루다보면 필연적으로 레지스터를 제어하게됩니다.

뭐 비트연산은 하는 방법은 여러 방법이 있습니다.

아래에 제가 적는 비트연산은 제가 자주 사용하는 비트 연산입니다( 무엇보다 가독성이 좋아서 해당 레지스터의 몇번째 비트가 set, claer가 됬는지 알기가 쉽습니다 ^^)






뭐 다들 아시겟지만 간단히 설명만 하겠습니다.



1번쨰 줄에서는 REGISTER라는 변수를 0x12345678 레지스터 주소를 선언하였습니다.

ioremap함수로 할당을 받고 3~4번째 줄에서 비틍녀산으로 해당 비트를 셋팅 ! 클리어를 합니다.

뭐 기타내용은 집어치우고


무엇보다 육안적으로 딱! 보기에 아 0x12345678 레지스터의 11번째 비트가 셋팅됬구나! 11번째 비트가 클리어 됬구나! 라고 알기가 쉽습니다.


사소해보여도 여러명이 하는 업무에서 자신만 아는 코드는 에로사항이 많습니다. 시간이 흐르면 기억도 잘 안나고요.


이상으로 제가 자주 사용하는 비트 연산 명령어 소개를 마칩니다~