自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (3)
  • 收藏
  • 关注

原创 mini6410 Led驱动详解

LED是开发中最常用的状态指示设备,本开发板具有4个用户可编程LED,它们直接与CPU的GPIO相连接,低电平有效(点亮),详细的硬件连接如下表:mini6410开发板上用到的4个LED的硬件资源如下图:要操作所用到的IO口,就要设置它们所用到的寄存器,需要调用一些现成的函数或者宏,在此用到的是readl和writel,它们将直接对相应的寄存器执行读取和写入的操作。在下面的驱动程序

2013-03-27 19:37:02 1093

原创 Kconfig和Makefile

Kconfig和Makefile是浏览内核代码是最为依仗的两个文件,几乎linux内核中的每一个目录下面都有一个Kconfig和Makefile文件,通过Kconfig和Makefile可以让我们了解内核目录下面的结构。 (1)Kconfig结构一个典型的内核配置菜单如下: menu "Network device support" config NETDEVICES bo

2013-03-27 11:20:00 843

原创 linux驱动文件的通用Makefile文件

一般编写完linux驱动程序后都会对其编译,通常有两种方式:一,编译为内核模块;二,编译进内核。这里主要讨论第一种情况,而第二种情况则需要修改相应文件夹下面的Kconfig和makefile文件以及父目录的Kconfig和makefile文件。makefile内容如下:obj-m:=your_module.oKERNELDIR:=/lib/modules/$(shell uname -

2013-03-23 15:39:23 764

原创 Ubuntu12.04 开机后Root用户登录设置

这几天刚刚下载了最新版的ubuntu,可是ubuntu12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录。以普通身份登陆Ubuntu后我们需要做一些修改,普通用户登录后,修改系统配置文件需要切换到超级用户模式,在终端窗口里面输入: sudo -s.然后输入普通用户登陆的密码,回车即可进入 root用户权限模式.然后执行: vi /etc/lightdm/lightd

2013-03-23 15:23:57 727

原创 Linux 平台设备驱动平台设备汇总

Linux中包含有很多的Platform device,但是它们往往分布在不同的文件中,在查看平台设备驱动时往往不知道它到底在哪里,这里我将它汇总一哈,一边以后方便查看!(使用source intsight可以方便的查看每个设备的定义)/* arch/arm/plat-samsung/include/plat/devs.h * * Copyright (c) 200

2013-03-21 09:10:38 683

原创 globalmem虚拟设备实例描述(五)

globalmem中的全局内存变为一个FIFO,只有FIFO中数据的时候,读进程才把数据读出,读后清空;只用当FIFO非满时,写进程才能忘FIFO中写入数据。  #include #include #include #include #include #include #include #include #include #include #in

2013-03-14 19:57:01 608

原创 Allegro制作元件原理图封装

制作原理图封装是,一般按如下规定对其命名电阻:R排阻:RN电容:C电感:L磁珠:FB芯片:U模块:MOD或U晶振:Y三极管:Q或J二极管:D整流二极管:ZD发光二级管:LED连机器:X跳线:J开关:SW测试点:TP固定孔:MH    制作封装过程如下:    在项目管理窗口中,选择原理图库文件*.olb,右击鼠标,选择“New Part”,如下图:      或者选择“Ne

2013-03-11 19:57:11 4394

转载 Linux Socket编程(不限Linux)

我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?

2013-03-02 16:05:53 279

原创 globalmem虚拟设备实例描述(四)

globalmem意味着“全局内存”,在globalmem字符驱动中会分配一个大小为GLOBALMEM_SIZE(4KB)的内存空间,并在驱动中提供对该片内存的读写、控制、和定位函数,以供用户空间的进程通过调用linux系统函数访问这片内存。         本程序是增加了并发控制后的驱动程序,修改globalmem_dev结构体,并在模块初始化函数中初始化信号量,在相应的file_ope

2013-03-02 14:33:07 436

原创 nand 与 nor flash的比较

nand flash:适合大容量数据存储,类似硬盘;nor flash:适合小容量的程序或数据存储,类似小硬盘;sdram:主要用于程序执行时的程序存储、执行或计算,类似内存。区别:nor flash:可以直接执行指令,读取速度较快,写入不太方便,擦除速度较慢。nand flash:读取速度比nor flash略快,但写入、擦除都较快。但可靠性略低,需要做损耗平衡、数据校验

2013-03-01 14:45:51 595

原创 globalmem虚拟设备实例描述(三)

globalmem意味着“全局内存”,在globalmem字符驱动中会分配一个大小为GLOBALMEM_SIZE(4KB)的内存空间,并在驱动中提供对该片内存的读写、控制、和定位函数,以供用户空间的进程通过调用linux系统函数访问这片内存。       如果globalmem包含两个以上的设备,则采用private_data的优势就会集中显现出来,此刻需要使用container_of()函数

2013-02-28 09:43:34 357

原创 globalmem虚拟设备实例描述(二)

globalmem意味着“全局内存”,在globalmem字符驱动中会分配一个大小为GLOBALMEM_SIZE(4KB)的内存空间,并在驱动中提供对该片内存的读写、控制、和定位函数,以供用户空间的进程通过调用linux系统函数访问这片内存。     本驱动程序使用文件私有数据,filp->private_data指向设备结构体,在文件操作函数中使用  struct globalmem_dev

2013-02-28 09:30:34 288

原创 globalmem虚拟设备实例描述(一)

globalmem意味着“全局内存”,在globalmem字符驱动中会分配一个大小为GLOBALMEM_SIZE(4KB)的内存空间,并在驱动中提供对该片内存的读写、控制、和定位函数,以供用户空间的进程通过调用linux系统函数访问这片内存。        设备结构体定义了全局实例:struct globalmem_dev dev; /*设备结构体实例*/ #include #in

2013-02-28 09:11:33 559

原创 Allegro PCB典型设计流程

PCB设计的初学者应该了解PCB设计的整个过程,这样有利于学习PCB设计,一般PCB设计可分为以下三个骤:1、前期准备(1)明确设计目标,规划PCB结构。(2)准备器件原理图库、PCB库和仿真模型库等。2、PCB设计(1)原理图设计PCB设计的最终目标是制作出满足使用要求的PCB电路板,原理图设计为这一目标服务。从某种意义上说,原理图设计是整个PCB设计成功与否的关键。原理

2013-01-28 15:18:15 1428

原创 U-boot编译过程

1,Makefile       在编译U-Boot时,首先执行的就是顶层的Makefile文件,通过顶层的Makefile文件去调用各层子目录下的Makefile文件,最后完成编译。  第一步:修改Makefile1)ARCH=armCROSS_COMPILE = arm-linux-2)添加配置文件zbatp6410_nand_config-ra

2012-10-27 21:18:52 975

原创 嵌入式Linux字符设备驱动程序的主要数据结构

1)struct cdev:在内核中代表一个字符设备驱动(char device,cdev),每一个字符设备驱动都有一个struct cdev结构体变量与之对应,记录该设备驱动的相关信息,主要包括设备号dev_t dev和设备操作函数集const struct file_operations *ops。定义如下: struct cdev { struct kobject kobj;

2012-10-27 20:53:48 1210

原创 Linux中用Eclipse来开发C语言程序,交叉编译ARM嵌入式C语言

一、Eclipse简介      Eclipse是著名的跨平台的集成开发环境(IDE),最初是由IBM公司开发的替代商业软件Visual Age For Jave的下一代开发环境。2001年,IBM将Eclipse贡献给开源社区,现在由Eclipse基金会管理。2003年Eclipse 3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布。2008年6月

2012-02-27 13:32:38 5127

原创 STM8 GPIO 学习(驱动LED、Button)

STM8中GPIO寄存器有:输出寄存器(ODR),输入寄存器(IDR),方向寄存器(DDR),控制寄存器1(CR1)和控制寄存器2(CR2).后面三个寄存器组和可以配置为8种GPIO的模式定义如下:/**  * @brief General Purpose I/Os (GPIO)  */typedef struct GPIO_struct{  __IO uint8_t

2012-02-25 19:33:02 8218 2

原创 STM8L-Discovery开发板

整个板子由两部分构成,液晶屏的左边带USB口的部分是STLINK仿真器,这部分的核心是一块STM32芯片,其内部包含了ST公司未公开的STLINK固件。为了便于用户评估,ST公司已经把这个仿真器通过跳线直接与STM8芯片连接起来了,如果用户不想使用该板载仿真器的话,只需要把仿真器的跳线断开即可。在板子的下方,ST公司引出了四根排针并标注为SWIM————ST公司针对STM8推出的调试接口协议。

2012-02-25 19:04:31 2866 1

原创 ARM汇编语言中指令与伪指令

在ARM汇编中,助记符分为两种,一种是指令助记符--有相应的操作码;另一种是特殊指令助记符(伪指令)--没有相应的操作码。伪指令所完成的操作称作伪操作,伪指令仅仅起到了为完成汇编程序做各种准备工作功能的作用,只写伪指令在汇编中起到作用,一旦汇编结束后,伪指令就完成了它的使命。在ARM汇编中,有如下的几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏定义及其他伪指令。符号定义伪指

2012-02-16 10:05:02 900

原创 Fedora Core 9 内核升级

(1)从http://www.kernel.org/上下载最新的内核源码,比如说linux-2.6.38.8(2)建立目录         #mkdir linux        # tar -xvjf  linux-2.6.38.8.tar.bz2(3)进入内核

2011-10-09 12:55:46 423

原创 S3C2440 启动代码分析

启动代码是系统上电或复位以后运行的第一段代码,它的作用是在用户程序运行之前对系统硬件及软件运行环境进行必要的初始化并在最后使程序跳转到用户程序,它直接面对ARM 处理器内核及硬件控制器进行编程,所执行的操作与具体的目标系统紧密相关。     S3C2440 支持两种方式的启动:Nor Flash 启动和Nand Flash 启动。Nor Flash 和Nand Flash 都是非易失性存储器,

2011-09-23 14:07:41 1228

原创 STM32 IO口学习

STM32的IO口可以由软件配置成8种模式:1,输入浮空2,输入上拉3,输入下拉4,模拟输入5,开漏输出6,推挽输出7,推挽复用功能8,开漏复用功能每个IO口可以自由编程,单IO口寄存器必须要按32位字被访问。这里就是寄存器不能位操作

2011-09-08 16:40:55 2235

原创 Keil C51与 RealView MDK兼容分别开发C51和ARM

1、 keil C51(http://www.51hei.com/keil%CF%C2%D4%D8.html)        Keil uVision2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比

2011-09-06 22:31:34 1715

原创 Cortex-M3处理器

Cortex-M3 是一款低功耗处理器,具有门数目少,中断延迟短,调试成本低的特点,是为要求有快速中断响应能力的深度嵌入式应用而设计的。该处理器采用ARMv7-M 架构。Cortex-M3 处理器整合了以下组件:

2011-09-05 11:08:22 777

原创 手机操作系统

Windows Mobile 由微软公司推出的移动设备操作系统 播放音视频、浏览网页、MSN聊天、收发电子邮件 硬件配置高、耗电量大、电池续航时间短、硬件成本高 PalmOS 由3Com公司的Palm Computing开发 32位嵌入式操作系统 所占

2011-08-23 12:46:33 325

翻译 android下蓝牙简介

一、Package name: android.bluetooth.*,主要相关类介绍如下:    * BluetoothAdapter: 本地蓝牙设备的适配类,所有的蓝牙操作都要通过该类完成;      cancelDiscovery() 取消发现      d

2011-08-22 16:27:33 860

原创 Linux常用命令

Cd.. cd../.. cd- 移动到上次目录,cd~ 移动到用户主目录Df  -T 检查文件系统的磁盘空间占用情况Free  -b/-k/-m  检查内存使用情况Touch 生成空文件,如:在对用户或组激活配额前,在目录中生成空文件aquota.user和aquo

2011-08-22 09:30:56 391

转载 XP下Eclipse + MinGW + Qt安装及问题解决方法

1,下载Qt并安装。到Qt的官方网站上(http://qt.nokia.com/downloads-cn)直接下载最新的qt版本qt-win-opensource-4.7.2-mingw.exe(选择右边的“Qt:仅下载框架->下载用于Windows的Qt库4.7.2(min

2011-08-22 09:09:32 1270

原创 U-Boot 移植简介

U-boot的介绍       U-Boot 是一个依赖硬件的Moniter 引导程序。其主要任务就是在系统上电瞬间,初始化硬件设备,准备好软件环境,最后调用(跳转)到内核。所谓Moniter 实际上是一个增强型Bootloader,为了调试内核和软件提供了条件。 选

2011-08-22 09:05:09 521

stm32w 原理图

stm32w 原理图 开发zigbee stm32w 原理图 开发zigbee stm32w 原理图 开发zigbee

2011-12-27

Android_SDK与Eclipse最新版开发环境搭建

Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。可以把它简单理解成Linux上套了一个JAVA的壳。 Android 的平台基本上是免费的,虽然有部份原生链接库会要求费用,但大部份是免权利金。Android 的程序可以采用JAVA开发,因为它的虚拟机(Virtual Machine) Dalvik,只是它将JAVA的bytecode 转成自己的格式,回避掉需要付给SUN 有关JAVA 的授权费用。因此,Android 开发环境是需要JDK的。

2011-08-22

android wifi分析

2. Introduction 因为将要负责WIFI驱动,所以就开始了WIFI驱动的学习,主要分析了WIFI驱动的初始 化,数据的发送流程以及和电源管理相关的部分。 3. 用户使用流程 通常用户的做法就是打开一个socket,调用一个ioctl,等待消息返回,收到消息后继续做下面的事情, 然后又等待内核消息的返回,如此循环。 比如我们的系统的流程就是这样的:

2011-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除