diff options
| -rw-r--r-- | INSTALL | 106 | ||||
| -rw-r--r-- | Makefile.am | 2 | ||||
| -rw-r--r-- | ccdump/Makefile.am | 10 | ||||
| -rw-r--r-- | ccdump/ccdump.c | 52 | ||||
| -rw-r--r-- | configure.ac | 1 | ||||
| -rw-r--r-- | lib/cc-usb.c | 4 | ||||
| -rw-r--r-- | lib/cc-usb.h | 6 | 
7 files changed, 129 insertions, 52 deletions
| @@ -1,13 +1,19 @@ -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software -Foundation, Inc. +Installation Instructions +************************* -   This file is free documentation; the Free Software Foundation gives +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007 Free Software Foundation, Inc. + +This file is free documentation; the Free Software Foundation gives  unlimited permission to copy, distribute and modify it.  Basic Installation  ================== -   These are generic installation instructions. +Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package.  The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package.     The `configure' shell script attempts to guess correct values for  various system-dependent variables used during compilation.  It uses @@ -20,9 +26,9 @@ debugging `configure').     It can also use an optional file (typically called `config.cache'  and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring.  (Caching is +the results of its tests to speed up reconfiguring.  Caching is  disabled by default to prevent problems with accidental use of stale -cache files.) +cache files.     If you need to do unusual things to compile the package, please try  to figure out how `configure' could check whether to do them, and mail @@ -32,20 +38,17 @@ some point `config.cache' contains results you don't want to keep, you  may remove or edit it.     The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'.  You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. +`configure' by a program called `autoconf'.  You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'.  The simplest way to compile this package is:    1. `cd' to the directory containing the package's source code and type -     `./configure' to configure the package for your system.  If you're -     using `csh' on an old version of System V, you might need to type -     `sh ./configure' instead to prevent `csh' from trying to execute -     `configure' itself. +     `./configure' to configure the package for your system. -     Running `configure' takes awhile.  While running, it prints some -     messages telling which features it is checking for. +     Running `configure' might take a while.  While running, it prints +     some messages telling which features it is checking for.    2. Type `make' to compile the package. @@ -64,54 +67,55 @@ The simplest way to compile this package is:       all sorts of other programs in order to regenerate files that came       with the distribution. +  6. Often, you can also type `make uninstall' to remove the installed +     files again. +  Compilers and Options  ===================== -   Some systems require unusual options for compilation or linking that -the `configure' script does not know about.  Run `./configure --help' -for details on some of the pertinent environment variables. +Some systems require unusual options for compilation or linking that the +`configure' script does not know about.  Run `./configure --help' for +details on some of the pertinent environment variables.     You can give `configure' initial values for configuration parameters  by setting variables in the command line or in the environment.  Here  is an example: -     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix +     ./configure CC=c99 CFLAGS=-g LIBS=-lposix     *Note Defining Variables::, for more details.  Compiling For Multiple Architectures  ==================================== -   You can compile the package for more than one kind of computer at the +You can compile the package for more than one kind of computer at the  same time, by placing the object files for each architecture in their -own directory.  To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'.  `cd' to the +own directory.  To do this, you can use GNU `make'.  `cd' to the  directory where you want the object files and executables to go and run  the `configure' script.  `configure' automatically checks for the  source code in the directory that `configure' is in and in `..'. -   If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory.  After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. +   With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory.  After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture.  Installation Names  ================== -   By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc.  You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. +By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc.  You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX'.     You can specify separate installation prefixes for  architecture-specific files and architecture-independent files.  If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix.     In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular +options like `--bindir=DIR' to specify different values for particular  kinds of files.  Run `configure --help' for a list of the directories  you can set and what kinds of files go in them. @@ -122,7 +126,7 @@ option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.  Optional Features  ================= -   Some packages pay attention to `--enable-FEATURE' options to +Some packages pay attention to `--enable-FEATURE' options to  `configure', where FEATURE indicates an optional part of the package.  They may also pay attention to `--with-PACKAGE' options, where PACKAGE  is something like `gnu-as' or `x' (for the X Window System).  The @@ -137,11 +141,11 @@ you can use the `configure' options `--x-includes=DIR' and  Specifying the System Type  ========================== -   There may be some features `configure' cannot figure out -automatically, but needs to determine by the type of machine the package -will run on.  Usually, assuming the package is built to be run on the -_same_ architectures, `configure' can figure that out, but if it prints -a message saying it cannot guess the machine type, give it the +There may be some features `configure' cannot figure out automatically, +but needs to determine by the type of machine the package will run on. +Usually, assuming the package is built to be run on the _same_ +architectures, `configure' can figure that out, but if it prints a +message saying it cannot guess the machine type, give it the  `--build=TYPE' option.  TYPE can either be a short name for the system  type, such as `sun4', or a canonical name which has the form: @@ -156,7 +160,7 @@ where SYSTEM can have one of these forms:  need to know the machine type.     If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will +use the option `--target=TYPE' to select the type of system they will  produce code for.     If you want to _use_ a cross compiler, that generates code for a @@ -167,9 +171,9 @@ eventually be run) with `--host=TYPE'.  Sharing Defaults  ================ -   If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. +If you want to set default values for `configure' scripts to share, you +can create a site shell script called `config.site' that gives default +values for variables like `CC', `cache_file', and `prefix'.  `configure' looks for `PREFIX/share/config.site' if it exists, then  `PREFIX/etc/config.site' if it exists.  Or, you can set the  `CONFIG_SITE' environment variable to the location of the site script. @@ -178,7 +182,7 @@ A warning: not all `configure' scripts look for a site script.  Defining Variables  ================== -   Variables not defined in a site shell script can be set in the +Variables not defined in a site shell script can be set in the  environment passed to `configure'.  However, some packages may run  configure again during the build, and the customized values of these  variables may be lost.  In order to avoid this problem, you should set @@ -186,14 +190,18 @@ them in the `configure' command line, using `VAR=value'.  For example:       ./configure CC=/usr/local2/bin/gcc -will cause the specified gcc to be used as the C compiler (unless it is +causes the specified `gcc' to be used as the C compiler (unless it is  overridden in the site shell script). +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug.  Until the bug is fixed you can use this workaround: + +     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash +  `configure' Invocation  ====================== -   `configure' recognizes the following options to control how it -operates. +`configure' recognizes the following options to control how it operates.  `--help'  `-h' diff --git a/Makefile.am b/Makefile.am index 5341ab33..ee3d2924 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1 +1 @@ -SUBDIRS=lib ccload s51 ccmanual +SUBDIRS=lib ccload s51 ccmanual ccdump diff --git a/ccdump/Makefile.am b/ccdump/Makefile.am new file mode 100644 index 00000000..976383f7 --- /dev/null +++ b/ccdump/Makefile.am @@ -0,0 +1,10 @@ +bin_PROGRAMS=ccdump + +AM_CFLAGS=-I$(top_srcdir)/lib $(LIBUSB_CFLAGS) +CCLOAD_LIBS=../lib/libcc.a + +ccdump_DEPENDENCIES = $(CCLOAD_LIBS) + +ccdump_LDADD=$(CCLOAD_LIBS) $(LIBUSB_LIBS) + +ccdump_SOURCES = ccdump.c diff --git a/ccdump/ccdump.c b/ccdump/ccdump.c new file mode 100644 index 00000000..5a5ce11c --- /dev/null +++ b/ccdump/ccdump.c @@ -0,0 +1,52 @@ +/* + * Copyright © 2009 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +#include <stdio.h> +#include <stdlib.h> +#include "cc-usb.h" + +#define NUM_BLOCK	512 + +int +main (int argc, char **argv) +{ +	struct cc_usb	*cc; +	int		block; +	uint8_t		bytes[32 * (2 + 8)]; +	uint8_t		*b; +	int		i, j; +	uint32_t	addr; + +	cc = cc_usb_open(); +	for (block = 0; block < NUM_BLOCK; block++) { +		cc_queue_read(cc, bytes, sizeof (bytes)); +		cc_usb_printf(cc, "e %x\n", block); +		cc_usb_sync(cc); +		for (i = 0; i < 32; i++) { +			b = bytes + (i * 10); +			addr = block * 256 + i * 8; +			printf ("%06x", addr); +			for (j = 0; j < 8; j++) { +				printf (" %02x", b[j+2]); +			} +			printf ("\n"); +		} +	} +	cc_usb_close(cc); +	exit (0); +} diff --git a/configure.ac b/configure.ac index 516657ea..1d4720a6 100644 --- a/configure.ac +++ b/configure.ac @@ -98,4 +98,5 @@ lib/Makefile  ccload/Makefile  s51/Makefile  ccmanual/Makefile +ccdump/Makefile  ]) diff --git a/lib/cc-usb.c b/lib/cc-usb.c index 5da36fe9..09b06bb5 100644 --- a/lib/cc-usb.c +++ b/lib/cc-usb.c @@ -201,7 +201,7 @@ cc_usb_sync(struct cc_usb *cc)  	}  } -static void +void  cc_usb_printf(struct cc_usb *cc, char *format, ...)  {  	char	buf[1024], *b; @@ -251,7 +251,7 @@ cc_usb_send_bytes(struct cc_usb *cc, uint8_t *bytes, int len)  	return ret;  } -static void +void  cc_queue_read(struct cc_usb *cc, uint8_t *buf, int len)  {  	struct cc_read	*read_buf; diff --git a/lib/cc-usb.h b/lib/cc-usb.h index 235e9918..2adccb93 100644 --- a/lib/cc-usb.h +++ b/lib/cc-usb.h @@ -50,4 +50,10 @@ cc_usb_reset(struct cc_usb *cc);  void  cc_usb_sync(struct cc_usb *cc); +void +cc_queue_read(struct cc_usb *cc, uint8_t *buf, int len); + +void +cc_usb_printf(struct cc_usb *cc, char *format, ...); +  #endif /* _CC_USB_H_ */ | 
