自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(181)
  • 收藏
  • 关注

转载 mknod命令

mknod命令用于创建Linux中的字符设备文件和块设备文件。 语法 mknod(选项)(参数) 选项 -Z:设置安全的上下文; -m:设置权限模式; -help:显示帮助信息; --version:显示版本信息。 参数 文件名:要创建的设备文件名; 类型:指定要创建的设备文件的类型; 主设备号:指定设备文件的主设备号; 次设备号:指定设备文件的次设

2017-03-10 15:23:29 695

转载 insmod 和 rmmod

Linux内核是个很庞大的东西,要全部了解清楚是很难的,所以我们所做的内核上的开发也是为驱动做一些基本的准备。其中Linux的系统的构成、内核的构成还有内核的目录结构在这里就不去做过多的解释,有兴趣的可以自己查找相关的资料。 一、内核模块的特点    a)        不会被编译进内核之中,这样的话可以尽可能的控制Linux内核的大小。    b)    

2017-03-10 14:49:37 1890

转载 struct inode 和 struct file

1、struct inode──字符设备驱动相关的重要结构介绍内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下:struct inode {struct hlist_node    i_hash;struct list_head    i_list;struct list_head    

2017-03-10 12:04:23 276

转载 struct class

设备类struct class是一个设备的高级视图,它抽象出低级的实现细节。例如,驱动可以见到一个SCSI磁盘或者一个ATA磁盘,在类的级别,他们都是磁盘,类允许用户空间基于它们作什么来使用设备,而不是它们如何被连接或者它们如何工作。struct class{    const char *name;   //类名称    struct module *owner;   //对应模块

2017-03-10 11:59:17 321

转载 ubunt开启nfs服务+jz2440挂载nfs文件系统

#sudo apt-get install nfs-kernel-server-------------------------------------------打开/etc/exports文件,在末尾加入:/home/xgc *(rw,sync,no_root_squash)注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:

2017-03-09 22:08:27 1063

原创 In file included from scripts/kconfig/lxdialog/checklist.c:24:0: scripts/kconfig/lxdialog/dialog.h:3

问题:在Linux环境make menuconfig的时候出现一下错误。In file included from scripts/kconfig/lxdialog/checklist.c:24:0:scripts/kconfig/lxdialog/dialog.h:32:20: fatal error: curses.h: No such file or directorycompilati

2017-03-08 17:24:26 2993

转载 linux-2.6.22.6/Makefile:416: *** mixed implicit and normal rules: deprecated syntax

今天在按照韦东山大哥的教程流程编译内核的时候出现了这个问题    linux-2.6.22.6/Makefile:416: *** mixed implicit and normal rules: deprecated syntaxlinux-2.6.22.6/Makefile:1449: *** mixed implicit and normal rules: d

2017-03-08 17:01:46 1617

转载 大端与小端存储模式详解

端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian(这句话最为形象)。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big E

2017-03-07 21:55:57 335

转载 Linux下的lds链接脚本详解

一、 概论每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.连接器有个默认的内置连接脚本, 可用ld –verbose查看. 连接选项-r和-N可以影响默认的连接脚本(如何影响?).-

2017-03-07 15:58:24 815

转载 stmdb和ldmia指令

首先一句话说一下stmdb和ldmia指令的作用:stmdb和ldmia指令一般配对使用,stmdb用于将寄存器压栈,ldmia用于将寄存器弹出栈,作用是保存使用到的寄存器。ARM指令的多数据传输(STM、LDM)中,提到:多寄存器的Load和Store指令分为2组:一组用于数据的存储与读取,对应于IA、IB、DA、DB,一组用于堆栈操作,对应于FD、ED、FA、EA,两组中对应的

2017-03-02 10:55:03 4756 2

转载 MSR与MRS

1、MRS指令MRS指令的格式为:MRS{条件}   通用寄存器,程序状态寄存器(CPSR或SPSR)MRS指令用于将程序状态寄存器的内容传送到通用寄存器中。该指令一般用在以下两种情冴: Ⅰ.当需要改变程序状态寄存器的内容时,可用MRS将程序状态寄存器的内容读入通用寄存器,修改后再写回程序状态寄存器。Ⅱ.当在异常处理或进程切换时,需要保存程序状态寄存器的值,可先用该指令读出

2017-03-02 10:42:04 1019

转载 S3C2440--MMU

1.MMU的作用我们再第一部分讨论的全部都是物理地址,注意不要与这部分要将的虚拟地址给混淆起来。内存管理单元(Memory ManagerUnit)简称MMU。它负责将虚拟地址转换成物理地址,然后传给上部分介绍的存储管理器进行寻址。现代的多用户多进程操作系统通过MMU使各个用户进程都有自己的独立的地址空间:地址映射功能功能使的个进程拥有“看起来”一样的地址空间,而内存访问权

2017-03-01 22:34:04 462

转载 S3C2440--存储管理器

1. 如何从外部设备read数据?假如要从网卡或者SDRAM等设备读取数据 地址为0x30000000 代码可以如下:mov R1, #0x30000000ldr R0, [R1] //也就是读取4byte数据12122. 存储管理器的作用CPU不需要关心外设是什么,硬件相关所有工作由存储管理器完成: 1. 片选信号 2. bank选择 3. 列

2017-03-01 22:22:30 439

原创 VMware centos7 虚拟机上网完美解决

继昨天的痛苦之后,我的32位centos7 minimal版本的虚拟机今天终于可以正常上网了,解决了心里的一块大石头。前期过程看上一篇博文:http://blog.csdn.net/aguangg_6655_la/article/details/57129690 从ip addr 出现ens33这个网络接口开始。1、路径 /etc/sysconfig/network-script/ 下

2017-02-26 22:12:32 17055

原创 32位CentOS7 minimal版本之初体验

本想结合一下Windows和Linux开发环境,想装一个centos的虚拟机,我电脑是32位的Windows7无奈CPU的虚拟化支持问题,就下了一个32位centos7 的minima版本。高高兴兴装机,结果ifconfig一下,发现没有装net-tools,ip addr查了一下啊法相只有 lo 的信息,没网啊,又不能装net-tools。百般折腾,在虚拟机的存储地址的一个.vmx后缀的

2017-02-25 22:11:39 3117 2

转载 vmware里的centos虚拟机无法上网(四)

环境CentOS:版本7 [root@net592 ~]# uname -aLinux net592 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux问题1:Vmware无法识别网卡,

2017-02-25 21:57:20 828

转载 vmware里的centos虚拟机无法上网(三)

刚开始玩CentOS,用虚拟机装了个CentOS7,安装过程无比顺畅,这一点比Windows确实简单不少。但是装完之后网络却无法使用,ifconfig查看时只有一个lo设备,哪里有传说中的eth0。。。被这个问题纠缠了几天,最终找到了问题所在。以下均转自网络,我只是在此整合一下,原文请看:http://bbs.csdn.NET/topics/390916

2017-02-25 21:55:34 616

转载 vmware里的centos虚拟机无法上网(二)

由于Vmware虚拟网卡和linux兼容问题导致驱动无法正常安装,默认的网卡类型不兼容找到我们的Vmware虚拟机文件夹,将VMware 虚拟机配置 (.vmx),追加一条设置我们网卡类型ethernet0.virtualDev = "e1000"注:修改此文件的时候必须关闭虚拟机,注意不是挂起。原因VMware都在虚拟客户机中提供的是古老的AMD PCNet10/100Mbp

2017-02-25 21:53:20 490

转载 vmware里的centos虚拟机无法上网(一)

本人在虚拟机中安装了CentOS,按照安装Windows XP的经验,想要CentOS可以上网,发现居然上不了。找百度一些大神的方法,终于解决了问题。流程如下:1)点击 VM->Settings Hardware选项卡下面 2)点击Network Adapter 设置如下图所示,首先我们在虚拟机中将网络配置设置成NAT,3、进入Windows操作系统,然后右

2017-02-25 21:48:33 435

原创 32位的Windows系统与64位的虚拟机

一定有人跟我一样遇到这个问题:32位的Windows系统想装一个64位的Linux虚拟机。到底行不行呢?视具体情况而定。得看你的电脑CPU是否支持虚拟化http://jingyan.baidu.com/article/fec7a1e5fe2f221190b4e7fe.html上面这个链接告诉你怎么查询自己的CPU是否支持虚拟化怎么开启CPU对虚拟化的支持:http://jingyan.

2017-02-25 21:40:41 5494

原创 liunx系统在终端里隐藏命令行当前目录提示

在一些Linux系统的终端里,命令行提示是默认显示当前工作目录的绝对路径,如下:user@system:/folder1/folder2/folder3/folder4$当绝对路径比较长的时候就有点烦了,因为输入的命令就不得不过行写(因为第一行里路径就占用太多space了)。而且terminal的窗口标题就是显示当前目录的绝对路径,加上还有个pwd命令可以显示当前路径,所以

2017-02-25 11:07:06 1926

转载 extern “C”的用法

extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。     这个功能十分有

2017-02-23 17:08:54 375

转载 NEC 红外遥控协议

NEC Protocol原文地址:http://www.sbprojects.com/knowledge/ir/nec.phpTo my knowledge the protocol I describe here was developedby NEC. I've seen very similar protocol descriptions on the

2017-02-22 21:10:38 790

转载 红外遥控协议-NEC协议

NEC协议是众多红外遥控协议的其中一种,除NEC外,还有RC5、RC6等其它的。市面上买到的非学习型万能电视遥控器大多集成一种或多种编码是NEC型的,我买的二个遥控器中就有三种以上编码是NEC的。NEC编码的一帧(通常按一下遥控器按钮所发送的数据)由引导码、地址码及数据码组成,,如下图所示,把地址码及数据码取反的作用是加强数据的正确性。引导码及数据的定义如下图所示,当一直按

2017-02-22 21:09:19 2358

原创 MDK环境下stm32实现printf函数

printf虽然是C语言的标准函数,但是是针对有stdin, stdout设备的系统的,在嵌入式平台上是没有标准的stdin, stdout的,需要映射到串口后某个输出对象的,而嵌入式平台各不相同,如果又没有操作系统的支持,就只能靠自己实现了,因此STM32下的printf不在标准库里,而在定制的库里。而且一般在嵌入式平台一般也不用printf,可以自己使用sprintf()函数先将数据格式化到缓

2017-02-22 19:21:42 1523

原创 stm32移植millis()记录系统开机运行时间

首先初始化RTC和millis MILLIS_Init(); //初始化RTC为1Hz,同时初始化millisMILLIS_Init() 函数的实现void MILLIS_Init(void){#ifdef USE_LSE NVIC_InitTypeDef NVIC_InitStructure; /* Enable PWR and BKP clocks */

2017-02-22 17:32:33 5119 1

转载 STM32串口中断卡死主循环问题分析

在一项目中,使用STM32作为主控,程序运行一段时间后概率出现主循环卡死现象。问题分析如下:1、程序USART2不停接收并处理串口数据,波特率115200;2、主循环卡死;3、USART1中断及TIM2中断响应函数运行正常;(USART1及TIM2中断优先级均比USART2高)4、出现现象后,拔掉USART2的接收数据线,现象不能回复正常;

2017-02-21 21:24:21 4241 1

转载 GIT仓库学习--本地、远程仓库版本回退

目录(?)[+]1 简介最近在使用Git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客。2 问题如果提交了一个错误的版本,怎么回退版本?如果提交了一个错误的版本到远程分支,怎么回退远程分支版本?如果提交了一个错误的版本到公共远程分支,又该怎么回退版本?3 本地分支版本回退的方法如果你在本地做了错误提交,

2017-02-21 16:52:28 3339

原创 GIT仓库学习--分支管理

1、创建dev分支$ git branch dev2、切换到dev分支:$ git checkout devSwitched to branch 'dev'git checkout命令加上-b参数表示创建并切换$ git checkout -b devSwitched to a new branch 'dev'相当于以下两条命令:

2017-02-21 16:47:41 378

原创 GIT远程仓库--多人协作

1、查看远程库的信息,用git remote:$ git remoteorigin或者,用git remote -v显示更详细的信息:$ git remote -vorigin git@github.com:michaelliao/learngit.git (fetch)origin git@github.com:michaelliao/learngit.git (pu

2017-02-21 16:36:42 530

原创 Makefile:1607 *** mixed implicit and nomal rules:depracated syntax

Makefile:1607行: *** 混和的隐含和普通规则。 停止,,此行显示:1607 / %/: prepare scripts FORCE1608 $(cmd_crmodverdir)1609 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \1610 $(build)=$(build-dir)1607中的/  

2017-02-20 20:43:01 488

转载 register_chrdev()与unregister_chrdev()

Linux下的设备驱动程序被组织为一组完成不同任务的函数的集合,通过这些函数使得Windows的设备操作犹如文件一般。在应用程序看来,硬件设备只 是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作,如open ()、close ()、read ()、write () 等。Linux主要将设备分为二类:字符设备和块设备。字符设备是指设备发送和接收数据以字符的形式进行;而块设备则

2017-02-20 15:09:22 611

转载 环形缓冲区

圆形缓冲区(circular buffer),也称作圆形队列(circular queue),循环缓冲区(cyclic buffer),环形缓冲区(ring buffer),是一种数据结构用于表示一个固定尺寸、头尾相连的缓冲区,适合缓存数据流。目录1 用法2 工作过程3 圆形缓冲区工作机制3.1 读指针与写指针3.2 区分缓冲

2017-02-19 18:33:54 6236

转载 树莓派+一根网线直连笔记本电脑

用网线直连电脑,不经过路由器。这个方法最大的特点用最少的工具玩树莓派。一、材料:树莓派一部、网线一根,笔记本电脑一台。1、树莓派:带供电系统和烧好Raspbian系统的SD卡;2、网线:交叉或直连;3、笔记本电脑:双网卡,现在应该都是这个配置的。二、操作步骤。1、连线。树莓派接好供电线;将网线一端接到树莓派,另一端接到笔记本。2、共享互联网。如果

2017-02-17 14:25:01 3793

转载 树莓派pi3 串口问题的解决办法

[方案一]1、安装早期的官方系统 Raspbian Jessie releases版本(就是还不支持PIXEL桌面的版本)2、首先查看 /boot/overlays/ 目录下有没有 pi3-miniuart-bt-overlay.dtb 这个         文件,如果有,那么就是已经把硬件串口重新分配给了GPIO。3、编辑/boot目录下的config

2017-02-11 17:14:38 6223

原创 树莓派+python+打印串口数据

python上手没两天,写一个正常的打印串口的程序耗费了我半天的时间,网上有很多关于树莓串口python小程序,多数是在串口助手这样的终端回显,而我想要树莓派时时打印出串口接收到的数据。在网上找了许多的文章,不尽人意。遇到了各种小问题。第一个就是python print 不换行的问题,详细自行百度。python2.x 版本需要在printf语句后面打逗号,换行是没有了,但是出现了时延和

2017-02-11 16:19:34 5422

转载 python print时延问题的解决办法

最近写了几个Python脚本,在用print输出的时候,都有一个很讨厌的问题,就是print的输出被延迟了,什么情况呢,类似这样1 import os2 print ‘first print  3 os.system('./second-print.sh')在second-print.sh中,也会有一些打印信息输出到控制台正常情况下,first print要

2017-02-11 15:58:10 1433

转载 Python print打印不换行

Python中的print默认是换行的想要不换行输出有两种办法:1.print后加上","############################>>>print "Hello World",############################2.使用sys.stdout.write命令############################>>>sys.std

2017-02-11 14:23:46 1075

转载 树莓派+Python+pyserial 2.7实现串口通信

手上有个CCD Camera(Barcode Reader/Scanner Module),它是通过RS232通信的,用RS232转USB的转接线连接树莓派,即可完成硬件连接。对于串口通信,可以通过pyserial实现。首先,安装pyserial:从 https://pypi.python.org/pypi/pyserial 下载最新版本的安装包,再通过下面的命令完成安装:ta

2017-02-10 21:28:57 4449

转载 Python程序员的10个常见错误

关于PythonPython是一门解释性的,面向对象的,并具有动态语义的高级编程语言。它高级的内置数据结构,结合其动态类型和动态绑定的特性,使得它在快速应用程序开发(Rapid Application Development)中颇为受欢迎,同时Python还能作为脚本语言或者胶水语言讲现成的组件或者服务结合起来。Python支持模块(modules)和包(packages),所以也鼓励

2017-02-10 21:21:28 461

空空如也

空空如也

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

TA关注的人

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