디바이스 디바이스에서 delay함수를 사용하려고 하는데요..

jungjury의 이미지


캐릭터 디바이스 드라이버에서 LED를 깜빡이게 하려고 아래처럼 짰는데...
계속 켜져있기만 하네요..

켜고 끄는 부분들은 따로따로 테스트하면 잘 동작하는데
아래처럼 하면 안되요... 원하는 대로 동작안하는데 해결방법이 없을까요?

            for( i=0; i<5; i++ )
             {
                 //LED를 켠다.
                 value = ioread32( pe_dat );
                 value |= (1<<4);
                 iowrite32( value, pe_dat );
 
                  //2초간 대기
                  mdelay(2000);
 
                  //LED를 끈다.
                  value = ioread32( pe_dat );
                  value &= ~(1<<4); 
                  iowrite32( value, pe_dat );
            }
ktd2004의 이미지

LED를 끄고도 mdelay가 있어야 하지 않을까요???

jungjury의 이미지

맞네요...그렇게 하니 제대로.. 동작하는군요.

안녕하세요 : )