当前位置: 首页 > news >正文

镇海网站建设建设田达摩托车官方网站

镇海网站建设,建设田达摩托车官方网站,wordpress post表,php网站页面转wordpress1、在OpenWrt系统上移植SPI驱动前#xff0c;首先要确保SPI相关引脚未被复用为其他功能#xff0c;比如GPIO#xff1b;以下操作已假定该条件成立#xff0c;否则请修改相关dts和c文件中复用配置#xff1b; 2、打开dts配置文件进行修改#xff0c;这里我是用的硬件为WR…1、在OpenWrt系统上移植SPI驱动前首先要确保SPI相关引脚未被复用为其他功能比如GPIO以下操作已假定该条件成立否则请修改相关dts和c文件中复用配置 2、打开dts配置文件进行修改这里我是用的硬件为WRTNODE2R所以文件路径为/target/linux/ramips/dts/WRTNODE2R.dts。在SPI控制器节点下添加与我们要添加的SPI设备及驱动匹配的信息如下所示 要注意该段代码要添加到SPI控制器节点下为防止添加错误后面会给出这部分整段的SPI配置。 Note1 配置中“reg”属性有2个CELL第一个用于指定片选 Note2 配置中“compatible”参数需要与SPI设备驱动中字段相匹配如下为我使用的第三方SPI设备驱动中相关配置 #define CH43X_NAME_SPI ch43x_spistatic const struct of_device_id __maybe_unused ch43x_dt_ids[] {{ .compatible wch,ch43x, .data ch43x_devtype, },{}, }; MODULE_DEVICE_TABLE(of, ch43x_dt_ids);static struct spi_driver ch43x_spi_uart_driver {.driver {.name CH43X_NAME_SPI,.bus spi_bus_type,.owner THIS_MODULE,.of_match_table of_match_ptr(ch43x_dt_ids),},.probe ch43x_spi_probe,.remove ch43x_spi_remove, }; 在一般情况下匹配的信息应该是代码中“compatible ”的字符串也即“wch,ch43x”但这里匹配的具有特殊性原因可能为系统修改过有关。匹配的是spi_drvier中driver的name字符串也即ch43x_spi Note3 如上的dts配置中有2行信息是与中断相关的。本意是想实现通过dts配置interrupts节点后在spi设备驱动中通过struct spi_device *spi结构体中的spi-irq获取相应IO口的中断号实现中断功能奈何在本硬件平台上用不了之所以保留是因为很多其他平台可以通过这种方式来配置和获取中断。本平台使用中断方法会在其他博客中涉及。 完整SPI部分的dts配置 spi0: spib00 {status okay;m25p800 {#address-cells 1;#size-cells 1;compatible w25q256;reg 0 0;linux,modalias m25p80, w25q256;spi-max-frequency 10000000;m25p,chunked-io 32;partition0 {label u-boot;reg 0x0 0x30000;read-only;};partition30000 {label u-boot-env;reg 0x30000 0x10000;read-only;};factory: partition40000 {label factory;reg 0x40000 0x10000;read-only;};partition50000 {label firmware;reg 0x50000 0x1fb0000;};};spidev1 {#address-cells 1;#size-cells 1;// compatible wch,ch43x;compatible ch43x_spi;reg 1 0;spi-max-frequency 5000000;interrupt-parent gpio0;interrupts 0 2;};};3、OpenWrt系统中添加驱动模块 首先在目录package/kernel下创建自己的模块目录ch432目录结构如下 ramboubuntu:~/OpenWrt/wrtnode/package/kernel$ tree ch432 ch432 ├── Makefile └── src├── ch432.c├── Kconfig└── Makefile1 directory, 4 files至于里面的Makefile文件和Kconfig文件如何写不建议照抄我的或网上找的直接在package/kernel拷贝其他模块的基于那个调整最快捷有效而且拷贝那种最简单的就可以。这里拷贝button-hotplug这个驱动模块然后照葫芦画瓢修改成编译我们驱动的样式。傻瓜式做法直接把里面涉及到驱动文件名的统一换成你要编译的驱动文件名就可以比如这里第一级的Makefile如下 # # Copyright (C) 2008-2010 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. #include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mkPKG_NAME:ch432 PKG_RELEASE:3include $(INCLUDE_DIR)/package.mkdefine KernelPackage/ch432SUBMENU:Other modulesTITLE:ch432 spi driverDEPENDS:kmod-input-coreFILES:$(PKG_BUILD_DIR)/ch432.koAUTOLOAD:$(call AutoLoad,30,ch432,1)KCONFIG: endefdefine KernelPackage/ch432/descriptionKernel module to generate button uevent-s from input subsystem events.If your device uses GPIO buttons, see gpio-button-hotplug. endefEXTRA_KCONFIG: \CONFIG_CH432mEXTRA_CFLAGS: \$(patsubst CONFIG_%, -DCONFIG_%1, $(patsubst %m,%,$(filter %m,$(EXTRA_KCONFIG)))) \$(patsubst CONFIG_%, -DCONFIG_%1, $(patsubst %y,%,$(filter %y,$(EXTRA_KCONFIG)))) \MAKE_OPTS: \ARCH$(LINUX_KARCH) \CROSS_COMPILE$(TARGET_CROSS) \SUBDIRS$(PKG_BUILD_DIR) \EXTRA_CFLAGS$(EXTRA_CFLAGS) \$(EXTRA_KCONFIG)define Build/Preparemkdir -p $(PKG_BUILD_DIR)$(CP) ./src/* $(PKG_BUILD_DIR)/ endefdefine Build/Compile$(MAKE) -C $(LINUX_DIR) \$(MAKE_OPTS) \modules endef$(eval $(call KernelPackage,ch432))第二级src目录下的Kconfig文件如下 config CH432tristate This is CH432 Makefile如下 obj-$(CONFIG_CH432) ch432.o 实际上我就把这3个文件中原有的字符串“button-hotplug”换成了“ch432”而已。 Note1 你要编译的驱动源文件和头文件一定也要放在这个src目录下。 4、下面配置内核把我们添加到package中的模块选中就可以了。执行“make menuconfig” 然后在“Kernel Modules” - Other Modules下找到我们添加的模块选中它就可以了。 配置结束下面只编译模块就可以了。不需要编译整个内核。编译命令为 make package/kernel/ch432/compile Vs Note1 因为spi驱动可以动态加载调试所以建议编译成模块不要静态编译不然调试和看驱动log都不方便。 5、编译生成的驱动模块路径为 ko原生驱动模块路径 build_dir/target-mipsel_24kecdsp_uClibc-0.9.33.2/linux-ramips_mt7628/ch432/ ipk文件路径为 bin/ramips/packages/base/将如上ko文件或者ipk拷贝到硬件上面就可以正常使用了。记得SPI驱动调试第一步insmod之后确认spi_probe有没有正常执行
http://www.yutouwan.com/news/31124/

相关文章:

  • 重庆做腋臭骑士网站百度域名是什么
  • wordpress 注册 填写密码错误沈阳seo自然优化排名
  • 网站中图片怎么做的连云港做网站公司哪家好
  • wordpress网站设置关键词网站专题页设计
  • 网站还未被收录可以做推广吗潍坊网站建设维护
  • 人们做网站怎么赚钱1元建站
  • 24小时学会网站建设wordpress修改mysql
  • 网站seo文章该怎么写全球最大的外贸平台
  • 手机网站制作哪家好城乡住房建设部网站
  • 在线制作wap网站永久建站平台
  • 宽屏大气网站模板广州智迅网络做网站
  • 如何套用别人网站模板南通高端网站
  • 做鞋子有什么好网站网站开发人员晋升体系
  • wordpress添加账户余额怎么做优化网站排名
  • 网站策划书注意事项东莞网站的制作设计
  • 响应式网站开发视频教程保定网站网站建设
  • 仿win8 网站模版建设电子商务网站的必要性
  • 平面设计有哪些公司优化营商环境发言稿
  • 自建网站 支付宝高端企业网站模板
  • 中宁建设局网站wordpress红色主题公园
  • 网站关键词多少个合适浅析我国门户网站建设不足
  • 网站建设 网页设计需要技能商城网站建设需要多少钱
  • 西安网站推广慧创银川专业做网站的公司
  • 做爰全过程免费的视频的网站购物网站html
  • 如何设计网站布局佛山网站建设公司排名
  • 网站头部样式小程序商城哪家好
  • html门户网站模板岳麓区营销型网站建设定制
  • 可以做仿牌网站动漫专业最好的学校
  • 如何导入旧网站数据库第一ppt模板网官网
  • 学院网站建设 需求分析自己建的网站打开的特别慢