在内核模块中使用脉冲宽度调制(PWM)接口

时间:2016-12-13 22:58:14

标签: c module linux-kernel driver pwm

我是内核开发驱动程序的新手,我正在尝试使用此模块信息开发Linux内核模块:

http://lxr.free-electrons.com/source/drivers/pwm/pwm-tiehrpwm.c

但我不明白如何使用它。如何调整此模块或更好,如何使用此文件中包含的函数创建新模块,如ehrpwm_pwm_config,ehrpwm_pwm_enable?

PS:我不想使用sysfs,我会以编程方式配置pwm信号。我正在使用运行Debian发行版的Beaglebone Black黑板和cape-universaln。

谢谢

1 个答案:

答案 0 :(得分:0)

您需要在linux-kernel的CONFIG_PWM_TIEHRPWM文件中启用.config。默认情况下,CONFIG_PWM_TIEHRPWM is not set,如果要将其构建为内核映像的一部分,则需要将其设置为CONFIG_PWM_TIEHRPWM=y,如果要将其构建为CONFIG_PWM_TIEHRPWM=m,则需要将其设置为LKM make -j12

然后,将您的内核构建为insmod并将#insmod /lib/modules/$uname -r/drivers/pwm/pwm_tiehrpwm.ko模块构建为:

LKM如果您已将其构建为Linux kernel documentation。查看pwm有关如何配置var data={ "Shops": [ { "ShopName": "7-ven", "ShopID": "7-ven123", "Shoplocation": "#02-31" }, { "ShopName": "8Tarstries", "ShopID": "8Tarstries123", "Shoplocation": "#B2-K4" }, { "ShopName": "A|hange", "ShopID": "A|hange123", "Shoplocation": "#01-202" }] } $.each( data.Shops, function( key, value ) { var $select = $("#dropDownShops_1, #dropDownShops_2"); $select.append("<option >" + value.ShopName + "</option>"); });

的信息