device-emulation

Installation and emulation of virtual USB Device

人走茶凉 提交于 2020-02-01 06:33:45
问题 I already read Creating a Virtual USB Device and Virtual USB device about creating a virtual USB Device. I am familiar with the Plug and Play handling by Windows as well as the driver mechanism. So far I understood that first of all I would have to create another device driver which is used for the virtual USB device. But I am still lost on the point what actually is the virtual device. How would I control the behaviour of my virtual device? Background: I develop a software which acts as a

Emulatin Big Endian ARM system with QEMU

╄→гoц情女王★ 提交于 2020-01-15 07:11:48
问题 Is it possible to compile some Linux Kernel and run it over QEMU, emulating some Big Endian ARM processor? If QEMU is not capable of that, I'd love to hear about other system emulators than can. My basic goal is to run and debug dedicated Big Endian ELFs in as much as possible native environment. Every close solution or idea would help! 回答1: QEMU has support for big-endian ARM CPUs, but it does not currently have support for emulation of any specific machines (boards) which have big-endian

How to catch a memory write and call function with address of write

冷暖自知 提交于 2019-12-28 03:51:28
问题 I would like to catch memory writes to specific memory ranges and call a function with the address of the memory location being written to. Preferably, after the write to memory has already happened. I know this can be done by the operating system by twiddling with the page table entries. However, how can this be similar accomplished from within an application that wants to do this? 回答1: Well, you could do something like this: // compile with Open Watcom 1.9: wcl386 wrtrap.c #include <windows

Windows Mobile device incompatibilities - need suggestions for how to approach testing

北战南征 提交于 2019-12-25 04:30:36
问题 I have a user who runs my application on a Samsung BlackJack with WM 6.1. He reports issues, like labels not appearing on forms, that I cannot reproduce on any of the emulators or the device that I am developing with (T-Mobile Shadow and WM 6.0). What are my options to reproduce and identify issues like that, without getting any offending device myself and trying it out? 回答1: screen sizes are different. The resolutions may also be different. Microsoft has emulators for square pdas and vga

How to emulate a SATA disk drive in QEMU

 ̄綄美尐妖づ 提交于 2019-12-22 11:15:37
问题 I want to emulate a SATA disk drive in QEMU to check a device driver I'm trying to develop. How can this be done? Would greatly appreciate your help. 回答1: The Gentoo Wiki offers these parameters: -drive id=disk,file=IMAGE.img,if=none \ -device ahci,id=ahci \ -device ide-drive,drive=disk,bus=ahci.0 Set emulation layer for an ICH-9 AHCI controller (not yet stable ) and use the specified image file for it. The AHCI emulation supports NCQ, so multiple read or write requests can be outstanding at

How to decode the Nintendo logo from gameboy?

拟墨画扇 提交于 2019-12-21 07:40:53
问题 I've tried to decode the following bitmap using the background pallete scheme described at http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-Graphics CE ED 66 66 CC 0D 00 0B 03 73 00 83 00 0C 00 0D 00 08 11 1F 88 89 00 0E DC CC 6E E6 DD DD D9 99 BB BB 67 63 6E 0E EC CC DD DC 99 9F BB B9 33 3E source: http://gbdev.gg8.se/wiki/articles/The_Cartridge_Header#0104-0133_-_Nintendo_Logo But I only got something that resembles a noise. In what direction should I go? Is it using compression? I

Trap memory accesses inside a standard executable built with MinGW

余生长醉 提交于 2019-12-11 07:55:01
问题 So my problem sounds like this. I have some platform dependent code (embedded system) which writes to some MMIO locations that are hardcoded at specific addresses. I compile this code with some management code inside a standard executable (mainly for testing) but also for simulation (because it takes longer to find basic bugs inside the actual HW platform). To alleviate the hardcoded pointers, i just redefine them to some variables inside the memory pool. And this works really well. The

Installation and emulation of virtual USB Device

蹲街弑〆低调 提交于 2019-12-04 17:48:19
I already read Creating a Virtual USB Device and Virtual USB device about creating a virtual USB Device. I am familiar with the Plug and Play handling by Windows as well as the driver mechanism. So far I understood that first of all I would have to create another device driver which is used for the virtual USB device. But I am still lost on the point what actually is the virtual device. How would I control the behaviour of my virtual device? Background: I develop a software which acts as a communication layer between an API and the USB driver. The behaviour of the USB device is well known to

Simulate a faulty block device with read errors?

不想你离开。 提交于 2019-11-28 07:00:16
I'm looking for an easier way to test my application against faulty block devices that generate i/o read errors when certain blocks are read. Trying to use a physical hard drive with known bad blocks is a pain and I would like to find a software solution if one exists. I did find the Linux Disk Failure Simulation Driver which allows creating an interface that can be configured to generate errors when certain ranges of blocks are read, but it is for the 2.4 Linux Kernel and hasn't been updated for 2.6. What would be perfect would be an losetup and loop driver that also allowed you to configure

How to catch a memory write and call function with address of write

邮差的信 提交于 2019-11-27 12:56:53
I would like to catch memory writes to specific memory ranges and call a function with the address of the memory location being written to. Preferably, after the write to memory has already happened. I know this can be done by the operating system by twiddling with the page table entries. However, how can this be similar accomplished from within an application that wants to do this? Well, you could do something like this: // compile with Open Watcom 1.9: wcl386 wrtrap.c #include <windows.h> #include <stdio.h> #ifndef PAGE_SIZE #define PAGE_SIZE 4096 #endif UINT_PTR RangeStart = 0; SIZE_T