- 博客(86)
- 资源 (1)
- 收藏
- 关注
转载 汇编语言 JMP CALL RET RETF的使用与区别
转载自:http://chuanwang66.iteye.com/blog/1075859 JMP、CALL和RET指令的近转移形式只是在当前代码段中执行程序控制转移,因此不会执行特权级检查。JMP、CALL或RET指令的远转移形式会把控制转移到另外一个代码段中,因此处理器一定会执行特权级检查。1、jmp指令紧紧进行执行流程的跳转,不会保存返回地址
2014-06-12 10:28:57
4143
转载 X86-64寄存器和栈帧
概要说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64;正是由于能向后兼容,AMD公司打了一场漂亮翻身战。导致Intel不得不转而生产兼容AMD64的CPU。这是IT行业以弱胜强的经典战役。不过,大家为了名称延续性,更习惯称这种系统结构为x86-64X86-64在向后兼容的同时,更主要的是注入了
2014-05-31 11:50:33
1128
转载 x86下的C函数调用惯例
1 从汇编到C1.1 汇编语言的局限性汇编语言是一种符号化了的机器语言,即用指令助记符、符号地址、标号等符号书写程序的语言。汇编语句与机器语句一一对应,它只是把每条指令及数据用便于记忆的符号书写而已。汇编语言,使用人类语言的单词作为助记符与机器码建立一一对应关系。汇编器维护了对应关系映射表,并在汇编阶段将汇编代码翻译成机器码指令。相对于直接纸带打孔而言,汇编程序已经前进
2014-05-31 10:43:29
1177
转载 M系列DAQ板卡硬件定时IO的采样时钟有哪些选择
网址:http://digital.ni.com/public.nsf/allkb/A7AABC612F99CB82862574F000326EA5问题:我使用一块M系列的板卡来采集和产生数字信号,我知道这个板卡没有板载定时引擎,因此我必须使用其它的时钟源作为该板卡的硬件定时源,我有哪些选择来定时数字IO?解答:使用如下的选择来实现M系列板卡的数字IO硬件定时。
2014-05-08 09:11:53
4723
原创 windows 下使用 pthread
我们这里下载最新版本pthreads-w32-2-9-1ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip下载后解压,可以看到共有三个文件夹
2014-04-20 17:52:28
957
原创 毕设啊毕设,我该准备什么内容啊,想到了先记着
关于以太网的内容: 1、RTP实时传输协议 2、fork()函数和tcp的close函数与shutdown函数的区别与意义3、多播与广播
2014-03-25 19:17:16
877
原创 yum 有用的指令
一 yum whatprovides当你在linux下安装什么软件运行后,他提示你缺少某个库函数时,这个很有用。yum whatprovides libstdc++.so.6
2014-03-20 21:41:32
683
转载 linux安装DDD
一、准备1、 rhel5.5版本,必须安装x开发环境2、 http://ftp.gnu.org/gnu/ddd/ ,下载最新的ddd-3.3.12.tar.gz二、安装1、首先安装motif,否则会报“The Motif include file 'Xm/Xm.h' could not be found.”/usr/local#yum inst
2014-03-20 19:32:49
1331
原创 RED HAT 系统使用yum网络源
red hat 自带的yum网络资源不如centOS,所以需要先卸载自带yum,并下载安装centOS的yum1.下载centos的yum,使用centos 5下载前最好在浏览器中打开 http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/,查看对应的软件版本是否已经升级,并修改下载地址为响应的新版本,#wget http://centos
2014-03-20 19:22:33
865
原创 CMake 需要重点记住的命令和量(待续)
一 MESSAGE 命令 MESSAGE(STATUS "THIS IS A BINARY DIR" ${HELLO_BINARY_DIR}) STATUS 表示将要输出前缀为“--”的信息,可以替换为 FATAL_ERROR:立即终止CMake过程 SEND_ERROR:产生错误,生成过程被跳过二 IF 与ELSEIF 、ELSE
2014-03-18 12:03:11
743
原创 Cmake 设置交叉编译环境
SET(CMAKE_FIND_ROOT_PATH "你的编译器环境路径/")SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 我用的是合众达的dm6446.一 首先安装CM
2014-03-18 11:52:23
1763
1
原创 TI davinci 实验遇到的问题及解决(待续)
1: 配置好虚拟linux主机、windows主机的IP后,给开发的启动参数写入合适的IP后,开发板启动到后面,显示:Looking up port of RPC 10003/2 on 192.168.1.3(这是linux虚拟主机的IP)。。。。 原因是linux主机的nfs服务没有开启。 解决:可以在linux主机中的命令行上输入: /etc/init.d/nfs r
2014-03-18 10:49:07
1249
转载 AutoTools 使用方法示例
学习GNU/LINUX开发的编程人员,上手之后不久就会在编译开源软件的时候碰到configure脚本,过段时间还会知道configure脚本是autoconf生成的;但是真正想用起来autoconf,却是要弄明白config.h,configure.in,Makfile.am等一大堆的文件,这可能要花些功夫。让我们从一个例子开始,争取为大家省点力气。我们用个小程序作例子,计算一个整数的开方,建
2014-03-16 20:11:58
760
转载 linux GNU AutoTools 安装
学习GNU/LINUX开发的编程人员,上手之后不久就会在编译开源软件的时候碰到configure脚本,过段时间还会知道configure脚本是autoconf生成的;但是真正想用起来autoconf,却是要弄明白config.h,configure.in,Makfile.am等一大堆的文件,这可能要花些功夫。使用AutoTools会相对容易便捷很多。GNU autotools安
2014-03-16 20:10:34
2063
原创 Labview快捷键
键盘快捷键说明对象/动作Shift-单击选取多个对象;将对象添加到当前选择之中。方向箭头键将选中的对象每次移动一个像素。Shift-方向箭头键将选中的对象每次移动若干像素。Shift-单击(拖曳)沿轴线移动对象。Ctrl
2014-03-09 17:58:52
3248
转载 采集卡采集浮地信号源的接线端接线方式
对于浮地信号源差分接入应注意以下几点:首先,使用2根模拟输入接线, 信号一端连接在AI输入口正端, 另一端连接在该AI输入口相应的负端(具体祥见接口说明)。注意该负端同时要共地,即将该端口与板卡提供的对应AIGND连接起来。此外,为避免叠加在输入端的共模电压超出允许范围,需在测量端与测量地之间连接偏置电阻。如果没有连接电阻,信号源浮地,信号源就不可能一直保持程控增益放大器(PGIA)的共模信号范围
2014-03-09 11:58:39
6785
原创 LINUX虚拟机如何安装配置samba
LINUX如何安装配置SAMBA实验室台式机linux配置相关信息。Linux虚拟机的ip地址为192.168.241.2.linux端ping windows端用ip 192.168.241.1Windows对应与linux的ip地址为192.168.241.1Linux的samba共享文件夹为LinuxSir,位置为path =/opt/linuxsirWindows通过w
2014-02-23 20:28:19
3805
原创 c程序头文件
.h中一般放的是同名.c文件中定义的变量、数组、函数的声明,需要让.c外部使用的声明。它的作用有: 1 方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明; 2 提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。它里面应该有: 常量,结构,类型定义,函数,全局变量申明(加extern)。
2014-01-07 15:35:27
778
原创 在dsp固定的内存地址处存放数组
为了实现dsp与windows驱动的交互,在dsp端需要一个内存地址固定的数组作为交互缓冲区。 为了实现内存地址固定,可以使用 #progma DATA_SECTION ,即在c文件中#pragma DATA_SECTION(pcisearch,".my_pci_sect")char pcisearch[100]; 在cmd文件中加入SECTIONS{
2014-01-06 15:13:39
5046
原创 “预取址”与“突发传输”的概念
预取址:如果这个内存区被标识为可预取的, CPU 可缓存它的内容并且对它做所有类型的优化. 非可预取的内存存取, 另一方面, 不能被优化因为每次存取可能有边际效果, 就象 I/O 端口. 映射它们的寄存器到一个内存地址范围的外设声明这个范围是非可预取的, 而象在 PCI 板的视频内存的一些是可预取的.在一些应用中我们会遇到"可预取"内存的概念,可预取性是指存储器空间的可预取能力。如果读操作
2014-01-03 10:12:38
3712
原创 值加减,别忘可能是个指针运算
在做dsp pci驱动时,有一句:WRITE_REGISTER_ULONG((PULONG) (pdx->base[TI_OPREGS] + (TI_HSR/4)), TI_DISABLE);TI_HSR 做了除以4,感觉不解,就把除以4去掉,运行。。。毫无意外的蓝屏了pdx->base[TI_OPREGS] + (TI_HSR/4)检测了它的值,发现和 pdx->base[TI_
2014-01-02 13:49:14
713
1
原创 AlignmentRequirement
执行DMA(DirectMemoryAccess,直接内存存取)传输的设备直接使用内存中的数据缓冲区工作。HAL要求DMA传输中使用的缓冲区必须按某个特定界限对齐,而且设备也可能有更严格的对齐需求。设备对象中的AlignmentRequirement域表达了这个约束,它是一个位掩码,等于要求的地址边界减一。下面语句可以把任何地址圈入这个界限:PVOID address = ...;SIZE
2014-01-02 13:34:37
1076
原创 蓝屏原因
1 如果采用IoGetDeviceProperty来获得当前物理设备对象的总线类型的GUID,又往往会导致操作系统出现蓝屏(系统死机)。因为函数调用要求在passive-level执行,而不是dispatch-level。
2013-12-30 10:31:17
849
转载 驱动程序与应用程序的通讯
应用程序除了要调用ReadFile0,WriteFile0函数与驱动程序进行数据交换,我们还需要随时了解设备的工作状态,设定设备的工作状态。其主要手段是在应用程序中调用DeviceIoControl()函数,对DeviceloControl()的调用将使YO管理器创建一个带有IRP W DEVICE CONTROL主功能码的IRP,该IRP会被发送到驱动程序的IRP mJ DEVI
2013-12-23 14:01:40
1315
转载 DPC延迟过程调用
每个设备对象中都含有一个KDPC对象,DEVICE_OBJECT中有一个内置的DPC对象Dpc。当在驱动程序的AddDevice例程创建了设备对象后,如果需要用DPC例程就要在AddDevice例程中调用IolnitimizeDpcRequest初始化这个内置DPC对象,同时注册一个DPC例程。IolnitializeDpcRequest的~个参数为FDO设备对象,一个为指向DPC
2013-12-23 13:44:42
2580
转载 IO_REMOVE_LOCK使用方法
IO_REMOVE_LOCK(删除锁)的具体结构没有公开,WDK的文档中中查不到IO_REMOVE_LOCK。最开始看到IO_REMOVE_LOCK是在WDK的例子event中。下面是参考网上的一些资料之后的一点总结,错误的地方请指正。为什么要用IO_REMOVE_LOCK?WDM 驱动程序在处理设备删除 IRP 并释放驱动程序分配的内存后可能接收到附加的 IRP。在处理附加的 IRP 时
2013-12-23 11:17:08
711
原创 编写测试驱动程序的vc工程
1 。 在与驱动程序同一工作空间里,建立空项目2 。依照需要,添加头文件: #include 驱动程序中的ioctl #include "../MyDriver/Ioctls.
2013-12-22 13:40:13
854
转载 Windows下INF驱动安装文件内容分析
下面先贴出了一个inf文件的内容,然后进行逐句分析:; Installation inf for the Intel 82930 USB Bulk IO Test Board;; (c) Copyright 1999 Microsoft;[Version]Signature="$CHICAGO$"Class=USBClassGUID={36FC9E60-C465-1
2013-12-20 14:15:33
1071
原创 两电脑一网线互联共享文件
一:一台笔记本(一个wifi和一个有线网卡,win7) 一台台式机(一个有线网卡,xp) 普通网线 笔记本通过wifi正常上网,用网线,连接两个有线网卡。二: 网卡设置。 笔记本的有线网卡对应于Control Panel ----》Network and Internet ----》Network Co
2013-12-19 20:08:49
1461
原创 windbg 调试驱动设置断点
在对windows的驱动做双机调试时,总会需要在自己编写的驱动代码上设置断点。 1 这需要首先,在windbg上设置工作空间(workspace) 在这步里面,需要将自己生成的符号文件,能够让windbg搜索到,即将自己符号文件的路径加入到windbg的symbol path里
2013-12-19 15:56:22
3034
原创 常用工具:windows内核与驱动程序设计
运行在被调试机上的工具软件:1.加载驱动程序的工具 EZDriverInstaller 和osrloader 2 IRP跟踪和调试 IRPTrace3 USB查看工具 DDK自带的usbview,可以清楚的列举出各个USB的信息,如设备描述符,管道描述符等 BUShound 可用于usb、1394、SCSI/IDE等总线设备。它的实现原理
2013-12-19 14:06:18
821
原创 驱动编写技巧说明
1。在编写驱动程序的主要头文件中会有:#define PAGEDCODE code_seg("PAGE")#define LOCKEDCODE code_seg()#define INITCODE code_seg("INIT")#define PAGEDDATA data_seg("PAGE")#define LOCKEDDATA data_seg()#define
2013-12-17 11:17:24
882
原创 windows驱动 双机调试环境建立
要是想做WINDOWS pci驱动的调试,常用的虚拟机调试貌似不大好用了(不过还没有试)采用最简单的串口调试方法。这其中,需要的硬件仅仅是一条交叉串口线,若是主机为笔记本,那还需要一个USB转串口线被调试机方设置:对于 Windows XP,由于启动使用的是 boot.ini 数据,因此我们可以手动修改 C:\boot.ini 文件(假设您的系统装在 C 盘),在像
2013-12-16 19:53:22
1103
转载 一个PCI中断异步的问题
最近发现由于PCI数据传输错误导致IO request得到的数据不正确,这种现象让我们思考,为什么系统都已经发现了PCI错误,IO request还能正确结束呢?按照惯例思考,PCI传输出错,IO request就应该fail掉,但是,事实不是这样。难道这个问题和PCI的中断异步有关系?因此,这里详细讨论一下PCI的中断异步问题及PCI解决办法。 PCI拥有多种数据传输模式,post、no
2013-12-06 12:45:56
962
转载 地址空间的归纳总结---PCI 涉及到的地址映射转换
通常X86系统中会存在四大地址空间:进程地址空间、内核地址空间、物理地址空和PCI地址空间。这几大地址空间有些是硬件领域的相关内容,例如PCI地址空间,PCI Hole;有些是软件研发需要了解的。这几大地址空间有什么不同?他们之间是如何联系在一起的呢?下图是进程地址空间、内核地址空间以及物理地址空间之间的联系,下面对几大地址空间的联系进行阐述。 650) this.width=6
2013-12-06 12:39:05
8612
1
原创 dm642 程序编写问题
1 无法打开某个头文件 情况:在一个工程文件夹中,新建了一个include文件夹,将头文件都放置在其里面,但是在ccs中提示无法找到该头文件。 解决:在project菜单里的build option中,compiler页内,在category里选择proprocessor,然后在Include search path(-i)后的框里,填写:$(Proj_dir)\includ
2013-11-24 14:43:55
1431
转载 dm642 调试问题
1.Error: Memory Map Error: READ access by CPU to address 0x40000,which is RESERVED in Hardware.——The 6713 has 256K of memory.0x40000 = 256Kvalid addresses are 0 - 0x3FFFFexternal memor
2013-11-23 10:38:50
1215
原创 dm642 bootloader
前提:用的是ccs3.3,合众达的dtkvpm642板子。 说来想要试一试那个bootloader的例程,很多书上都写了,但是比较乱。 首先我从客服那里要到了ccs3.3和ccs2的两份例程。ccs2的例程里关于bootloader还是用flashburn2.70,而ccs3.3的例程里用了合众达自己的工具。 我在ccs3.3上用flashburn不成功。。。总
2013-11-17 20:23:44
995
原创 dsp ddk1.2 终于找到了。。。
http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/ddk/DDK_1_20/index.html找了半天dsp ddk1.2 ,在ti网站上搜索了一晚上,终于在一个阴暗的角落看到了它
2013-11-15 10:06:56
1153
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人