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

网站建设开发免费咨询做外贸的数据网站有哪些

网站建设开发免费咨询,做外贸的数据网站有哪些,如果做网站报价,外贸网站建设软件有哪些【Linux】【驱动】第一个相对完整的驱动编写 续1.驱动部分的代码2 app 代码3 操作相关的代码 续 这个章节会讲述去直接控制一个GPIO#xff0c;高低电平。 因为linux不允许直接去操作寄存器#xff0c;所以在操作寄存器的时候就需要使用到函数#xff1a;ioremap 和iounma… 【Linux】【驱动】第一个相对完整的驱动编写 续1.驱动部分的代码2 app 代码3 操作相关的代码 续 这个章节会讲述去直接控制一个GPIO高低电平。 因为linux不允许直接去操作寄存器所以在操作寄存器的时候就需要使用到函数ioremap 和iounmap 来作为寄存器的声明和注销 ioremap 做为地址的声明如下图使用 CCM_CCGR1 ioremap(0x20C406C, 4); iounmap 作为取消声明。 iounmap(CCM_CCGR1); 1.驱动部分的代码 在函数的前面对寄存器的名称进行了说明misc_init 中实现对GPIO的配置 使能 GPIO5设置 GPIO5_IO03 用于 GPIO设置 GPIO5_IO03 作为 output 引脚在misc_write 中实现了对GPIO的控制 PS此代码还有一些不完善的地方所以在实际的使用中可能会出现一些异常带之后改正 #include linux/init.h #include linux/module.h #include linux/miscdevice.h #include linux/fs.h #include linux/uaccess.h #include linux/io.hunsigned int *vir_gpio5_dr ;static volatile unsigned int *CCM_CCGR1 ; static volatile unsigned int *IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3; static volatile unsigned int *GPIO5_GDIR ;static volatile unsigned int *GPIO5_DR ;int misc_open(struct inode *inode, struct file *file) {printk(misc_open\n);return 0; }int misc_release(struct inode *inode, struct file *file) {printk(misc_release\n);return 0;}ssize_t misc_read(struct file *file,char __user *ubuf,size_t size,loff_t *loff_t) {char kbuf[512] haha;if(copy_to_user(ubuf,kbuf,strlen(kbuf))!0){printk(error copying\n);return -1;}return 0;}ssize_t misc_write(struct file *file,const char __user *ubuf,size_t size,loff_t *loff_t) {char kbuf[512] {0}; if(copy_from_user(kbuf,ubuf,size)! 0){printk(misc_write error\n);return -1;}printk(kbuf %d\n,kbuf[0]);if(kbuf[0] 1){*GPIO5_DR |(13);//设置GPIOprintk( kbuff 1\n);}else if(kbuf[0] 0){*GPIO5_DR ~(13);//设置GPIOprintk( kbuff 0\n);}return 0;}struct file_operations misc_fops {.owner THIS_MODULE,.open misc_open,.release misc_release,.read misc_read,.write misc_write };struct miscdevice misc_dev {.minor MISC_DYNAMIC_MINOR,.name hello_misc,.fops misc_fops };//drivers for init static int misc_init(void) {unsigned int val;int ret 0;ret misc_register(misc_dev);if(ret0) {printk(misc_register is failed\n);return -1;}printk(misc registe is succeed \n);//vir_gpio5_dr ioremap(GPIO5_DR,4);CCM_CCGR1 ioremap(0x20C406C, 4);IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3 ioremap(0x2290014, 4);GPIO5_GDIR ioremap(0x020AC000 0x4, 4);GPIO5_DR ioremap(0x020AC000 0, 4);*CCM_CCGR1 | (330);//使能 GPIO5//设置 GPIO5_IO03 用于 GPIOval *IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3;val ~(0xf);val | (5);*IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3 val;//设置 GPIO5_IO03 作为 output 引脚*GPIO5_GDIR | (13); /*if(vir_gpio5_drNULL){printk(vir_gpio5_dr ioremap error );return -EBUSY;}*/printk(GPIO5_DR ioremap ok\n); return 0; }//drivers for exit static void misc_exit(void) { //misc_deregister(misc_dev);iounmap(CCM_CCGR1);iounmap(IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER3);iounmap(GPIO5_GDIR);iounmap(GPIO5_DR);printk(misc exit \n);}module_init(misc_init); module_exit(misc_exit);MODULE_LICENSE(GPL);2 app 代码 通过atoi 函数实现对命令框指令的读写通过write来是线对buf数字的传递 #include stdio.h #include unistd.h #include sys/types.h #include sys/stat.h #include fcntl.h #include stdlib.h #include string.h/** description : main主程序* param - argc : argv数组元素个数* param - argv : 具体参数* return : 0 成功;其他 失败*/ int main(int argc, char *argv[]) {int fd;char buf[64] {0};//fd open(argv[1], O_RDONLY);fd open(/dev/hello_misc, O_RDWR);if(fd 0){perror(open error);return fd;}buf[0] atoi(argv[1]);write(fd,buf,sizeof(buf));close(fd);return 0; }3 操作相关的代码 编译app 代码 arm-buildroot-linux-gnueabihf-gcc -o miscApp miscApp.c编译驱动代码 make 清除驱动代码 make clean 挂载nfs mount -t nfs -o nolock,vers3 192.168.5.15:/home/book/nfs_rootfs /mnt删除文件 rm -f chrdevbase.ko传递文件将misc.ko 传到 /home/book/nfs_rootfs/ cp misc.ko /home/book/nfs_rootfs/允许PrintK echo 7 4 1 7 /proc/sys/kernel/printk安装驱动 insmod misc.ko列出驱动列表 lsmod移除驱动 rmmod misc给驱动传递数据1 ./miscApp 1
http://www.hkea.cn/news/14268785/

相关文章:

  • 开淘宝店怎么做充值网站wordpress logo 标签
  • 海丰网站建设网页制作是干嘛的
  • 湖南网站设计费用wordpress设置会员有效期
  • html5 wap网站模板建设网站是什么
  • 重庆网站备案快html5网站建设企业
  • 用花生壳做映射的网站需要备案青海制作网站的公司
  • 网站建设公司盈利湟中县公司网站建设
  • 网站安全评估怎么做wordpress博客程序
  • 深圳去聋哑做义工申请网站泰安人才网最新招聘信息网
  • 免费行情软件app网站mnu一个服务器可以备案几个网站
  • 域名 a记录 手机网站如何在电脑登录wordpress
  • 网站首页导航栏怎么做有名的软件开发公司
  • 大学专业宣传网站开发课题意义如何设计一个网页步骤
  • 印刷网站建设 优帮云网站注册流程
  • 越秀区网站建设公司搜索引擎案例分析结论
  • 做设计找图有哪些网站怎么生成域名做网站
  • 网站制作编辑软件ipad 建网站
  • 网站宽度 超宽设计模板网站
  • 地税网站如何做税种确认微信公众号网站制作
  • 天津建设网站分包服务卡东营市城乡建设信息网
  • 外语网站建设目的静态网页框架用什么软件做
  • 为网站添加注册功能黑龙江省建设安全协会网站
  • 网站开发师招聘山东建设厅网站首页
  • 微信公众号登录wordpress网站吗网页设计免费模板后台
  • 服务器做jsp网站教程视频如何在网上推广网站
  • 网站广告收入如何缴文化事业建设费wordpress非代码方式添加备案号
  • 诚信网站建设软件开发外包要多少钱
  • 有哪些好用的设计网站有哪些内容焦作做网站
  • 阿玛尼手表官方网站查询正品网站建设用素材
  • 重庆网站快速排名优化wordpress如何汉化