自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Stay Hungry, Stay Stupid

一步一步往上爬的蜗牛......

  • 博客(72)
  • 资源 (12)
  • 收藏
  • 关注

原创 IA32: Intel architecture 32 bit

英特尔32位架构(英语:Intel Architecture, 32-bit,缩写为IA-32),常被称为i386、x86-32或是x86,由英特尔公司推出的复杂指令集(CISC)架构,至今英特尔最受欢迎的处理器仍然采用此架构。它是x86架构的32位延伸版本,1985年首次应用在Intel 80386芯片中,用来取代之前的x86 16位架构(x86-16),包括8086、 寄存器结构80186与80286芯片。一个IA32中央处理器(CPU)包含一组8个存储32位值的寄存器. 这些寄存器用来存储

2021-01-04 22:49:35 307 1

原创 ILP32、ILP64、LP64、LLP64、64位系统

32、ILP64、LP64、LLP64、64位系统Data Type ILP32 ILP64 LP64 LLP64char 8 8 8 8short 16 16 16 16int 32 64 32 32lon

2020-07-06 16:28:13 580

原创 source insight设置

2020-03-18 11:49:31 183

原创 Linux中IIC设备驱动再细读

S3C2440内核IIC设备驱动建立流程:由内核打印信息,追索驱动流程:内核注册流程: 由打印信息: 1. 先注册 i2c_driver: i2cdev_driver — \drivers\i2c\i2c-dev.c 前面分析过,内核启动初始化会执行函数:i2c_dev_init i2c_dev_init(void) register_chrdev(I

2017-01-19 14:04:54 1364 2

原创 linux多线程编程

=================== 1. Linux 多线程概述 1.1 什么是线程 线程( thread)是包含在进程内部的顺序执行流,是进程中的实际运作单位,也是操作 系统能够进行调度的最小单位。一个进程中可以并发多条线程,每条线程并行执行不同的任 务。1.2 线程与进程的关系 线程与进程的关系可以归结为以下几点: a. 一个线程只能属于

2017-01-10 13:52:11 502

原创 S5PV210内存外存及启动方式

内存: SRAM 静态内存 特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用 DRAM 动态内存 特点就是容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。单片机中: 内存需求量小,而且希望开发尽量简单,适合全部用SRAM 嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质 PC机: 内存需

2017-01-08 22:47:48 692

原创 移植最新的内核linux-4.9到开发板JZ2440全过程笔记

移植最新的内核linux-4.9到开发板JZ2440全过程笔记

2016-12-24 23:20:48 7104 3

原创 C编译出现这样的警告:returning pointer to local variable

void PWM_GpioInit(void){ timer8_PWM_GpioInit(); timer4_PWM_GpioInit(); //timer3_PWM_GpioInit();}void PWM_TimerInit(void){ timer8_PWM_Init(); timer4_PWM_Init(); //time

2015-10-20 10:07:59 5004

转载 加载地址和运行地址_2

ifndef CONFIG_SKIP_RELOCATE_UBOOT/* _start == _TEXT_BASE, 从Flash 启动 _start != _TEXT_BASE, 从RAM 启动 */relocate: /* relocate U-Boot to RAM */ adr r0, _start /* r0 <

2015-04-17 23:03:02 535

转载 加载地址和运行地址

裸板程序烧在FLASH上 一上电,肯定从0地址运行但是,0地址要么对应NOR FLASH,要么对应只有4K的片内内存程序要读写数据,或是程序大于4K,怎么办?程序就要复制到SDRAM里去执行SDRAM那么大,复制到哪个地址去?能随便选择地址吗不能,要复制到它的链接地址去为什么一定要复制到它的链接地址去?因为这个链接地址是程序运行时“应该位于的地方”,比如要访问某个全局变量时,就是访问

2015-04-17 22:03:13 797

原创 Zigbee协议栈之ZCL API简介

Z-Stack ZCL API本文是参考TI官网文档整理过来的,有些是翻译,翻译的不好多原谅。下载地址:http://download.csdn.net/detail/mengzhuicanyang/7348101也可以去TI的官网免费下载。-----------------------------------------------------------------------

2014-05-14 22:32:59 9839

转载 IAR建立CC2530工程的设置问题及生成.hex文件

选择 Project 菜单下的Options配置与 CC2430 相关的选项。1、General Options选项,按下图配置Target标签,选择Codemodel 和Data model,以及其它参数。   a、单击 Derivative information 栏右边的按钮, 选择程序安装位置如这里是IARSystems\EmbeddedWorkbench4.05 Eval

2014-05-02 20:41:14 11107 1

原创 ZIGBEE中Profile、Cluster和Attribute关系

ZIGBEE中Profile、Cluster和Attribute关系在zigbee规范中,引入了profile, cluster的概念。具体说来,假设规范一个profile(可以理解成一套规定),这个profile用来规范智能家居领域的相关产品都要满足那些要求,那么homeautomation public profile就规定了智能家居都要做什么。当然了,你可以自己规范一个自己的profil

2014-05-01 11:26:30 5872 4

原创 zigbee组网原理

1.组网概述组建一个完整的zigbee网状网络包括两个步骤:网络初始化、节点加入网络。其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。2. 网络初始化预备Zigbee网络的建立是由网络协调器发起的,任何一个zigbee节点要组建一个网络必须要满足以下两点要求:(1)节点是FFD节点,具备zigbee协调器的能力;(2)节点还没有与其他网络连接,当节点已

2014-04-30 22:09:14 14070 2

原创 zigbee概述

Zigbee概述From:http://zh.wikipedia.org/wiki/ZigBee维基百科1.ZigbeeZigBee(也称紫蜂)是一种低速短距离传输的无线网络协议,底层是采用IEEE 802.15.4 标准规范的媒体访问层与物理层。主要特色有低速、低耗电、低成本、支持大量网络节点、支持多种网络拓扑、低复杂度、快速、可靠、安全。2. 发展历程主要由Honeyw

2014-04-30 21:34:06 3536

原创 无题

学习zigbee有一段时间了,没时间来得及整理,现在开始整理了。希望能坚持下去,坚持就是胜利!!

2014-04-24 20:06:01 753

原创 Linux usb设备驱动(2)---> usbmouse.c 源码分析

一个 USB 总线引出两个重要的链表,一个为 USB设备链表,一个为 USB驱动链表。设备链表包含各种系统中的 USB设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB驱动程序(usb driver)。 1. USB设备驱动程序(usb device driver)和 USB驱动程序(usb dri

2012-07-05 16:16:49 3936

转载 Linux usb 设备驱动 (1)

Linux USB驱动框架分析(一)     Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的结构体,结构体里面应该包含了驱动程序所需要的所有资源。用术语来说,就是这个驱动器对象所拥有的属性及成员。由于Linux的内核用c来编写,所以我们也按照这种结构化的思想来分析代码,但我还是希望从OO的角度来阐述这些细节。这个结构体的名字有驱动开

2012-07-04 17:52:01 1491

转载 VMware下 Ubuntu 看不到共享文件夹之解决办法

--------------------------------------------------------------------------- 初学Linux,在VMWare 上装了Ubuntu10.04,主机端和虚拟机相互间的访问是必不可少的,途径有许多,其中vmware tool提供的共享文件夹方式简单又方便。然而,有时却莫名其妙的,在Ubuntu上看不到共享文件夹

2012-06-27 15:03:46 943

转载 mount: RPC: Unable to receive; errno = Connection refused

mount: RPC: Unable to receive; errno = Connection refused     linux挂载时,出现 mount: RPC: Unable to receive; errno = Connection refused   令人郁闷的是,以前用的好好的。怎么这次开机使用就有这种问题出现呢??网上查了很多资料,再经过排查,发

2012-06-27 14:38:16 4612

原创 input subsystem 笔记2

怎么写符合输入子系统的驱动程序??1. 分配一个input_dev结构体2. 设置3. 注册4. 硬件相关的代码,比如在中断服务程序里上报事件。参考/drivers/input/keyboard/gpio_keys.c1. 定义入口和出口函数 module_init(buttons_init); module_exit(buttons_exit); 入口函数

2012-06-27 10:08:56 1392

转载 显存、像素、帧

显存 1、显存的种类: 显存的种类有EDORAM、MDRAM、SDRAM、SGRAM、VRAM、WRAM、DDR等许多种。EDO显存曾用在Voodoo、Voodoo 2等显卡上,但目前已消声匿迹。SGRAM显存支持块写和掩码,可以看作是SDRAM的加强版,曾流行一时,但由于价格较SDRAM稍高,现在也已甚少采用。目前显卡上被广泛使用的显存就是SDRAM和DDR SDRAM了。SDRAM

2012-06-27 09:01:04 2292

原创 input subsystem 笔记1

花了一个下午整理的资料,有些地方还不是很明白,先做下记录以后再详细整理。 /drivers/input/input.c1.input.c --> core --> static int __init input_init(void) // 输入子系统初始化 -->> err = class_register(&inpu

2012-06-23 17:24:06 893

原创 void * 的用法

void中文翻译为“无类型”。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。void含义  void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。   void几乎只有“注释”和限制程序的作用,定义一个void变量没有意义,不妨试着定义:  void a;这行语句编译时会出错,提示“illegal u

2012-06-21 15:39:26 608

原创 typedef 用法详解

第一部分 基本概念1.基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。2.

2012-06-21 13:43:09 910

转载 C函数指针的用法

函数指针通常用来实现回调,其基本用法如下: 1、定义函数指针类型// 定义一个原型为int Fun( int a );的函数指针typedef int (*PTRFUN) ( int aPara ); 2、函数指针变量的定义PTRFUN pFun;    // pFun为函数指针变量名int (*pFun2) ( int a );   // pFun2也是函数指

2012-06-20 10:18:12 517

原创 linux驱动学习1---led驱动

1. uboot启动内核,   内核启动应用程序。   2. 应用程序找到相应的驱动程序流程  -------------------------------------------------   应用层: open   read   write  poll         c库

2012-06-18 10:14:33 512

转载 linux驱动学习之 同步/异步 阻塞/非阻塞

from: http://www.cppblog.com/converse/archive/2009/05/13/82879.html 我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别.这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.首

2012-06-17 10:41:42 1068 1

转载 Linux 设备驱动学习之 异步通知

From:http://blog.csdn.net/ypoflyer/article/details/6131334 异步通知: 使用poll轮询方式的时候,相当于应用程序在需要的时候询问设备“准备好了吗?”,如果有这样一种情况,一个进程在低优先级正在执行长的循环计算,但又需要“尽可能快”的处理输入数据,如果采用poll的方式,那么需要这个应用程序周期性的调用poll来检测数据,也

2012-06-16 13:06:31 641

转载 Linux设备驱动学习之 Poll机制分析

int poll(struct pollfd *fds,nfds_t nfds, int timeout); 总的来说,Poll机制会判断fds中的文件是否可读,如果可读则会立即返回(程序从休眠态变为运行态,可以再次参与调度),返回的值就是可读fd的数量,如果不可读,那么该进程就会休眠timeout这么长的时间,然后再来判断是否有文件可读,如果有,返回fd的数量,如果没有,则返回.

2012-06-15 21:32:33 874

原创 char device driver

// 三个最重要的数据结构。struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); ssize_t (*write)

2012-06-15 14:13:20 549

转载 Linux设备驱动程序学习(4)-高级字符驱动程序操作[(1)ioctl and llseek]

今天进入《Linux设备驱动程序(第3版)》第六章高级字符驱动程序操作的学习。一、ioctl大部分设备除了读写能力,还可进行超出简单的数据传输之外的操作,所以设备驱动也必须具备进行各种硬件控制操作的能力. 这些操作常常通过 ioctl 方法来支持,它有和用户空间版本不同的原型:int(*ioctl)(struct inode*inode,st

2012-06-15 09:31:39 835

转载 Linux设备驱动程序学习(3)-并发和竞态

今天进入《Linux设备驱动程序(第3版)》第五章并发和竞态的学习。对并发的管理是操作系统编程中核心的问题之一。 并发产生竞态,竞态导致共享数据的非法访问。因为竞态是一种极端低可能性的事件,因此程序员往往会忽视竞态。但是在计算机世界中,百万分之一的事件可能没几秒就会发生,而其结果是灾难性的。一、并发及其管理竞态通常是作为对资源的共享访问结果而产生的。在设计自己的驱动程序

2012-06-15 09:18:40 742

转载 Linux设备驱动程序学习(1)-字符设备驱动程序

今天进入《Linux设备驱动程序(第3版)》第三章字符设备驱动程序的学习。这一章主要通过介绍字符设备scull(Simple Character Utility for Loading Localities,区域装载的简单字符工具)的驱动程序编写,来学习Linux设备驱动的基本知识。scull可以为真正的设备驱动程序提供样板。一、主设备号和次设备号主设备号表示设备对应的驱动程序

2012-06-14 15:47:17 510

转载 Linux设备驱动程序学习(0)-Hello, world!模块

一个学习Linux设备驱动程序都会碰到的第一个例程:#includelinux/init.h>#includelinux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){    printk(KERN_ALERT "Hello, Tekka

2012-06-14 15:08:30 613

原创 LDD3源码主目录下的Rules.make文件分析

把一些宏定义都替换了,成了如下文件,有些地方还不是很明白,以后补充。==================================================================================================TOPDIR = .KERNELDIR = /usr/src/linuxINCLUDEDIR = /usr/src/li

2012-06-14 13:55:12 1012

转载 linux sed命令参数及用法详解

sed编辑器是 Linux 系统管理员的工具包中最有用的资产之一,因此,有必要彻底地了解其应用Linux 操作系统最大的一个好处是它带有各种各样的实用工具。存在如此之多不同的实用工具,几乎不可能知道并了解所有这些工具。可以简化关键情况下操作的一个实用 工具是 sed。它是任何管理员的工具包中最强大的工具之一,并且可以证明它自己在关键情况下非常有价值。sed 实用工具是一个“

2012-06-14 13:47:27 616

转载 Makefile之wildcard

Makefile之wildcard  1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件建

2012-06-14 13:09:26 461

转载 0 - 构造和运行模块

作者:蔡伦辉写在前面作者一直支持GPL的精神。允许任何人自由使用、转载、复制和再分发,但必须保留作者署名,必须保证全文完整转载,包括完整的版权声明。由于作者水平有限,因此不能保证文章内容准确无误,请批判阅读。如果你发现任何错误或对文章内容有任何建议,欢迎你与我联系:Email: [email protected]  QQ群: 14765968

2012-06-14 10:43:13 781

转载 对Linux内核中进程上下文和中断上下文的理解

内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间。现代的CPU都具有不同的操作模式,代表不同的级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。Linux系统设计时利用了这种硬件特性,使用了两个级别,最高级别和最低级别,内核运行在最高级别(内核态),这个级别可以进行所有操作,而应用程序运行在较低级别(用户态),在这个级别,处理器控制着对

2012-06-14 09:18:39 495

AUTOSAR分层架构

AUTOSAR分层架构 AUTOSAR分层架构 AUTOSAR分层架构AUTOSAR分层架构

2018-01-09

好用的source insight插件工具

source insight好用的插件工具

2017-03-01

imx283开发板特殊硬件接口编程

IMx283开发板,特殊硬件接口编程。包括SPI, IIC等接口。

2017-02-27

移植linux-4.9的相关文件及结果

移植linux-4.9的结果文件:包括内核镜像,uboot以及根文件系统,支持DM9000。

2016-12-24

交叉编译工具4.4.3

交叉编译工具链 4.4.3. 可以编译最新的linux内核linux-4.9

2016-12-21

Z-Stack ZCL API.PDF

TI公司的ZCL API函数技术文档。 ZCL = zigbee cluster library.

2014-05-14

Z-Stack_Lighting_1_0_2

zigbee Light link安装包,无需下载,直接安装就好。 也可以去官网注册下载。

2014-05-02

zigbee light link_v1.0

zigbee light link profile v1.0 control your world!!

2014-04-24

一步步写嵌入式操作系统

一步步写嵌入式操作系统,李无言著。 经典书籍啊。来下载啊。

2013-12-13

一步步写嵌入式操作系统,配套源代码

一步步写嵌入式操作系统,源代码。 非常好的资料,来下载吧。

2013-12-13

《一步步写嵌入式操作系统》李无言著

一步步写嵌入式操作系统,李无言的大作,赶快来下载啊。

2013-12-13

U-BOOT移植步骤

U-BOOT详细的移植步骤,针对2440的开发板,一步一步详细讲解。

2011-07-29

空空如也

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

TA关注的人

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