Hey!
So, I'm chest deep in this project, and I've gotten into a bit of trouble.
The project is basically a small network operating system that will manage the communcations between a bunch of network nodes (AVR microcontrollers) and a computer. I am wanting to use CRC 16 to do the error checkingon the data transmitions.
I have found that not all crc libraries are the same... infact, i have yet to find any two that consitantly give the same result... and this is problematic. Because I need to get the same algorythmic results on both devices, I have decided that it would be ideal just to run the same code on both devices.... but... !
The various pieces of normal c code that I've found work fine on the computer, but they all want to geneate a lookup table which is 512 bytes!!!! And that is exactly 100% of the ram that I've got available on one of my microcontrollers... ain't gonna work.
Their is one piece of code that I've found that doesn't need a lookup table. It comes with the avr-libc libraries and is called avr/crc16.h. It works great on the microcontrolers, but I can't seem to figure out how to get it to run on my unix box (mac osx command line... aka BSD). That code is here...
http://www.propox.com/download/edune...8h-source.html
It looks to me like assembler code, and I don't really know how to integrate that in. If I go and just straight compile it, gcc barfs on the the "asm" line... which I'm not sure how to replace.
Any suggestions would be greatly apprecieated.
Thanks,
Bill