안녕하세요....
리눅스 초보 개발자입니다...
struct timer_list my_timer;
init_timer(&my_timer);
my_timer.expires = jiffies + delay ; //100ms
my_timer.data 0 ;
my_timer.function =
my_function;
add_timer(&my_timer);
이와같이, 커널타이머를 이용해서, port control를 하고 있습니다.
function
루틴에서, 약1ms동안의 중요 통신을 정말 방해 받지않고 bit를 조작해야 하는데, 정기적으로...
아무래도 미묘하게 방해를 받습니다....(프로세서가 어딘가를 갖다 오는동안
delay로 작용됩니다.-->이 불특정 delay가
문제되네요....)
my_function(void)
{
//A
tx_rx_funtion(); //방해받지 말아야할 통신부
//B
}
저 방해받지 말아야할 통신부를 완벽하게 보장할수 있는 방법이 없을까요?
local_irq_save,mutex,spin_lock등등과 같은 형식을 사용해보았는데, 그래도 delay 영향을 받네요..
커널타이머 말고 다른 방식이나,또는 이상태에서 어떤 처리를 해야 될까요?
고수님들의 고견부탁드립니다...