Mini RoboMind

Code

libmrm v0.6 - (150k) Changes since v0.5 include normalization of commenting styles to support doxygen. Full doxygen generated docs in HTML format, addition of initial TPU servo code, and assorted minor tweaks.

libmrm v0.5 - (27k) First release of the new MRM library. 99% is repackaging of DPA's libmrm_x code with one or two extra files thrown in. The old libmrm stuff isn't needed if newlib is used with gcc. Minor changes have been made to allow code to compile with gcc 3.4.3. GNU GPL header blocks have been added in comment section of .c code. I'm calling it the “DPRG MRM Library” for now - is that okay or is some other designation preferred? (I'm easy - I'll go with just about anything). Still needs some work before any sort of public release. Mostly more clean up and coding style normalization.

gcc-mrm.tar.gz - (56Mb) Linux i686 binaries for new cross tool chain based on gcc 3.4.3, binutils 2.15, and newlib 1.12. Compiled on Redhat Linux 9. No MRM-specific libraries or stuff is included, just the generic m68k newlib stuff. Untar in your /opt directory, set path to reference /opt/gcc-mrm/bin prior to any other gcc locations, and you're ready to compile.

rsr-mrmtest.tar.gz - (120k) Complete source and make file to compile the MRM test program using the new tool chain.

mrm.tar.gz - Here is a g'zipped tarball of dpa's MRM code (as of Dec 9 2004). It includes modifications to the motorobot's libmrm.a to allow printing to the LCD display using fprintf(stderr,”…”). Also included are the realtime OS functions ported from SR04 and included in the libmrm_x.a library, and some sample test code is included in the directory “bot”.

MRM libraries

  • Original MRM CD-ROM - there actually is no specific MRM library on the CD. It contains a pile of commonly used c files that are simply dumped into your project directory and linked at compile time. However, in one of the test program directories, for mrmtest, there is a precompiled library called libmrm.a. But there is no source to make it and upon closer inspection, it turns out to be a copy of libbcc.a from the newlib package. As further evidence, you can compile the example code from the original CD-ROM with the new gcc 3.4.3 tool chain by replacing any occurance of -lmrm with -lbcc in the .ld scripts.
  • Motorobots MRM libraries - Available only from the Sourceforge CVS, this code is very old and appears to use inline assembly constructs not supported in modern versions of gcc. There is no libmrm. Instead, there are lots of smaller libraries such as libtpu and liblcd for each function of the board. I have been unable to compile this code with gcc 3.4.3. The library was originally written by Daffyd Walters and others. It appears to be unsupported but some folks on the MRM list replied that they were still working on it. There is almost no code overlap with any of the other MRM libraries, however, so some this might be good for reference purposes.
  • DPA libmrm 1 - I'm not sure where this came from. It can be compiled successfully with gcc 3.4.3. Some of the files match pretty closely with the non-library C code supplied on the MRM CD-ROM. The rest is pretty much copied from the newlib libgloss bcc code. I'm betting someone just repackaged this code in the form of a library at some point (Avi Cohen thinks he may have created it some years ago and passed copies around to other MRM users). Two of the files have been modified (and commented) by DPA - read.c and write.c. The modfications conflict with the library code used by the m68k libgloss in gcc 3.4.3 and seem to cause crashes when the two are mixed. I've compared other microcontroller multi-tasking packages (e.g. nanoK for the 68HC11) and I think what we need to do is simply rename the modified read/write functions so they don't conflict with the other functions in the normal C library that rely on them. This would require making minor changes to existing code that uses this library.
  • DPA libmrm 2 (aka libmrm_x) - This contains additional code not found in DPA libmrm 1 or any other MRM libraries. Most of the code was developed by DPA for use with his robots. Does not duplicate DPA libmrm 1, which is still required. It now compiles cleanly and runs with gcc 3.4.3.
  • Avi libmrm - Contains some files which are identical to files in DPA libmrm 1, some which are similar to files in DPA libmrm 2, and some which do not occur in other libraries. Some of his code, the makefile, and .ld script have been modified to work with gdb and the BDM instead of the serial port. These changes tend to make things crash when not used the way he intended. Might be good for reference at least.
  • Derek Jones MRM C++ library - All C++ so it's not of any direct use to us but it does contain some interesting functions including audio support and code supporting a variety of common robot sensors.

Tool Chain Links

  • MRM cross compiler steps - 2 documents containing alleged steps for building OS X to MRM m68k cross-compiler from source.
  • Porting newlib - recommended step for porting newlib from the newlib maintainers.
  • Specifying .ld script - email discussing correct usage of the linker -T argument to specify the appropriate .ld file.
  • OAR RTEM gcc - Recent gcc source and binaries (including i386/i686 RPMs) with 68K-specific patches. Maintained by the RTEM folks and one of the gcc team.
  • Kegel cross tool - Dan Kegel automagical, all-in-the-same-one gcc cross compiler build script
  • Cross GCC FAQ - Eventually all sites point you to this site for answers. This site says “Down for system maintenance. Please check back later.”

General MRM links

Other Stuff

  • Scarab GC vehicle MRM - The Scarab team GC vehicle uses an MRM. This link is the block diagram.
  • Duane Gustavus post - Post by some guy in Denton who uses the MRM and RTEMs. Do we know this guy? Has he been to a DPRG meeting?

Duane is a fellow robot builder in Denton. The rtems stuff on the disk I gave you (will give you?) is Duane's. Here's one of his robots: http://www.geology.smu.edu/~dlg/robot

  • uClinux - Just for kicks… In theory uClinux will run on the 68332. No, I don't want to try it on the MRM! Just thought it was amusing.
 
darpa/mrm.txt · Last modified: 2005/04/20 00:00 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki