硬件测试
perry_peng
***
展开
-
使用WDM驱动实现在NT下读取物理端口,特殊寄存器,物理内存的代码(C++测试代码)
#include #include #include #include "libmio.h"#include "debug.h"using namespace std;CLibmio *gpLibio = NULL;int main( int argc, char* argv[]){ try { gpLib原创 2011-09-30 09:10:27 · 1566 阅读 · 0 评论 -
使用批处理+WMI获取指定文件或目录所在的物理磁盘信息
通过批处理和WMI,找出指定目录或文件的物理磁盘信息。当前逻辑磁盘盘符物理磁盘型号物理磁盘总容量物理磁盘接口类型... ::############################################################################################::#::# Name : driveinfo::#::#原创 2011-09-28 09:03:20 · 2336 阅读 · 1 评论 -
TINYC写个8052虚拟机(1) Intel HEX文件格式转换为BIN。
void cState_LoadHex(cStatePtr csp, const char *file){ FILE *fp; int ch; uint16 len, addr, rec_type, data; char buff[5]; fp = fopen(file, "r"); while (!feof(fp)) { ch =原创 2013-01-11 21:16:25 · 807 阅读 · 0 评论 -
TINYC写个8052虚拟机(2) Intel MCS-805x指令表.
#define iPush(x, o1, o2, o3, c, n) \ {x, o1, o2, o3, c, #n, OPC_##n}const iCode iCodeSet[] = { iPush(1, OP_NONE, OP_NONE, OP_NONE, 12, NOP), iPush(2, OP_CODE11, OP_NONE, OP原创 2013-01-11 21:18:34 · 864 阅读 · 0 评论 -
vba visa32.dll
SCPI vbaDeclare Function viOpenDefaultRM Lib "VISA32.DLL" Alias "#141" (sesn As Long) As LongDeclare Function viOpen Lib "VISA32.DLL" Alias "#131" (ByVal sesn As Long, ByVal viDesc As String, ByVa原创 2013-06-20 22:37:29 · 3622 阅读 · 1 评论 -
芯片KC89C72 可编程声音发生器(PSG)
一片从游戏器上拆下来的KC89C72。MCU使用的51。/* \file main.c - Keil C v8.02 * Project id: 00595cf9-8de6-4a57-b940-eb0347ac9e13 * * \details This file is part of the KC89C72 project. * * History: * Da原创 2013-02-23 15:08:01 · 3640 阅读 · 0 评论 -
芯片NCP3163BPWR2G (ONSEMI)
DC-DC转换芯片,升压或降压模式,最大输入电流3.4A。Step-Up/Down, 3.4A, SOIC(PowerPAD)-16.原创 2012-01-13 09:44:50 · 669 阅读 · 0 评论 -
芯片MCP1252 (MCHP) 电荷泵
Low-Noise, Positive-Regulated Charge Pump原创 2012-07-30 20:15:55 · 2226 阅读 · 0 评论 -
JavaScript开发单片机:I/O篇 -- 在LCD1602上显示字符串
用来测试外围不错,不用每次都烧F/W。相当于把单片机I/O当个并口用。缺点就是速度慢没有实际板上跑得快。var usbio = uopen(0x0908, 0xa, 0x100);/** * RS = P2.0 * RW = P2.1 * EP = P2.2 * DB原创 2012-12-16 19:14:02 · 1232 阅读 · 1 评论 -
JavaScript开发单片机:I/O篇 -- 驱动LED键盘控制IC-FD620K1.
手头上有一台坏掉的卫星接收机,拆下面板上的显示键盘小板,使用单片机I/O驱动成功。var usbio = uopen(0x0908, 0xa, 0x100);/** * CLK = P1.5 * DIO = P1.6 * STB = P1.7 * * \fn uwrite * \param 1 Device handle. * \param 2 Port sel原创 2013-01-11 21:25:18 · 4394 阅读 · 0 评论 -
TINYC写个8052虚拟机(4) 宏定义。 .
#define REGx(x) csp->ram[REG_##x]#define RAMx(x) csp->ram[x]#define ROMx(x) csp->rom[x]#define BIT(a) (RAMx((a) & 0xf8) & (1 << ((a) & 0x07)))#define BIT_SET(a) RAMx((a) &原创 2013-01-11 21:29:33 · 656 阅读 · 0 评论 -
TINYC写个8052虚拟机(3) Intel MCS-805x寄存器定义
/// SFRs address, * denote the register can be bit addressable.#define REG_ACC 0xe0 /// * Accumulator#define REG_B 0xf0 /// * B register#define REG_PSW 0xd0原创 2013-01-11 21:20:29 · 1193 阅读 · 0 评论 -
使用SENS API获取当前网卡连接速度
How to get the Network adapter link speed?using SENS API ~~ IsDestinationReachable function. QOCINFO STRUCT dwSize dd ? dwFlags dd ? dwInSpeed dd ? dwOutSpeed dd ?原创 2012-05-22 14:12:24 · 1495 阅读 · 0 评论 -
使用WDM驱动实现在NT下读取物理端口,特殊寄存器,物理内存的代码(C++驱动加载代码)
驱动写好后,要在应用程序中调用驱动还需要自己写一个驱动加载器,以下代码能够实现在Windows中加载驱动到系统中,并能调用驱动的I/O例程。编译成功后,把驱动sys文件与此代码编译好的exe放同一个目录。 cpp源文件:#include "libmio.h"using namespace std;CLibmio::CLibmio(void) throw (CLi原创 2011-09-30 08:58:31 · 1483 阅读 · 0 评论 -
ZwSystemDebugControl函数读取物理内存
在XP系统中,利用ZwSystemDebugControl函数在不需要驱动的情况下可以访问一些内核对象,如,I/O、物理内存、一些寄存器。但需要具有SeDebugPrivilege权限。XP中的User组是没有这个权限的,也没有权自己提升到这个级别。.386.model flat, stdcall option casemap :none inc原创 2011-10-24 09:45:38 · 2452 阅读 · 2 评论 -
在Win32环境中修改Lenovo笔记本引导设备启动顺序、恢复BIOS默认设置。
Changing BIOS settings To change a BIOS setting, complete the following steps: 1. Identify the BIOS setting you want to change using the Lenovo_BiosSetting class 2. Identify the value t原创 2011-10-24 12:47:25 · 6838 阅读 · 2 评论 -
ZwSystemDebugControl函数列举系统PCI设备ID
在XP系统中,利用ZwSystemDebugControl函数在不需要驱动的情况下可以访问一些内核对象,如,I/O、物理内存、一些寄存器。但需要具有SeDebugPrivilege权限。XP中的User组是没有这个权限的,也没有权自己提升到这个级别。.386.model flat, stdcall option casemap :none inc原创 2011-10-24 09:37:37 · 832 阅读 · 0 评论 -
ZwSystemDebugControl函数读取MSR寄存器值
在XP系统中,利用ZwSystemDebugControl函数在不需要驱动的情况下可以访问一些内核对象,如,I/O、物理内存、一些寄存器。但需要具有SeDebugPrivilege权限。XP中的User组是没有这个权限的,也没有权自己提升到这个级别。.386.model flat, stdcall option casemap :none inc原创 2011-10-24 09:41:04 · 2735 阅读 · 0 评论 -
使用WDM驱动实现在NT下读取物理端口,特殊寄存器,物理内存的代码(Win32汇编源代码)
在WinNT下Ring3级应用程序不能直接访问硬件I/O和物理内存,需要调用驱动在Ring0下间接访问。本代码在MASM10 + KmdKit v1.8下编译通过。comment * libmio.asm -- Using driver to implement hardware access for Windows. allows the ring3原创 2011-09-28 10:18:22 · 2349 阅读 · 0 评论 -
DOS中调用INT13中断操作磁盘 tc3.0
通过调用中断操作磁盘,进行扇区操作。/* disk.cpp * * Source file for implementation of CDisk, * * Authors: perry * Date : February 21, 2011 * class : CDisk * * History: * 2011/02/21 perry原创 2011-10-26 15:24:25 · 2051 阅读 · 0 评论 -
关闭或打开笔记本触摸鼠标功能(TouchPad)
只能使用在Synaptics Touchpad且要安装Synaptics软件。#include #include "SynKit.h"int main( int argc, char* argv[]){ ISynAPI *pAPI = 0; if ( CoInitialize(0) || CoCreateInstance(_uuidof(SynAPI)原创 2011-10-26 16:50:16 · 3063 阅读 · 0 评论 -
訪問Super I/O W83627EHF的GPIO
Super I/O访问主要步驟. W83627;进入SIOINVOKE WritePort, 4eh, 1, 87hINVOKE WritePort, 4eh, 1, 87hINVOKE WritePort, 4eh, 1, 2ah ;写SIO offset 0x2a = 0xffINVOKE WritePort, 4fh,原创 2011-07-14 09:24:26 · 1195 阅读 · 0 评论 -
51驱动1.8寸TFT屏,H018IN01V8(NT3915)
闲着没事干,把以前老式联想手机给拆了,取出彩屏用51成功驱动并点亮。/* \file main.c - Keil C v8.02 * \brief source file for lcd_h018in01 project * Project id: 00595cf9-8de6-4a57-b940-eb0347ac9e13 * * \details This file is原创 2013-02-02 22:17:42 · 2680 阅读 · 0 评论