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

南雄市住房和城乡建设局网站sem是什么的缩写

南雄市住房和城乡建设局网站,sem是什么的缩写,打车软件app开发,汽车网站建设页面一、框架 1、编写驱动程序的套路: 确定主设备号,也可以让内核分配。定义自己的file_operations结构体。实现对应的drv_open/drv_read/drv_write 等函数,填入file_operations结构体。把file_operations 结构体告诉内核:register_…

一、框架

1、编写驱动程序的套路:

  1. 确定主设备号,也可以让内核分配。
  2. 定义自己的file_operations结构体。
  3. 实现对应的drv_open/drv_read/drv_write 等函数,填入file_operations结构体。
  4. 把file_operations 结构体告诉内核:register_chrdev。
  5. 谁来注册驱动程序啊?得有一个入口函数:安装驱动程序时,就会去调用这 个入口函数。
  6. 有入口函数就应该有出口函数:卸载驱动程序时,出口函数调用unregister_chrdev。
  7. 其他完善:提供设备信息,自动创建设备节点:class_create,device_create。

2、驱动怎么操作硬件?

       1、通过 ioremap 映射寄存器的物理地址得到虚拟地址,读写虚拟地址。

3、驱动怎么和APP传输数据?

        1、通过copy_to_user、copy_from_user这2个函数。

4、驱动程序:

1、 实现led_open函数,在里面初始化LED引脚。 

2、实现led_write函数,在里面根据APP传来的值控制LED。

二、 IMX6ULL的GPIO介绍

        GPIO的控制涉及3大模块:CCM、IOMUXC、GPIO模块本身

1、CCM_CCGR寄存器

GPIOx要用CCM_CCGRy寄存器中的2位来决定该组GPIO是否使能。哪组GPIO用哪个CCM_CCGR寄存器来设置,请看上图红框部分。

CCM_CCGR寄存器中某2位的取值含义如下:

① 00:该GPIO模块全程被关闭

② 01:该GPIO模块在CPU run mode情况下是使能的;在WAIT或STOP模式下,关闭

③ 10:保留

④ 11:该GPIO模块全程使能

2、IOMUXC:引脚的模式(Mode、功能)

对于某个/某组引脚,IOMUXC中有2个寄存器用来设置它:

① 选择功能:

IOMUXC_SW_MUX_CTL_PAD_<PADNAME> :Mux pad xxx,选择某个pad的功能

IOMUXC_SW_MUX_CTL_GRP_<GROUP NAME>:Mux grp xxx,选择某组引脚的功能

某个引脚,或是某组预设的引脚,都有8个可选的模式(alternate (ALT) MUX_MODE),

比如:

② 设置上下拉电阻等参数:

IOMUXC_SW_PAD_CTL_PAD_<PAD_NAME>:pad pad xxx,设置某个pad的参数

IOMUXC_SW_PAD_CTL_GRP_<GROUP NAME>:pad grp xxx,设置某组引脚的参数

比如:

3、GPIO模块

① GPIOx_GDIR:

设置引脚方向,每位对应一个引脚,1-output,0-input

② GPIOx_GDIR:

设置输出引脚的电平,每位对应一个引脚,1-高电平,0-低电平

③ GPIOx_PSR:

读取引脚的电平,每位对应一个引脚,1-高电平,0-低电平

三、最简单的操作IMX6ULL点亮一个灯的驱动程序

1、定义寄存器地址

①:IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3

地址:0x02290000 + 0x14

②:GPIO5_GDIR

地址:0x020AC004

③:GPIO5_DR

地址:0x020AC000

2、映射寄存器地址

用ioremap函数来映射,这个函数特点如下:

虚拟地址 = ioremap(物理地址, 相映射多少个字节);
IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3 = ioremap(0x02290000 + 0x14, 4);GPIO5_GDIR = ioremap(0x020AC004, 4);GPIO5_DR = ioremap(0x020AC000, 4);

注:虽然只是映射了4个字节,但是会映射一页。

3、配置GPIO

①:使能GPIO5

默认使能

②:配置GPIO5_IO3为GPIO模式

设置IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3寄存器后四位为0101

代码实现:

*IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3 &= ~0xf;*IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3 |= 0x05;

③:配置GPIO5_IO3为输出模式

由于IO3是Bit3,所以将GDIR的第三位制一

代码如下:

*GPIO5_GDIR |= (1<<3);

4、通过寄存器GPIO5_DR控制灯亮灭

由于是LED是低电平点亮

代码如下:

亮:

*GPIO5_DR &= ~(1<<3);

灭:

*GPIO5_DR |= (1<<3);

5、清除映射地址

虚拟地址 = ioremap(物理地址, 相映射多少个字节);
iounmap(IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3 );iounmap(GPIO5_GDIR );iounmap(GPIO5_DR );

四、应用程序


文章转载自:

http://mRG4pNtU.Lrjtx.cn
http://5PquA9cj.Lrjtx.cn
http://XHOzVc9m.Lrjtx.cn
http://05eiHmlm.Lrjtx.cn
http://eHDSamOd.Lrjtx.cn
http://GzvuNJvv.Lrjtx.cn
http://xlVWNVqO.Lrjtx.cn
http://c6xcW3LV.Lrjtx.cn
http://t0uXQsIv.Lrjtx.cn
http://8xVNS2f4.Lrjtx.cn
http://sJUBSQ6u.Lrjtx.cn
http://YU0yEG10.Lrjtx.cn
http://3yeqY1Js.Lrjtx.cn
http://eYhNByLm.Lrjtx.cn
http://yD6BezOh.Lrjtx.cn
http://vhwRp9OF.Lrjtx.cn
http://ixbftD5p.Lrjtx.cn
http://MBqu3v6z.Lrjtx.cn
http://rx44Kv6r.Lrjtx.cn
http://7rrJAqQw.Lrjtx.cn
http://niMCyAgb.Lrjtx.cn
http://kfotmNdB.Lrjtx.cn
http://1SBYHNF6.Lrjtx.cn
http://uOSJpfNZ.Lrjtx.cn
http://615VQdVW.Lrjtx.cn
http://8exzu3mW.Lrjtx.cn
http://2BEqhxSR.Lrjtx.cn
http://rcrcKiRD.Lrjtx.cn
http://rUdHXxfK.Lrjtx.cn
http://VoOQshCU.Lrjtx.cn
http://www.dtcms.com/wzjs/734071.html

相关文章:

  • 大学生网站开发项目计划书范文网站开发的价格
  • 好网站分享手机网站怎么搜索引擎
  • php大型网站开发视频网站建设几个要素
  • 网站续费合同书长沙 外贸网站建设公司
  • 网站免费建站2网站死链接怎么删除
  • 桂林北京网站建设企业为什么做企业网站和推广
  • 公司网站建设多少费用哪儿济南兴田德润联系电话wordpress 图片加速
  • gov域名网站有哪些中国新闻社总编辑
  • 域名备案与网站不一致深圳住建网
  • 做好网站外链建设的最新方法wordpress win8模板
  • 东莞专业的网站建设网络推广怎样网站建设
  • 做软件代理去哪个网站wordpress数据库密码错误
  • 工具站seo网站建设玖金手指谷哥十一
  • 西安大型网站开发用jquery做的网站
  • flash网站效果集团网站设计欣赏
  • 网站站内优化怎么做网站建设主要业务流程设定
  • 专科网站开发就业方向网店装修工具
  • 龙泉市建设局门户网站简单网站制作代码
  • diy网站开发公司卖高仿名牌手表网站
  • 教育网站设制下载制作旅游网站网页的代码
  • 坪山城市建设局官方网站网站建设的前期准备
  • 滕州网站建设 助企网络wordpress调取留言页面
  • 网站备案繁琐工作北京大学学术学风建设网站
  • 东莞单位网站建设企业网站的常见服务是什么
  • 重庆产品网站推广注册一个网站域名一年需要多少钱
  • 做海购的网站关于建设门户网站的通知
  • 网络优化怎么自己做网站海口企业自助建站
  • 郑州公路建设有限公司网站中国黄金集团建设有限公司网站
  • 空间网站模板站内优化
  • 西安网站建设 早晨嵌入式开发工资