ARM
文章平均质量分 77
gdliweibing
这个作者很懒,什么都没留下…
展开
-
TFTP 的安装、配置
本文针对的是在虚拟机VM上的Fodera操作系统进行的TFTP的安装和配置(其他工作平台和环境行不行,可以试一下),这主要用于嵌入式的开发板。TFTP协议是简单的文件传输协议,适合目标板BootLoader的使用。TFTP文件传输基于UDP协议。TFTP服务器作为工作于宿主机上的软件,主要提供对目标机的主要映像文件的下载工作。 1 安装TFTP查看TFTP组件是否安装r原创 2013-05-24 08:46:57 · 4791 阅读 · 0 评论 -
5-4 基于内核定时器的按键驱动实例
5-4 基于内核定时器的按键驱动实例1、驱动程序1.1驱动代码\polling_key\completion\driver\poll_key_drv.c#include #include #include #include #include #include #include #include #include #include #include原创 2013-07-13 09:19:28 · 907 阅读 · 0 评论 -
5-5 Linux内存、IO与实例
5-5 Linux内存、IO与实例讲解什么是物理地址什么是虚拟地址物理地址与虚拟地址的关系 Linux内存分配的常用方法及区别I/O端口和I/O内存访问流程 地址类型物理地址和页内存映射和页结构页表 1、用户虚拟地址(2^32) 1.1用户空间程序所有能看到的常规地址 1.2每个进程都有自己的虚拟空间2、物理地址:该地址在原创 2013-07-13 11:15:10 · 1669 阅读 · 0 评论 -
6-1 misc设备驱动开发与实例
6-1 misc设备驱动开发与实例1、实例1.1驱动程序 (1)驱动源代码\beep_misc\driver\beep_misc.c: #include #include #include #include #include #include #include #include #include #include #includ原创 2013-07-13 11:46:08 · 584 阅读 · 0 评论 -
1-2:hello World、带传入参数的Hello World模块程序设计(编译、加载、查看、卸载驱动练习)
申嵌Linux驱动开发基础班1-2 Linux模块加载实验演示编译、加载、查看、卸载驱动 在所有操作之前,把E:\S8\【申嵌视频】嵌入式Linux驱动开发基础班\src中的hello这个文件夹拷在linux中的/home/lwb/drive目录下一、不带参数的驱动。1、 进入hello这个文件夹,该目录下有hello.c和Makefile两个文件。2、 #make原创 2013-06-30 22:51:50 · 1055 阅读 · 0 评论 -
2-3 BEEP 驱动程序开发(包含驱动和测试程序)
1、电路图 2、Linux-2.6.32.2内核重要头文件目录:linux-2.6.32.2/arch/arm/mach-s3c2410/include/mach/regs-gpio.hlinux-2.6.32.2/arch/arm/mach-s3c2410/include/mach/gpio-nrs.hlinux-2.6. 32.2/arch/arm/plat-s3c2转载 2013-07-01 22:01:41 · 3032 阅读 · 0 评论 -
2-1、2-2字符设备驱动基本结构
申嵌Linux驱动开发基础班2-1字符设备驱动开发1 2-1字符设备驱动程序基本结构字符设备开发的基本步骤1、确定主设备号和次设备号2、实现字符驱动程序实现file_operations结构体实现初始化函数,注册字符设备实现销毁函数,释放字符设备实现字符设备其他基本成员函数 3、创建设备文件节点相关知识点:一、设备号的概念和分配、释放:1、转载 2013-07-01 11:41:03 · 848 阅读 · 0 评论 -
2-4 LED驱动实例
2-4 LED驱动实例1、实现LED驱动测试案例及要求:led_test on //对应四个LED全亮led_test off // 对应四个LED全灭led_test run // 运行跑马灯实验led_test shine //4个LED灯全灭、全亮交替闪烁 led_test 1 on //对应LED1点亮led_test 1 off /转载 2013-07-03 08:47:08 · 2075 阅读 · 0 评论 -
Linux Platform Device and Driver(以I2C为例)
作者 : YiLi Xie yili.xie@gmail.com日期 : 2010-1-13欢迎转载,请注明出处 从Linux 2.6 起引入了一套新的驱动管理和注册机制 :Platform_device 和 Platform_driver 。Linux中大部分的设备驱动,都可以使用这套机制 , 设备用 Platform_device表示转载 2013-07-18 17:22:51 · 2034 阅读 · 0 评论 -
2-6案列分析: memdev虚拟内存设备驱动
2-6案列分析: memdev虚拟内存设备驱动1、memdev虚拟内存字符设备:在驱动中分配一片指定大小的内存空间,作为虚拟字符设备。并在驱动中提供只对该片内存的读写、控制和定位函数seek,以供用户空间的进程能通过Linux系统调用访问这片内存实例一:2、测试源代码: 2.1 globalmem_test.c代码#include #include int main(){ F转载 2013-07-03 17:36:41 · 1575 阅读 · 0 评论 -
3-1并发与竞态控制
防止竞态的机制有:semaphore(信号量),spinlock(自旋锁),completion(完成量),原子操作等原子操作的意义:操作的不可分割。 1、 什么是并发?1.1多个执行单元同时、并行被执行。1.2竞态:1.2.1并发的执行单元对共享资源的访问则很容易导致竞态。1.2.2 共享资源:硬件资源,软件上的全局变量、静态变量等。2、linux内核中,什原创 2013-07-05 11:32:09 · 827 阅读 · 0 评论 -
5-2基于中断的按键驱动实例
基于中断的按键驱动实例1、电路图如下:2、驱动程序2.1驱动源代码int_key\completion\driver\int_key_drv.c#include #include #include #include #include #include #include #include #include #include #include原创 2013-07-12 15:10:57 · 914 阅读 · 0 评论 -
4-2非阻塞型IO
4-2非阻塞型IO1、阻塞方式是文件读写操作的默认方式,但应用程序员可通过使用O_NONBLOCK标志来人为的设置读写操作为非阻塞方式(该标志定义在中,在打开文件时指定)。2、如果设置了O_NONBLOCK标志,read和write的行为是不相同的。如果进程在没有数据就绪时,调用了read,或者在缓冲区没有空间时调用了write,系统只是简单地返回-EAGAIN,而不会阻塞进程。3原创 2013-07-11 15:15:55 · 708 阅读 · 0 评论 -
5-1 Linux内核中断机制(中断的申请和释放、中断低半部tasklet队列和workqueue队列、中断共享的实现)
5-1 Linux内核中断机制 中断处理流程 中断源 设备驱动中中断处理例程的实现。内核中实现计时、延时操作的函数。1、 什么是中断?2、 中断的分类:2.1按中断源分类:内部中断、外部中断2.2按中断是否可屏蔽分类:可屏蔽中断、不可屏蔽中断(NMI)2.3按中断入口跳转方法的不同分类:向量中断、非向量中断。3、申请和释放IRQ原创 2013-07-11 17:35:06 · 1464 阅读 · 0 评论 -
arm-linux-gcc 交叉编译工具的建立
ARM-arm-linux-gcc交叉编译工具的建立 1、 把arm-linux-gcc-4.3.2.tgz压缩包放在 XP和Linux的共享目录下2、 解压arm-linux-gcc-4.3.2.tgz到根目录命令如下:#tar xvzf arm-linux-gcc-4.3.2.tgz -C /通过上面命令解压到 usr/loca转载 2013-05-28 09:50:17 · 834 阅读 · 0 评论 -
u_boot 的构建和并烧写到开发板
u_boot的构建和下载到开发板1、把u_boot的压缩包u-boot-2010.03-embedclub-201111.tar.gz放在linux目录下2、对压缩包u-boot-2010.03-embedclub-201111.tar.gz进行解压到/home/lwb目录下 命令:#tar xvzf u-boot-2010.03-embedclub-201111.ta转载 2013-05-28 20:39:46 · 4984 阅读 · 0 评论 -
用tftp的方式在u_boot下 烧写uImage内核
用u_boot进行下载 uImage (一种kernel镜像文件)首先,把编译好的uImage文件放在/tftpboot/目录下。用网线把开发板和电脑连上。但PC上的网卡显示是没连接的,这一点是没有关系的,go on1、u_boot的命令行[u_boot@SMDK2440A]# printenv (打印变量)并查看是否需要设置环境变量结果如下:[u-boot@SM转载 2013-05-28 20:43:09 · 12465 阅读 · 0 评论 -
编译内核和烧写到开发板
编译内核和烧写到开发板 1、内核源代码的获取:从社区下载内核,完成移植.http://www.kernel.org/pub/linux/kernel/v2.6/2、拷贝内核源码包至宿主机.借助XP和Linux的共享目录,从Windows中复制内核3、解压内核:#tar xvzf linux-2.6.32.2.tar.gz -C /home/lwb 解转载 2013-05-28 21:25:33 · 7351 阅读 · 0 评论 -
配置NFS服务器和NFS客户端
配置NFS服务器(主要用来做嵌入式Linux挂接NFS根文件系统,适合产品的开发调试用)要点:1、 NFS服务器的配置文件2、 NFS服务器的启动和停止3、 利用exportfs命令修改设置 具体步骤:1、查看是否已安装nfs-utils 命令:#rpm -q nfs-utils2、没安装的话 使用命令:#rpm -ivh原创 2013-05-29 16:48:36 · 2563 阅读 · 0 评论 -
用tftp在u_boot下烧写uImage到Nand Flash
用tftp在u_boot下烧写uImage到Nand Flash(参考申嵌入的)将uImage拷贝至/tftpboot/ 在SecureCRT中依次输入:SMDK2440A>tftp 0x30008000 uImage //把uImage 写到内存的0x3000 8000开始的单元里 掉电后就没有的啦SMDK2440A>nand erase 60000 500000转载 2013-05-29 15:39:22 · 4141 阅读 · 5 评论 -
利用NFS服务挂载NFS根文件系统
嵌入式Linux根文件系统,简单地说,根文件系统就是一种目录结构注意根文件系统和普通的文件系统的区别。 常见的Linux根文件系统有:(1)NFS(网络根文件系统),主要用于 产品调试阶段 。(2)YAFFS,主要用于产品的发布阶段。大量生产直接写入NandFlash。 搭建NFS根文件系统这个过程包括1、设置NFS共享目录 2、启动NFS服务3原创 2013-05-29 15:56:47 · 10463 阅读 · 1 评论 -
在YAFFS根文件系统性烧写应用程序
在YAFFS根文件系统性烧写应用程序1、 打开secureCRT开发板的跳线打在NandFlash上,上电,进入u_boot界面2、 修改并保存环境变量[u-boot@SMDK2440A]#setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0[u-boot@SMDK2原创 2013-06-04 15:57:27 · 861 阅读 · 0 评论 -
4-3 等待队列与poll驱动实例讲解(3个实例要好好看看)
4-3 等待队列与poll驱动实例讲解(3个实例要好好看看) 内容待续……原创 2013-07-11 15:17:50 · 745 阅读 · 0 评论 -
4-1阻塞型IO
阻塞型IO主要内容有:进程睡眠和唤醒方法阻塞型I/O的实现方法Select系统调用的实现方法 1、 休眠的意义从调度器的运行队列à某个等待队列直到等到某个事件发生,在从等待队列返回到运行队列。2、 如何将进程安全地进入休眠状态 不能再原子上下文进行休眠 休眠时,对外界一无所知,进程必修重新检测等待条件 进程只有确保原创 2013-07-11 15:10:50 · 704 阅读 · 0 评论 -
3-2信号量驱动实例
实例一:没有信号量的程序1、 nosem\driver\ nosem.c驱动源代码#include #include #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2013-07-05 12:07:39 · 599 阅读 · 0 评论