自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

转载 应用调试之使用gdb和gdbserver

一、调试原理这里的gdb调试是在pc机上对在开发板上运行的程序进行调试。具体来说的话,在pc机上要运行gdb,在开发板上运行dbserver。gdb调试的时候,pc机上的gdb向开发板上的gdbserver发出命令,而开发板上的gdbserver就会向应用程序发出信号,使应用程序停下来或者完成其他一些工作!由此我们知道,pc机上要运行gdb,开发板上要运行gdbserver!二、安

2016-02-24 14:57:19 517

转载 kernel编译生成Image zImage uImage的区别

内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。     uImage是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。 

2016-01-25 17:21:26 422

转载 U-BOOT的两个阶段启动过程与第二阶段的board_init_f和board_init_r

U-BOOT的两个阶段启动过程:(2010.06经典版来说)第一阶段:start.S的路径位于arch\arm\cpu\arm920t\这段汇编代码一般被称作第一阶段初始化代码。主要作用是初始化运行环境;初始化内存;重新放置UBOOT代码到内存中;跳入到内存中执行第二段初始化代码1、        关闭开门狗,屏蔽所有中断2、        设置分频比3、     

2016-01-06 14:56:25 1729

转载 spinlock自旋锁

自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因此只能在进程上下文使用(_trylock的变种能够在中

2015-12-15 17:17:03 272

转载 Ubuntu 12.04 Telnet服务设置

刚安装的Ubuntu 12.04还没有telnet功能,需要配置一下。我主要是想让Ubuntu 12.04开启telnet服务做服务器。安装openbsd-inetd:#sudo apt-get install openbsd-inetd安装telnetd:#sudo apt-get install telnetd在etc/inetd.conf文件中可以看到这一行内容:te

2015-12-15 11:20:12 343

原创 ubuntu 12.04设置NFS

1、进行NFS服务器端与客户端的安装:sudo apt-get install nfs-kernel-server nfs-common安装后,在/etc/init.d/下就有nfs-kernel-server了2.  修改/etc/exports(如果第一次打开,exports里面没有内容),添加nfs目录/mypc_linux_nfs_dir *(rw,sy

2015-12-14 14:34:38 370

转载 Linux中tty框架与uart框架之间的调用关系剖析

在这期间有一个问题困扰着我,那就是来自用户空间的针对uart设备的操作意图是如何通过tty框架逐层调用到uart层的core驱动,进而又是如何调用到真实对应于设备的设备驱动的,本文中的对应设备驱动就是8250驱动,最近我想将这方面的内容搞清楚。在说明这一方面问题之前我们先要大致了解两个基本的框架结构,tty框架和uart框架。首先看看tty框架:在linux系统中,tty表示各种终端。

2015-12-09 14:12:01 465 1

转载 vim使用命令大集合

插入模式下的命令: 一般使用Vim时都在正常模式下,但如果知道几个专门用于插入模式下的快捷命令,会感觉更快捷一些。参考:help insert-index,事实上插入模式下的自动补全功能,那个才真正给力。调整缩进    在插入模式下如果希望调整行的缩进,可以返回正常模式,>或者 CTRL+D 减少缩进  CTRL+T 增加缩进 复制相

2015-12-09 14:10:00 229

转载 Linux设备模型(总结)

看了一段时间的驱动编程,从LDD3的hello wrod到后来的字符设备以至于更加复杂的驱动,越看越是觉得对linux驱动的结构不清楚,越看越是迷糊。于是就停下脚步搜索一下资料理一下头绪:以下四个方面来总结一些内容:1.底层数据结构:kobject,kset.2.linux设备模型层次关系:bus_type,device,device_driver.3.集成:PCI设备驱动模型实例

2015-12-08 15:58:05 221

转载 makefile中“=”与“:=”的区别

先看下面的Makefile:#exampleB := $(A)A = laterall:    @echo $(B) 执行make命令,我们发现什么都没输出,我们将第3行的:=换成=。#exampleB = $(A)A = laterall:    @echo $(B)执行make,输出later。分析:B :=$(A)时,它只会到这句语句之前去

2015-12-07 11:23:50 354

转载 shell脚本常用选项

-e filename 如果 filename存在,则为真-d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真-L filename 如果 filename为符号链接,则为真-r filename 如果 filename可读,则为真 -w filename 如果 filename可写,则为真 -x filena

2015-12-04 13:58:11 299

原创 Linux头文件及动态库路径设置

对于开源的第三方的库,在make;make install之后,一版会把库安装到/usr/local/lib,把头文件安装到/usr/local/include目录。Linux把/lib和/usr/lib两个目录作为默认的库搜索路径,所以使用这两个目录的库时,不需要进行库搜索路径设置,可以直接使用。对于其他路径的库文件,则需要设置相应的库搜索路径。设置的方式主要有3种:一、LD_L

2015-12-03 16:13:59 729

原创 修改linux shell当前路径长度

编辑用户目录下的.bashrc文件(即 ~/.bashrc)vi ~/.bashrc该文件里,我相信你现在默认的PS1设定是下面这样的:export PS1='[\u@\h \w]$ '其中,\u 表示当前用户名\h 表示当前主机名(hostn

2015-11-16 21:57:35 611

转载 IO端口与IO内存

从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接……于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器……对于CPU而言,如果它要发数据到某个设备,其实是发到对应的接口,接口电路里有多个寄存器(也称为端口),

2015-11-16 16:53:40 343

原创 ubuntu vim显示搜索高亮和行数

修改/etc/vim/vimrc文件,添加下面命令:set hlsearch //显示搜索高亮set nu //显示行数常用的vim命令:1. ":tabnew xxx" //打开XXX文件2. gt //在tabnew打开的多个文件间切换3. "/xxx" //查找xxx4. n //查找下一个;N//查找上一个5. i //开始编辑文件;6.

2015-11-13 14:14:47 1377

转载 VirtualBox下设置共享文件夹

想在主机和VirtualBox的Ubuntu建个共享文件夹,之前一直没搞定,今晚却特别的顺利。以下是设置的步骤:1.安装VirtualBox的VBoxGuestAddition.iso .在“设备”->“安装增强功能”。安装结束记得重启。以前在解决Ubuntu全屏显示时已经安装了,这里就跳过。2. VirtualBox的“设备”->“分配数据空间”,添加固定分配,如E:\linux-sha

2015-11-09 21:53:57 287

原创 一个简单的字符设备驱动程序和测试程序

------------------------字符设备驱动程序------------------------------#include #include #include #include #include #include #include #include #include   MODULE_DESCRIPTION("a test

2015-11-09 13:48:22 4630 1

转载 深入浅出:Linux设备驱动之字符设备驱动

一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。每一个字符设备或块设备都在/

2015-11-06 15:40:58 282

转载 字符设备驱动程序之自动创建设备节点

#include #include #include #include #include static struct class *led_class;int led_open(struct inode *inode, struct file *file){    printk("led_open\n");    return 0;}ssize_

2015-11-06 15:20:17 284

转载 如何编写Linux设备驱动程序

如何编写Linux设备驱动程序Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统,但它dos或window环境下的驱动程序有很大的区别。在Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作要自己来编写,而且调试也不方便。以下的一些文字主要来源于khg,johns

2015-11-04 14:28:06 330

转载 makefile 中 $@ $^ %< 使用

这篇文章介绍在LINUX下进行C语言编程所需要的基础知识。在这篇文章当中,我们将会学到以下内容:源程序编译Makefile的编写程序库的链接程序的调试头文件和系统求助1.源程序的编译在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器。 下面我们以一个实例来说明如何使用gcc编译器。假设我们有下面一个非

2015-11-04 14:18:55 203

MIPS32指令集

MIPS32指令集

2013-06-27

空空如也

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

TA关注的人

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