Libmrm.a is a library supplied with the MRM by Mark. As of version 3.0, this library has been replaced by internal routines. Some of these are from Motorobots library, but I also eliminated many that were in place simply for the conole read/write routines (printf). They were supplanted by routines in oSCI class for SCI communications. I found this desirable while reworking the whole QSM code portion. There was a lot of overhead in emulating iprintf/printf when 90% of the time, this is unwarranted and can be replaced by the simple read/write routines from oSCI. I vaguely remember my codebase for my robot code going from 250K to about 170K when I streamlined this portion. The problem with many libraries like stdio etc. is there is a lot of functionality provided; much more than we usually need. We are usually, in the end, better off (code size wise) by reimplementing the portions we need.
In addition to read, write routines in base.c, sbrk.c provides the sbrk routine needed for dynamic (heap) allocation.
The old OOMRM Library used provided by Mark, libmrm.a, contains many needed routines and stubs for the following routines:
As you can see, many of these make no sense in an embedded environment, and thus are likely stubs. Unfortunately, once you start using the GNU provided library routines, you have to include all the multitude of routines that they call rightly in a non embedded environment.