调试过程中遇到问题

//s_gpt_handle=-1

sprintf(s_drv_name, "%s%s", DEVICE_INDENTIFIER, "gpt_pwm_saw");

s_gpt_handle = open(s_drv_name, O_RDWR);

执行上述两条后,s_gpt_handle的值没有如预想中发生变化,请问有什么原因会导致打开失败?

注:代码在pwm波形产生例程的基础上进行了修改,没有使用缓冲模式。