Thursday, August 21, 2008

This example was compiled with an old version of IAR, which would only pass parameters in r12 and r14. r15 is the first scratch register, and r13 the second. GCC allocates r15, r14, r13, r12; recent revisions of IAR allocate r12, r13, r14, r15.

Sunday, June 29, 2008

It's an understatement to say that the m4s code has become a bit cluttered. To that end, I've begun to separate the code into modules and scripts. The code code has been moved to MSP430static.pm. msp430static.pl remains as a simple wrapper.

Further, a scripting feature has been added. Scripts reside in $m4s/scripts, and it is my intention to remove all unessential code from MSP430static.pl into the scripting directory. A script is called by name, preceded by a forward slash. The script loadmacros.pl, for example, is called as "/loadmacros". Subdirectories are supported. A matching textfile, loadmacros.txt, contains a short description for generating documentation.

Also, .lib.import.hashed is no longer run by default at initialization. Be sure to call it if you expect to recognize functions.

Please email me if you've any confusion regarding this processor, or have uncovered any bugs therein.

Friday, June 27, 2008

I've just committed a minor but useful feature to make my life easier while generating function flow diagrams. The new syntax follows,echo "select insflow(asm) from code where ...;" | m4s sql graph >foo.dot"

Sunday, April 27, 2008

R57 includes a major new feature. A hashed function symbol library has been committed to the subversion repository. If I have a copy of a function, and you have that function in an example program, you can now recover it with a single command after initialization!

Consider the following example, wherein a stripped LED blinker is loaded and its symbols recovered.

Revision 57 includes hashed symbols for TinyOS, Contiki, GNU's libc, and ImageCraft ICCV7's libc. If you have access to other libraries, please send me the file produced by m4s .contribute.lib after inputing the library.

(Note that msp430static only includes one-way hashes of library functions. This is more spartan than the fingerprint format used for privately-imported libraries, but it's necessary to comply with copyright law.)

Saturday, April 12, 2008

Revision 50 has been committed. I've added the .contribute.bsl macro, made the "shell" directive default, and added a revised memory mapper macro.

The new memmap macro draws FFFFFFFF areas--which are likely uninitialized flash--as black. '.word ????' code--which I find large expanses of in some ripped images--are grey. This coloring should only be apparent on code which has been dumped from a chip, as most compilers leave such expanses undefined. I also fixed the ragged edge and overlapping pixel bugs. A screenshot of the default programming of the MSP-EXP430FG4618 kit follows.

The shell directive is now default, so typing "m4s shell" can now be shortened to "m4s" if no parameters are necessary.

Rather than polluting my own blog with msp430static minutia, I've decide to create this site. This will mostly be for announcements, such as feature additions. Long articles will remain on my own blog.