嵌入式
文章平均质量分 77
keepcode
这个作者很懒,什么都没留下…
展开
-
C语言按键控制led灯和蜂鸣器
循环流水灯和蜂鸣器,按键结束#define rGPJ2CON (*(volatile unsigned long *)0xe0200280) #define rGPJ2DAT (*(volatile unsigned long *)0xe0200284) #define rGPD0CON (*(volatile unsigned long *)0xe02000a0) #define rGPD0D原创 2015-08-16 10:37:17 · 8010 阅读 · 0 评论 -
linux设备模型bus总线
bus-driver-device结构 1)设备是连接到总线上 2)驱动也是连接到总线上 3)设备总是通过总线跟驱动对应起来 内核2.4与2.6区别? 引入设备模型,主要体现在以下几个方面: 1)电源管理 2)跟用户的交互接口 /sys /proc 3)热插拨 4)分类处理 参考: http://www.cnblogs.com/wwang/archive/2010/原创 2015-10-31 21:50:42 · 547 阅读 · 0 评论 -
linux驱动platform平台设备总线
platform总线:是由许多AX2,AHB,APB等总线的总称,是相对于linux操作系统来说的 而AHB,APB,AX2那些是相对于硬件底层来说。 实例: pdev.c #include #include #include #include #include #include #include #include void led_dev_release(struc原创 2015-10-31 21:57:07 · 624 阅读 · 0 评论 -
linux驱动ioctl
ioctl user系统调用 #include int ioctl(int fd, int cmd, ...); kernel驱动 int led_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) #include #include #include #inc原创 2015-10-25 13:18:55 · 636 阅读 · 0 评论 -
linux驱动杂项设备类misc
misc(杂项设备类) struct miscdevice { int minor; // 次设备号 const char *name; // 设备名 const struct file_operations *fops; // 操作方法 struct list_head list; struct device *parent; // 私有指针 struct de原创 2015-10-31 22:08:09 · 539 阅读 · 0 评论 -
linux驱动按键控制led灯
IO端口操作 1.基本概念 机器的组成: .处理器 .总线 .IO外设 2.IO映射及使用 1)申请IO struct resource *request_mem_region(resource_size_t start,resource_size_t n,const char *name) void release_mem_region(resource_s原创 2015-10-25 14:01:21 · 4010 阅读 · 0 评论 -
linux驱动设备号的注册
创建设备号,分2种,静态注册和动态注册(不是自己指定设备号)。 静态: 注册 int register_chrdev(unsigned int major, const char *name,const struct file_operations *fops) 传参: major: 主设备号 name: 设备名 fops:指向驱动操作方法 返回值: 0:成功 非0:失败原创 2015-10-24 23:56:34 · 665 阅读 · 0 评论 -
linux驱动的read和write
内核中的memcpy---copy_from_user和copy_to_user: 虽然说内核中不能使用C库提供的函数,但是内核也有一个memcpy的函数,用法跟C库中的一样。 下面用用file_operations中的read和write模拟两件事: 1)从内核态通过read函数读取数据到用户态。 2)从用户态通过write函数读取数据到内核态。 实例: driver.c原创 2015-10-25 11:48:15 · 651 阅读 · 0 评论 -
S5PV210的u-boot移植
1. 解压: tar jxvf android_uboot_smdkv210.tar.bz2 进入目录: cd u-boot-samsung-dev 2. 安装交叉编译器: vi Makefile 在 147 行,我们发现 u-boot 使用 arm-2009q3 编译器: 143 ifeq ($(ARCH),arm) 144 #CROSS_COMPILE =原创 2015-10-17 14:12:11 · 444 阅读 · 0 评论 -
Boa服务器移植
1.下载Boa源码 解压:# tar xzf boa-0.94.13.tar.gz 2.安装需要工具bison,flex sudo apt-get install bison flex 否则会出现如下错误 make: yacc:命令未找到 make: *** [y.tab.c] 错误 127 make: lex:命令未找到 make: *** [原创 2015-10-17 17:02:10 · 328 阅读 · 0 评论 -
S5PV210的busybox移植
文件系统的"构建" .类型 1.windows系统 ntfs fat32 2.linux系统 ext2/3/4 3.net file system nfs 4.virt file system romdisk / ramdisk 5.嵌入式文件系统(flash) cramfs / jffs/jffs2/jffs3 / yaffs/yaffs2/yaffs3 .基本结原创 2015-10-17 14:52:08 · 563 阅读 · 0 评论 -
S5PV210的kernel移植
1、先熟悉源码目录结构 2、然后通过源码分析,熟悉kernel执行过程 3、尝试进行修改添加kernel kernel移植初体验 1)进入源码目录,在linux下解压,因为在windows下解压,会出现相同文件提示覆盖那些,因为windows不区分大小写,而且还有一些链接文件在。 2)修改 Makefile 中的体系结构 ARCH 和交叉编译器前缀 CROSS_COMPILE vi原创 2015-10-17 14:19:26 · 1181 阅读 · 0 评论 -
在uboot里烧写系统
需要三个系统文件 rootfs.img uImage u-boot.bin // 一定要烧写flash的0x0地址 //u-boot和zimage要配套。要不然可能开不了机 将linux三个系统文件烧写到flash的三个区域 1. 安装windows下的tftp服务 因为uboot里有tftp的客服端 .打开tftpd32 .brower ->原创 2015-08-06 23:05:46 · 837 阅读 · 0 评论 -
linux基础驱动
linux高级驱动 1.linux设备模型 .bus (platform-bus) .device .driver 2.具体接口驱动 1.led(基于"platform总线"的"杂项设备类"的"字符设备驱动") 2.adc 3.lcd(framebuffer子系统) 4.ts (input子系统 + i2c总线模型) 5.. 3.块设备/网络设备(dm9000原创 2015-10-24 22:54:24 · 361 阅读 · 0 评论