1,318
社区成员
发帖
与我相关
我的任务
分享
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);
[/quote]
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);
[/quote]
你这个仅仅是pwm控制器硬件资源部分信息的描述而已,还需要参考下相应的platform_driver来确定每个成员具体值的含义的.[/quote]
老哥,多年之后,我终于弄好了!!内牛满面啊,,,,明天分享成果出来,做这行简直太难了!![/quote]
期待你的大作哈。 [/quote]
好了,就写在这了http://blog.csdn.net/Guet_Kite/article/details/77275492
搞了好久才知道是要配置输出引脚,还要配置成复用模式.....
不过我还有个疑问,就是这些操作:
echo 1000000000 > period
echo 100000000 > duty_cycle
能把他写成一个可执行文件吗》就是我一执行某个文件,就自动echo
[/quote]
可以啊,就是open, read, write函数调用就可以了[/quote]
对某个文件读写,要获取他的句柄吧?不知道是不是叫句柄....
就像这样 fd=open("/dev/pwm",NULL);
要获取这个fd吧?不然怎么读写?[/quote]
就是这样啊,句柄是window的叫法,linux叫文件描述符[/quote]、、
那我要 :echo 1000000000 > period
如何要获取他的文件描述符[/quote]
open那个period属性文件就可以了
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);
[/quote]
你这个仅仅是pwm控制器硬件资源部分信息的描述而已,还需要参考下相应的platform_driver来确定每个成员具体值的含义的.[/quote]
老哥,多年之后,我终于弄好了!!内牛满面啊,,,,明天分享成果出来,做这行简直太难了!![/quote]
期待你的大作哈。 [/quote]
好了,就写在这了http://blog.csdn.net/Guet_Kite/article/details/77275492
搞了好久才知道是要配置输出引脚,还要配置成复用模式.....
不过我还有个疑问,就是这些操作:
echo 1000000000 > period
echo 100000000 > duty_cycle
能把他写成一个可执行文件吗》就是我一执行某个文件,就自动echo
[/quote]
可以啊,就是open, read, write函数调用就可以了[/quote]
对某个文件读写,要获取他的句柄吧?不知道是不是叫句柄....
就像这样 fd=open("/dev/pwm",NULL);
要获取这个fd吧?不然怎么读写?[/quote]
就是这样啊,句柄是window的叫法,linux叫文件描述符[/quote]、、
那我要 :echo 1000000000 > period
如何要获取他的文件描述符
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);
[/quote]
你这个仅仅是pwm控制器硬件资源部分信息的描述而已,还需要参考下相应的platform_driver来确定每个成员具体值的含义的.[/quote]
老哥,多年之后,我终于弄好了!!内牛满面啊,,,,明天分享成果出来,做这行简直太难了!![/quote]
期待你的大作哈。 [/quote]
好了,就写在这了http://blog.csdn.net/Guet_Kite/article/details/77275492
搞了好久才知道是要配置输出引脚,还要配置成复用模式.....
不过我还有个疑问,就是这些操作:
echo 1000000000 > period
echo 100000000 > duty_cycle
能把他写成一个可执行文件吗》就是我一执行某个文件,就自动echo
[/quote]
可以啊,就是open, read, write函数调用就可以了[/quote]
对某个文件读写,要获取他的句柄吧?不知道是不是叫句柄....
就像这样 fd=open("/dev/pwm",NULL);
要获取这个fd吧?不然怎么读写?[/quote]
就是这样啊,句柄是window的叫法,linux叫文件描述符
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);
[/quote]
你这个仅仅是pwm控制器硬件资源部分信息的描述而已,还需要参考下相应的platform_driver来确定每个成员具体值的含义的.[/quote]
老哥,多年之后,我终于弄好了!!内牛满面啊,,,,明天分享成果出来,做这行简直太难了!![/quote]
期待你的大作哈。 [/quote]
好了,就写在这了http://blog.csdn.net/Guet_Kite/article/details/77275492
搞了好久才知道是要配置输出引脚,还要配置成复用模式.....
不过我还有个疑问,就是这些操作:
echo 1000000000 > period
echo 100000000 > duty_cycle
能把他写成一个可执行文件吗》就是我一执行某个文件,就自动echo
[/quote]
可以啊,就是open, read, write函数调用就可以了[/quote]
对某个文件读写,要获取他的句柄吧?不知道是不是叫句柄....
就像这样 fd=open("/dev/pwm",NULL);
要获取这个fd吧?不然怎么读写?
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);
[/quote]
你这个仅仅是pwm控制器硬件资源部分信息的描述而已,还需要参考下相应的platform_driver来确定每个成员具体值的含义的.[/quote]
老哥,多年之后,我终于弄好了!!内牛满面啊,,,,明天分享成果出来,做这行简直太难了!![/quote]
期待你的大作哈。 [/quote]
好了,就写在这了http://blog.csdn.net/Guet_Kite/article/details/77275492
搞了好久才知道是要配置输出引脚,还要配置成复用模式.....
不过我还有个疑问,就是这些操作:
echo 1000000000 > period
echo 100000000 > duty_cycle
能把他写成一个可执行文件吗》就是我一执行某个文件,就自动echo
[/quote]
可以啊,就是open, read, write函数调用就可以了
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);
[/quote]
你这个仅仅是pwm控制器硬件资源部分信息的描述而已,还需要参考下相应的platform_driver来确定每个成员具体值的含义的.[/quote]
老哥,多年之后,我终于弄好了!!内牛满面啊,,,,明天分享成果出来,做这行简直太难了!![/quote]
期待你的大作哈。 [/quote]
好了,就写在这了http://blog.csdn.net/Guet_Kite/article/details/77275492
搞了好久才知道是要配置输出引脚,还要配置成复用模式.....
不过我还有个疑问,就是这些操作:
echo 1000000000 > period
echo 100000000 > duty_cycle
能把他写成一个可执行文件吗》就是我一执行某个文件,就自动echo
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);
[/quote]
你这个仅仅是pwm控制器硬件资源部分信息的描述而已,还需要参考下相应的platform_driver来确定每个成员具体值的含义的.[/quote]
老哥,多年之后,我终于弄好了!!内牛满面啊,,,,明天分享成果出来,做这行简直太难了!![/quote]
期待你的大作哈。
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);
[/quote]
你这个仅仅是pwm控制器硬件资源部分信息的描述而已,还需要参考下相应的platform_driver来确定每个成员具体值的含义的.[/quote]
老哥,多年之后,我终于弄好了!!内牛满面啊,,,,明天分享成果出来,做这行简直太难了!!
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);
[/quote]
你这个仅仅是pwm控制器硬件资源部分信息的描述而已,还需要参考下相应的platform_driver来确定每个成员具体值的含义的.
static struct samsung_pwm_variant s3c_pwm_pdata = {
.bits = 16,
.div_base = 1,
.has_tint_cstat = false,
.tclk_mask = (1 << 4),
.output_mask = 1,
};
static struct resource s3c_pwm_resource[] = {
DEFINE_RES_MEM(SAMSUNG_PA_TIMER, SZ_4K),
};
static struct platform_device s3c_device_pwm = {/*platform里注册设备文件*/
.name = "samsung-pwm",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_pwm_resource),
.resource = s3c_pwm_resource,
.dev = {
.platform_data = &s3c_pwm_pdata,
},
};
static int S3C_PWM_init(void)
{
/* 2. 注册 */
int result = platform_device_register(&s3c_device_pwm);
if (result != 0) /*注册失败*/
printk("register false \n");
return 0;
}
static void S3C_PWM_exit(void)
{
platform_device_unregister(&s3c_device_pwm);
}
module_init(S3C_PWM_init);
module_exit(S3C_PWM_exit);