资源简介
《嵌入式Linux应用程序开发标准教程》(第2版全)[高清版]附源码.rar
代码片段和文件信息
/* gpio_drv.c */
#include
#include
#include
#include
#include /* printk() */
#include /* kmalloc() */
#include /* everything... */
#include /* error codes */
#include /* size_t */
#include
#include
#include
#include
#include
#include
#include
#include
#include “gpio_drv.h“
static int major = 0;
module_param(major int 0);
void s3c2410_gpio_cfgpin(unsigned int pin unsigned int function)
{
unsigned long base = S3C2410_GPIO_base(pin);
unsigned long shift = 1;
unsigned long mask = 0x03;
unsigned long con;
unsigned long flags;
if (pin < S3C2410_GPIO_BANKB)
{
shift = 0;
mask = 0x01;
}
mask <<= (S3C2410_GPIO_OFFSET(pin) << shift);
local_irq_save(flags);
con = __raw_readl(base + 0x00);
con &= ~mask;
con |= function;
__raw_writel(con base + 0x00);
local_irq_restore(flags);
}
void s3c2410_gpio_pullup(unsigned int pin unsigned int to)
{
unsigned long base = S3C2410_GPIO_base(pin);
unsigned long offs = S3C2410_GPIO_OFFSET(pin);
unsigned long flags;
unsigned long up;
if (pin < S3C2410_GPIO_BANKB)
{
return;
}
local_irq_save(flags);
up = __raw_readl(base + 0x08);
up &= ~(1 << offs);
up |= to << offs;
__raw_writel(up base + 0x08);
local_irq_restore(flags);
}
void s3c2410_gpio_setpin(unsigned int pin unsigned int to)
{
unsigned long base = S3C2410_GPIO_base(pin);
unsigned long offs = S3C2410_GPIO_OFFSET(pin);
unsigned long flags;
unsigned long dat;
local_irq_save(flags);
dat = __raw_readl(base + 0x04);
dat &= ~(1 << offs);
dat |= to << offs;
__raw_writel(dat base + 0x04);
local_irq_restore(flags);
}
int gpio_open (struct inode *inode struct file *filp)
{
s3c2410_gpio_pullup(S3C2410_GPB0 1); /* BEEP*/
s3c2410_gpio_pullup(S3C2410_GPF4 1); /* LED D12 */
s3c2410_gpio_pullup(S3C2410_GPF5 1); /* LED D11 */
s3c2410_gpio_pullup(S3C2410_GPF6 1); /* LED D10 */
s3c2410_gpio_pullup(S3C2410_GPF7 1); /* LED D9 */
s3c2410_gpio_cfgpin(S3C2410_GPB0 S3C2410_GPB0_OUTP);
s3c2410_gpio_cfgpin(S3C2410_GPF4 S3C2410_GPF4_OUTP);
s3c2410_gpio_cfgpin(S3C2410_GPF4 S3C2410_GPF5_OUTP);
s3c2410_gpio_cfgpin(S3C2410_GPF4 S3C2410_GPF6_OUTP);
s3c2410_gpio_cfgpin(S3C2410_GPF4 S3C2410_GPF7_OUTP);
return 0;
}
ssize_t gpio_read(struct file *file char __user *buff size_t count loff_t *offp)
{
return 0;
}
ssize_t gpio_write(struct file *file const char __user *buff size_t count loff_t *offp)
{
return 0;
}
int switch_gpio(unsigned int pin unsigned int swt)
{
if (!((pin <= S3C2410_GPF7) && (pin >= S3C2410_GPF4)) && (pin != S3C2410_GPB0))
{
printk(“Unsupp
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5412 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-3-2\gpio_drv.c
文件 674 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-3-2\gpio_drv.h
文件 870 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-3-2\gpio_test.c
文件 394 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-3-2\Makefile
文件 11829 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-6\butt_drv.c
文件 936 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-6\butt_drv.h
文件 1248 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-6\butt_test.c
文件 674 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-6\gpio_drv.h
文件 373 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-6\Makefile
文件 384 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-7\Makefile
文件 943 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-7\test.c
文件 3021 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-7\test_drv.c
文件 460 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-7\test_drv_load
文件 165 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-7\test_drv_unload
文件 1132 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-1-1\copy_file.c
文件 230 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-1-1\Makefile
文件 1166 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-2-1\lock_set.c
文件 429 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-2-1\Makefile
文件 474 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-2-1\read_lock.c
文件 495 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-2-1\write_lock.c
文件 244 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-3-1\Makefile
文件 2515 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-3-1\multiplex_select.c
文件 241 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-3-2\Makefile
文件 1821 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-3-2\multiplex_poll.c
文件 646 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\reader\com_reader.c
文件 304 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\reader\Makefile
文件 3057 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\reader\uart_api.c
文件 375 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\reader\uart_api.h
文件 712 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\writer\com_writer.c
文件 302 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\writer\Makefile
............此处省略162个文件信息
相关资源
- linux的arpSpoof源代码加编译好的程序
- linux和win32下通用的互斥锁Mutex封装
- 在Linux下添加系统调用
- 嵌入式零树小波图像编码算法
- ARM&linux嵌入式系统教程每章答案-马忠
- ARM嵌入式系统源程序-游蛇吃豆
- ARM嵌入式系统源程序-井字棋
- Vsftp2.3.4 for linux
- intel_parallel_studio_xe_2013_update2_intel64_
- 最新 socks5-v1.0r11.tar.gz linux代理配置源
- 嵌入式系统复习题_答案
- linux ftp服务器安装包vsftpd-1.1.3-8.i386
- Linux常用Shell脚本珍藏
- Linux运维工程师成长必经之路.pdf
- 基于linux下用c编写的socket通信传输文
- linux rootkit源码
- STM32试题及答案
- linux下shell编程实验报告-考勤系统
- Linux网络编程 第2版带详细目录
- Linux JDK 1.6 1.7 1.8 齐全
- qt-everywhere-opensource-src-5.6.0.tar.gz
- debian-10.4.0-amd64-netinst.iso
- linux Qt4 软键盘
- cuda_9.0.103_384.59_linux.run 百度网盘地址
- cudnn-9.0-linux-x64-v7 百度网盘地址
- linux ov5640驱动源码
- mp3 播放器的linux c代码
- 自己总结的Linux_Shell_脚本讲解+
- linux,windosarm 三版本lcx
- [基于单片机开发板]最经典的28个参考
评论
共有 条评论