自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vi的方便配置和命令记忆

此处vi指vimvi编辑器的配置cd /etc/vimcp vimrc ~/.vimrccd ~vim .vimrc 在.vimrc中加入如下内容:"关闭兼容功能set nocompatible "显示行号set number"编辑时 backspace 键设置为2个空格set backspace=2"编辑时 tab 键设置为4个空格set tabstop=4"设置自动

2017-09-10 17:05:43 743

原创 vi常用命令

vi常用命令汇总内容命令/作用打开文件vi文件名vi  文件名  +行号 退出/保存文件:w  保存文件:wq  保存文件并退出vi:q!强制退出vi,即使该文件被修改,也不保存该文件 进入编辑模式i在光标前开始插入

2017-09-10 15:09:50 826

原创 Linux驱动-输入子系统框架

部分内容参考Linux学习之路,表示感谢. 输入子系统一般将该类驱动划分为3部分,事件处理层为纯软件的东西,设备层涉及底层硬件,它们通过核心层建立联系,对外提供open write等接口。一、核心层 input.c向外界提供接口 ① 在 input_init 中注册了字符设备驱动err = register_chrdev(INPUT_MAJOR, "input", &input_fops);

2017-09-07 20:42:09 1374

原创 S5PV210-linux-dnw安装使用

工具点此下载解压后将看见三个文件:然后将这三个文件拷贝到Linux /bin/目录下: 可通过samba、共享文件夹、filezilla、cuteftp.我这里演示共享文件夹: 然后进行拷贝:sudo cp czg.sh dnw secbulk /bin/ -rsudo chmod 777 /bin/dnw在/etc/rc.local中添加我的脚本文件:vim /etc/rc.local加

2017-09-06 18:41:26 1297

原创 字符设备驱动-定时器

当我们用阻塞的方式来驱动按键时:按下按键由于机械按键的波动性,会导致中断处理函数发生多次。 我们可以采用定时器来解决此bug: Makefile:KERN_DIR = /work/system/linux-2.6.22.6all: make -C $(KERN_DIR) M=`pwd` modules clean: make -C $(KERN_DIR) M=`pwd` m

2017-09-06 10:54:54 738

原创 字符设备驱动-同步互斥阻塞

我们想来达到一个目的:同一时刻,只能有一个应用程序打开/dev/buttons一般的,我们想达到目的会想到下面这种方法:static int canopen = 1;static int sixth_drv_open(struct inode *inode,struct file *file){ if(--canopen != 0) { canopen++;

2017-09-04 22:52:59 711

原创 字符设备驱动-异步通知

我们前面的三种按键操作中,都需要通过应用程序不断地主动通过read()来读驱动程序或者通过poll机制利用返回的信息做出决定。 我们想要当按下按键时利用驱动程序来通知应用程序则需要引入异步通知异步通知:意思就是,一旦设备就绪,则主动通知应用程序,这样应用程序根本不需要查询设备状态,非常类似于硬件上”中断的概念”我们先来看一个例子: Signal.c#include <stdio.h>

2017-09-04 15:25:19 836

原创 字符设备驱动-poll机制

先来看三种按键驱动方式:1、查询方法:一直在查询,不断去查询是否有事件发生,整个过程都是占用CPU资源,非常消耗CPU资源。2、中断方式:当有事件发生时,就去跳转到相应事件去处理,CPU占用时间少。3、poll方式: 中断方式虽然占用CPU资源少,但是在应用程序上需要不断在死循环里面执行读取函数,应用程序不能去做其它事情。poll机制解决了这个问题,当有事件发生时,才去执行读read函数,按键事件

2017-09-03 21:24:59 1523

原创 VMware虚拟机状态已挂起无法恢复解决方案

问题简述:虚拟机挂起了两个系统,在页面中不小心删除了一个,后面打开虚拟机其中一个系统找不到。①在虚拟机文件所在目录下面,找到扩展名为vmss的文件并删除该文件。②重启该系统虚拟机

2017-09-02 11:43:08 30280 6

原创 将Ubuntu 16.14的用户界面语言从英语切换到汉语

①进入System Settings②点击其中的 Language Support,弹出如下窗口,在语言列表中向下滚动,找到“汉语(中国)”,用鼠标将其拖到列表的顶端,释放鼠标,然后点击 Apply System-wide,输入密码。最后点击 Close 按钮关闭对话框,重启电脑。③重启后在登录界面,语言已经变成汉语了。键入密码登录,弹出如下提示对话框,点击“更新名称”。语言切换工作结束。

2017-09-01 10:15:30 4452

原创 字符设备驱动-中断方式操控按键

Linux中断处理体系结构框架总结:我们从内核启动第二阶段可知,进行了中断处理体系结构的初始化. 框架总结以外部中断EIN4~EINT23为例。<0> 初始化中断处理体系结构init_IRQ(arch/arm/kernel/irq.c)void __init init_IRQ(void){ int irq; for (irq = 0; irq < NR_IRQS; irq++)

2017-08-31 22:40:49 1114

原创 字符设备驱动-Linux内核异常处理体系结构

Linux异常处理体系结构 以中断这种异常来举例分析:当我们在裸机操作中断时候:① 构建异常向量表② cpu发生中断,跳到异常向量入口执行③ 跳转到某函数③-a 保存被中断的现场③-b 执行中断处理函数④-c 恢复现场Linux驱动层面同样如此:① 通过trap_init构造异常向量表② cpu发生中断,跳到异常向量入口执行(b vector_irq + stubs_offset)③ 跳转到v

2017-08-30 15:27:28 760

原创 字符设备驱动-轮询方式操控按键

一般驱动都分为两个部分:一:写出框架二:硬件操作框架搭建:①头文件的拷贝#include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/delay.h> #include <asm/uaccess.h> #incl

2017-08-29 18:45:56 856

原创 字符设备驱动-LED驱动

写一个LED点灯驱动:①框架(在Linux字符设备驱动开发基础已经搭建好)②完善:硬件的操作a.看原理图-确定引脚 b.看2440数据手册 c.写代码 写代码注意:裸机代码用的是物理地址PA,驱动代码用的是虚拟地址VA<虚拟地址需要用ioremap函数映射> 驱动程序first_drv.c#include <linux/module.h> #include <linux/kernel

2017-08-23 23:18:17 801

原创 Linux字符设备驱动开发基础

Linux驱动:封装对底层硬件的操作,向上层应用提供操作接口一. 概念介绍一般用户在应用程序里调用的 open, read, write 函数是 c 库的函数, 这些函数会触发 swi val异常,从而引发系统调用,进入到内核空间, 内核通过VFS(virtual Filesystem)来实现调用不同的驱动函数。例如:我们有一个函数,int main(){ int fd1, fd2;

2017-08-13 22:45:42 1087

原创 用SD卡传文件到JZ2440

主机开发环境: Ubuntu9.10 内核: Linux2.6.22.6(资料光盘-> systems目录) 文件系统: fs_qtopia.yaffs2(资料光盘->bin目录) 开发板:JZ2440目的:通过SD卡传文件到开发板 其实很简单,就一条挂载命令,为了适应0基础刚入手开发板的同学,写的特别详细。步骤: 1. JZ2440接上电源,按红色开关启动系统 2. 电脑

2017-08-11 23:31:04 1044

原创 VMware没有虚拟网卡出现

——问题概述:相信大家在因各种原因删除卸载vm虚拟机后,突然有一天想要重装vm在本机做一个其他类型的系统来满足一些学习工作需求,但是安装完了以后发现没有虚拟网卡无法桥接!,在百度谷歌上苦苦搜索,在各大论坛苦苦询问,并没什么卵用……——问题分析:●下载的vm虚拟机安装包是精简版。 ●以前安装过vm虚拟机,没卸载删除干净。(这是重点!) ●重做过系统。——解决办法:①下载vm虚拟机完整版安装包,自己

2017-08-11 16:17:16 114697 183

原创 VM无法将网络更改为桥接状态:没有未桥接的主机网络适配器

故障描述:第一步,确定本地的有线和无限网卡支持VM桥接第二步,设备管理器中的驱动设备正常加载,但是注意这两个虚拟网卡是有问题的>如果你发现你没这两个虚拟网卡,那你一定是重装过系统或者升级了VM出现的。原因是卸载以前VM的时候没有现在赶紧,此类方法不适合你,请点击我跳转另一类方法!第三步,将虚拟机里的网络设置删除第四步,清空网卡后点击恢复默认设置注:如果这样不能搞定那么一定是之前的虚拟机没有卸载干净,

2017-08-11 16:00:33 119915 27

原创 JZ2440专用dnw 支持xp、win7、win8和win10系统

学习于韦东山百问网公司 本文用于解决win7以上系统使用dnw难装驱动问题,用新驱动: zadig-2.3.exe,支持xp,win7/win8/win10,安装方便、高效,欢迎试用。将用到的工具点我进行下载第一步:使开发板进入下载模式第二步:装libusb-win32(v1.2.6.0)驱动打开Zadig——》options->List All Devices 打开此驱动对应的dnw

2017-08-09 16:06:12 2440 5

原创 make menuconfig显示错误“Your display is too small to run Menuconfig!”

如果在终端执行 make menuconfig ,显示错误:Your display is too small to run Menuconfig!It must be at least 19 lines by 80 columns.make[1]: *** [menuconfig] Error 1make: *** [menuconfig] Error 2表示终端窗口太小。解决办法可以是把终

2017-08-07 11:58:24 4019

原创 搭建自己的Linux根文件系统

部分内容参考的博客CrazyCatJack:http://www.cnblogs.com/CrazyCatJack/p/6184564.html整体框架:构建最小根文件系统:1) 创建设备console和null:       首先,我们需要创建一个目录,自己命名。       这里我创建czg目录:mkdir czg。然后进入自己创建的这个文件夹目录,并创建dev目录:mkdir de

2017-08-07 10:57:38 1994

原创 高效阅读

信息爆炸的时代 ——》 注意力越来越宝贵第一步:5分钟预览问自己:为什么要读这本书 1、 书的封面、标题、副标题、作者简介 2、 目录 3、 前言、序言、作者自序第二步:5分钟浏览全书从头到尾翻一遍只浏览大标题、粗字体、图表、图画、关键词折角/彩笔标记<不需过多停留>第三步:跳读只要折角/标记~~~ ==》笔记!!!第四步:复习9小时后一定要复习一遍

2017-08-06 17:13:38 488

原创 【实战】ping

环境介绍笔记本连接学校wifi,开发板通过有限插入笔记本。 如果不是这种情况的,请点我进入电脑 开发板 虚拟机三者互ping通教程。达到效果:开发板、linux、pc互ping通且pc能上网。但是这种情况虚拟机不能上网,要想上网后面会介绍。 环境 IP 网关 192.168.2.1 PC 192.168.2.2 虚拟机 192.168.2.3 开发板-uboo

2017-08-06 16:28:19 3966

原创 【实战】电脑 开发板 虚拟机三者互ping通教程

韦东山百问网公司出品电脑 开发板 虚拟机三者互通教程(推荐)大家的学习环境大概分为以下四种:1、电脑使用无线上网,但是无法将开发板链接到电脑所连接的AP,比如校园 wifi、公司wifi。2、电脑使用无线上网,无线是自己的路由器发射的(我认为这也需要用网线与路由器相连),因此可以将开发板使用网线连接到路由器上。3、电脑使用有线上网,网线是连接到自

2017-08-06 15:33:52 8067 3

原创 VMware Tools安装时出现错误提示:Read-only file system

问题描述如图:解决:1.win+R 输入 regedit,打开注册表编辑器 2.对上图区域右键->权限 3.选定你的用户,点添加->高级->立即查找 4.找到SYSTEM,点击确定 5.然后注册框中出现,点确定,然后重启!

2017-08-06 14:42:05 2707

原创 Linux根文件系统分析

部分内容参考的博客CrazyCatJack:http://www.cnblogs.com/CrazyCatJack/p/6184564.html整体框架: 1)在Linux kernel的源代码中,对如何启动应用程序有着明确的定义。首先我们需要挂载根文件系统,只有正确挂载了根文件系统,才能够从根文件系统中读出应用程序。我们启动的第一个程序就是init程序。init进程完成了对应用程序的各项配置(进

2017-08-05 10:19:08 1383

原创 内核启动

我们从u-boot启动内核可知道,uboot通过这条命令theKernel (0, bd->bi_arch_number, bd->bi_boot_params);来启动内核。 那么我们可以内核启动第一步肯定是处理u-boot传入的参数(机器ID、启动参数),再通过一系列的步骤达到最终目的:挂接根文件系统来运行应用程序我们来看一下整体流程图: 1.内核引导阶段启动文件head.S和head-

2017-08-03 20:37:01 1023 1

原创 【补充】Linux-2.6.22.6 makefiles.txt翻译

Linux Kernel MakefilesLinux内核的MakefilesThis document describes the Linux kernel Makefiles.这个文档描述Linux内核的Makefiles=== Table of Contents=== 目录表=== 1 Overview=== 1 概述=== 2 Who

2017-08-02 20:08:01 1429

原创 内核启动流程分析

内核启动流程分析之编译体验Linux源码编译过程方法:解压缩下载好的linux-2.6内核源代码 ;给内核打补丁 ; 打补丁命令:patch -p n <补丁文件 -p 是指忽略前n个目录,如n==1,就是忽略这个 linux-2.6.22.6目录。配置内核。 配置有3种方法: 直接使用make menuconfig,从头到尾每一项都去配置。(繁琐) 使用默认的

2017-08-02 10:22:15 1118

原创 Subdirectory 【Introduction to Linux supplements】

【Linux番外篇】 补充知识【补充】烧写flash问题【补充】简单谈谈Makefile和交叉编译工具链【补充】 嵌入式中的 (volatile unsigned int )理解【补充】s3c2440启动过程详细分析【补充】adr和ldr的区别【补充】位置无关码和位置有关码【补充】为什么初始化SDRAM中 adrl r2, mem_cfg_val而不是 ldr r2,=mem_cfg

2017-07-30 16:56:35 652

原创 (六) u-boot 启动内核解析

一、我们从上一节命令解析可以知道,u-boot启动启动Linux内核有两种方法:第一种u-boot等待无空格按下自启内核: s = getenv ("bootcmd"); if (bootdelay >= 0 && s && !abortboot (bootdelay)) { ...... run_command (s, 0); ......

2017-07-30 15:58:00 3792

原创 (五) u-boot 命令执行过程解析与添加自定义命令

当我们在控制台的时候,输入boot可以启动Linux内核,那么我们以boot为例子来解析一下uboot命令的执行过程,为下一步分析uboot怎样启动Linux来做准备。一、我们搜索boot命令grep -wnR "boot" common 得到:common/cmd_bootm.c:1162: boot, 1, 1, do_bootd, 打开common/

2017-07-29 21:33:04 4165

原创 (四) u-boot 启动分析_第二阶段

在第一阶段,清 BSS 段之后,CPU 跳转到 sdram 里的 start_armboot() 函数,本文,分析 uboot 启动流程的第二阶段。 start_armboot函数在lib_arm/board.c中定义,是U-Boot第二阶段代码的入口。第二阶段的主要工作是进行单板级别的初始化,初始化 nandflash 、norflash 、初始化串口、设置环境变量、最终跳转到 main_loop 里,接收串口传递进来的各种命令。

2017-07-29 17:40:24 2112

原创 (三) u-boot 启动分析_第一阶段

本文重点在于分析 uboot 启动流程以及 uboot 自身的细节,比如栈空间的划分、如何设置 tag 、如何添加一个自定义命令等。但是不涉及基本的硬件驱动的分析,比如内存初始化、时钟初始化、mmu 、nandflash 等等这些详细细节不是我们的重点。u-boot 版本: uboot 1.1.6使用的开发板: JZ2440V3

2017-07-29 14:08:04 1753 1

原创 【补充】U-boot启动代码指令级分析与启动图解

[start.S代码指令集详细分析点我]Stage1:建立堆栈对应内存布局:上图中U-Boot是Nor Flash。第一阶段没有初始化初始化NandFlash,所以默认 uboot是从norflash启动,不支持 Nandflash 启动。如果修改代码支持Nand Flash启动,那么启动时Nand Flash控制器前4KB的代码复制到SRAM中,这4KB的代码再将整个U-Boot复制到SDRAM中

2017-07-29 10:08:23 6445

原创 【补充】uboot makefile 中的unconfig

以JZ2440为例:在uboot编译中,要先输入单板配置命令:100ask24x0_config_config进入makefile中,看到100ask24x0_config_config的配置规则如下:100ask24x0_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0

2017-07-28 21:59:54 7000

原创 (二) u-boot 配置、编译过程分析

由于u-boot比较庞大,所以我们分开来分析,对于一个大型的项目我们想快速的了解其代码架构和内容,最方便的方法就是分析Makefile,所以我用uboot-1.1.6来分析Makefile。通过对u-boot的分析想要得到以下内容: 1. U-boot的入口 2. 链接地址  由顶层Readme文件说明,可以知道如果要使用开发板board/,就先执行make <boa

2017-07-28 18:50:55 7752

原创 (一) u-boot 基本介绍

U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。一、u

2017-07-28 12:51:27 25598 4

原创 (六) 自己写简单的u-boot

前言:想想 uboot 的代码量,我们说自己写一个 bootloader 是不是口出狂言了?然而并没有,bootloader 的唯一目的只有一个,那便是启动内核。内核就是一大段可执行程序,我们只要跳转到它的入口地址去执行不就OK? 所以,写一个简单的 bootloader 并不困难。    现在来思考一下,目的是启动内核,那么内核在哪里?刚上电的时候,内核肯定是位于 nandflash 里的,我们得

2017-07-27 16:03:39 3297 2

原创 LCD控制器

[点此回顾上课学习内容](http://blog.csdn.net/pz0605/article/details/53246715) 2440的lcd控制器可以驱动 STN LCD 和 TFT LCD 本文以较为常见的 TFT LCD 来讲解使用方法:基础知识:首先, 我们来看下2440的 lcd controller 组成框图: REGBANK: LCD控制器的寄存器组, 含有17个寄存器及

2017-07-26 19:32:18 7594

Vxworks设备驱动 曹桂平版

vxworks设备驱动开发详解-曹桂平版    十年经典-vxworks设备驱动开发详解的电子版 超清无水印pdf文档,带标签。 自用的 分享给大家!

2019-04-10

Bull120U.dll

下载这个dll以后可以在百度云管家下载资源

2018-04-20

ippicv_windows_20151201.zip

CMake+OPENCV3.1

2017-04-20

空空如也

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

TA关注的人

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