Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kernel_space [2007-07-12 18:32] nikkernel_space [2012-06-26 10:34] (current) nik
Line 2: Line 2:
  
  
-using scheme+using [[scheme language|scheme]]
  
 actually, a way of accessing hardware from a userspace repl. actually, a way of accessing hardware from a userspace repl.
  
-taken from news://comp.lang.scheme .. .+taken from newsgroup comp.lang.scheme .. .
  
 From: Rob Warnock (rpw3 (at) rpw3 (dot) org) From: Rob Warnock (rpw3 (at) rpw3 (dot) org)
  
-<file> +<html><pre>
 +--------------- +---------------
 | Harri Haataja wrote: | Harri Haataja wrote:
Line 90: Line 89:
 -Rob -Rob
  
- +</pre></html>
---+
  
 Just go for it! It's really easy to get started: Just go for it! It's really easy to get started:
  
-1. Run some O/S on your machine that allows you to "mmap()" PCI bus space +  - Run some O/S on your machine that allows you to "mmap()" PCI bus space into user mode (possibly requiring superuser privilege, but hey, it's *your* machine, right?).  Note: Some OSs don't provide "mmap()" access though device special files per se, but *do* let you use some other access path, such as /dev/mem, /dev/kmem, or /dev/mmem, etc., to map at least the memory space of I/O busses into use process space.
-   into user mode (possibly requiring superuser privilege, but hey, it's +
-   *your* machine, right?).  Note: Some OSs don't provide "mmap()" access +
-   though device special files per se, but *do* let you use some other +
-   access path, such as /dev/mem, /dev/kmem, or /dev/mmem, etc., to map +
-   at least the memory space of I/O busses into use process space.+
  
-2. Run some Scheme on your machine that allows you to dynamically link in +  - Run some Scheme on your machine that allows you to dynamically link in libraries at runtime (almost any of the popular ones, at least if the answer to #1 was some flavor of Unix or Linux), or use one of the ones that compile to C and let you link in stuff statically.
-   libraries at runtime (almost any of the popular ones, at least if the +
-   answer to #1 was some flavor of Unix or Linux), or use one of the ones +
-   that compile to C and let you link in stuff statically.+
  
-3. Find *some* card or chip whose memory register layout you know. +  - Find *some* card or chip whose memory register layout you know. (Older ones are sometimes easier to find documentation for.)
-   (Older ones are sometimes easier to find documentation for.)+
  
-4. Hack up a peek/poke/mmap/etc. library for your Scheme, map in that +  - Hack up a peek/poke/mmap/etc. library for your Scheme, map in that card (or chip), and start poking around to see what you can see.
-   card (or chip), and start poking around to see what you can see.+
  
 WARNING! It is *very* likely that you will crash the host several times WARNING! It is *very* likely that you will crash the host several times
 while getting this all to work. DO NOT USE A CRITICAL OR SHARED COMPUTER! while getting this all to work. DO NOT USE A CRITICAL OR SHARED COMPUTER!
- 
-</file> 
  
  • kernel_space.1184265165.txt.gz
  • Last modified: 2007-07-12 18:32
  • by nik