GM8180_gpio内核模块调试
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <stdlib.h>
#include "gpio.h"
struct gpio_params gmm;
int gpid =-1;
void main(int argc,char *argv[])
{
char filename[20];
int i,k;
gpid = open("/dev/gpio", O_RDWR);
if (!gpid)
{
printf("GPIO initial fail\n");
}
gmm.ctrl_pin = 0xc0; // choose GPIO7 pin
gmm.data_direct = 0xc0; //set as output pin
if(ioctl(gpid, GPIO_SET_DATA_DIRECT,&gmm))
printf("GPIO_SET_DATA_DIRECT failed\n");
for(i=0;i<10;i++)
{
gmm.data_out = i%2==0?0x80:0x40;
if(ioctl(gpid, GPIO_SET_DATA_OUTPUT,&gmm))
printf("GPIO_SET_DATA_OUTPUT failed\n");
printf("%d\n",i);
usleep(500000);
}
close(gpid);
return ;
}
//gpio.h
#define _GM8180_Platform
struct gpio_params {
u_int group;
u_int ctrl_pin;
u_int data_out;
u_int data_in;
u_int int_clear;
u_int data_direct;
u_int int_enable;
u_int int_trigger;
u_int int_both;
u_int int_riseneg;
} gpio_params;
//Modify By Ken.Hsieh
#ifdef _GM8120_Platform
#define GPIO_SET_DATA_OUTPUT 3
#define GPIO_READ_DATA_INPUT 4
#define GPIO_SET_DATA_DIRECT 5
#define GPIO_SET_INT 6
#define GPIO_SET_INT_FUNC 7
#define GPIO_CLEAR_INT 8
#endif
#ifdef _GM8180_Platform
#define IOC_MAGIC 'g'
#define GPIO_SET_DATA_OUTPUT _IOWR(IOC_MAGIC, 8, gpio_params)
#define GPIO_READ_DATA_INPUT _IOWR(IOC_MAGIC, 9, gpio_params)
#define GPIO_SET_DATA_DIRECT _IOWR(IOC_MAGIC, 10, gpio_params)
#define GPIO_SET_INT_FUNC _IOWR(IOC_MAGIC, 11, gpio_params)
#define GPIO_SET_INT _IOWR(IOC_MAGIC, 12, gpio_params)
#define GPIO_CLEAR_INT _IOWR(IOC_MAGIC, 13, gpio_params)
#endif
//makefile
LINUX_SRC := /usr/src/arm-linux-2.6/linux-2.6.14-fa
CC = arm-linux-gcc
STRIP =arm-linux-strip
INCLUDE = -I$(LINUX_SRC)/include/
INCLUDE += -I/usr/src/arm-linux-2.6/module/GPIO
TARGET1=gpio
all:
$(CC) $(INCLUDE) gpio.c -o $(TARGET1)
$(STRIP) $(TARGET1)
clean:
rm -f gpio
GM8180_gpio内核模块调试的更多相关文章
- Linux内核调试方法总结【转】
转自:http://my.oschina.net/fgq611/blog/113249 内核开发比用户空间开发更难的一个因素就是内核调试艰难.内核错误往往会导致系统宕机,很难保留出错时的现场.调试内核 ...
- Linux驱动设计—— 驱动调试技术
参考博客与书籍: <Linux设备驱动开发详解> <Linux设备驱动程序> http://blog.chinaunix.net/uid-24219701-id-2884942 ...
- 【转】Linux内核调试方法总结
目录[-] 一 调试前的准备 二 内核中的bug 三 内核调试配置选项 1 内核配置 2 调试原子操作 四 引发bug并打印信息 1 BUG()和BUG_ON() 2 dump_sta ...
- Linux网络文件系统的实现与调试
NFS协议 NFS (网络文件系统)不是传统意义上的文件系统,而是访问远程文件系统的网络协议.整个NFS服务的TCP/IP协议栈如下图所示,NFS是应用层协议,表示层是XDR,会话层是RPC,传输层同 ...
- Linux内核调试方法总结
Linux内核调试方法总结 一 调试前的准备 二 内核中的bug 三 内核调试配置选项 1 内核配置 2 调试原子操作 四 引发bug并打印信息 1 BUG()和BUG_ON() 2 ...
- Linux 系统内核的调试
http://www.ibm.com/developerworks/cn/linux/l-kdb/index.html 本文将首先介绍 Linux 内核上的一些内核代码监视和错误跟踪技术,这些调试和跟 ...
- NFS (网络文件系统)
NFS (网络文件系统) https://www.cnblogs.com/wahaha02/p/9559345.html Linux网络文件系统的实现与调试 NFS协议 NFS (网络文件系统)不是传 ...
- Linux内核模块驱动加载与dmesg调试
因为近期用到了Linux内核的相关知识,下面随笔将给出内核模块的编写记录,供大家参考. 1.运行环境 Ubuntu 版本:20.04 Linux内核版本:5.4.0-42-generic gcc版本: ...
- linux 内核分析+使用SystemTap调试新增内核模块
http://blog.chinaunix.net/uid/14528823/list/1.html?cid=189394
随机推荐
- django xadmin 集成DjangoUeditor富文本编辑器
本文档记录自己的学习历程! 介绍 Ueditor HTML编辑器是百度开源的在线HTML编辑器,功能非常强大 额外功能 解决图片视频等无法上传显示问题 Ueditor下载地址 https://gith ...
- GitHub For Beginners: Don’t Get Scared, Get Started
It's 2013, and there's no way around it: you need to learn how to use GitHub.2 Why? Because it's a s ...
- Mysql编译安装及优化
采取编译安装的方法,其好处为:编译安装与平台无关,安装的MySQL目录独立,维护起来方便,而且拥有更好的性能. 环境:CentOS release 6.9 (Final) x86_64 1)下载my ...
- Sonar 常用代码规则整理(二)
摘要:公司部署了一套sonar,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分析,避免再次出现类似问题. 作者原创技术文章,转载请注明出处 ============ ...
- VBoxManage命令速记
1.IDE控制器创建:VBoxManage storagectl testvm --name "IDE Controller" --add ide卸载VBoxManage stor ...
- 看图说话,P2P 分享率 90% 以上的 P2P-CDN 服务,来了!
事情是这样的:今年年初的时候,公司准备筹划一个直播项目,在原有的 APP 中嵌入直播模块,其中的一个问题就是直播加速服务的选取. 老板让我负责直播加速的产品选型,那天老板把我叫到办公室,语重心长地说: ...
- Hadoop学习笔记二
一.设置无密码sudo权限,不用在普通用户和root用户间来回切换 chmod u+w /etc/sudoers vim /etc/sudoers #首行添加如下的内容: hadoop ALL=(ro ...
- 代理(Proxy)模式
代理模式的类图如下所示: 客户端想调用的是RealSubject,由于某种考虑或原因,只能直接访问到ProxySubject,再由ProxySubject去调用RealSubject,这就完成了一次代 ...
- ORM规约变更经典案例---mysql军规
先介绍一下<MySQL数据库开发的三十六条军规>,这里只介绍核心的,具体内容大家可以自行百度,这是从底层开发人员到管理者必须知道规范.出自58赶集. 写在前面的话: 总是在灾难发生后,才想 ...
- Selenium_chromedriver与chrome版本映射表(更新至v2)
chromedriver.exe下载地址:http://chromedriver.storage.googleapis.com/index.html chromedriver版本 支持的Chrome版 ...