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
Last revisionBoth sides next revision
kernel_space [2007-07-12 18:32] nikkernel_space [2012-06-26 10:33] 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.
Line 10: Line 10:
 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.txt
  • Last modified: 2012-06-26 10:34
  • by nik