Keil Logo

CRC-32 or CRC-16 code

Next Thread | Thread List | Previous Thread Start a Thread | Settings

Details Message
Read-Only
Author
Mauricio Harley
Posted
6-Feb-2001 12:07 GMT
Toolset
C51
New! CRC-32 or CRC-16 code
Dear friends,

I'm trying to develop a CRC-32 routine for my V-Star Quisar 320 using the Keil C51 compiler suite. I have found (in the Internet) a sample C code implementing CRC-32 algorithm.

Testing this code in Turbo C (for DOS) and in Visual Basic (after the addequate porting), it runs perfectly. The same Turbo C code compiled and downloaded to Quisar 320 does not produce the same result as in PC.

What can I do to make my code run and produce the correct result in Quisar 320? Someone knows a CRC routine specific to this model of machine?

Thanks,
Mauricio Harley
Read-Only
Author
Andrew Neil
Posted
6-Feb-2001 13:36 GMT
Toolset
C51
New! RE: CRC-32 or CRC-16 code
When you say, "addequate porting" are you sure?
Remember that the PC has a different word size and different byte ordering.

The fact that you have 2 working PC versions, but the embedded version fails, suggests that you have an unsafe dependency on the PC architecture.

Check the thread, "onversion (sic) 8/16 bit types problem"
http://www.keil.com/forum/msgpage.asp?MsgID=1109
Including the link to Mark Odell's site, which gives some platform-independence tips.

The use of unions to access individual bytes of 16- or 32-bit words is particularly non-portable; eg, see Keil Knowledgebase article http://www.keil.com/support/docs/1279.htm

(I'll collect my comission later, Mark!)
Read-Only
Author
Mark Odell
Posted
6-Feb-2001 13:40 GMT
Toolset
C51
New! RE: CRC-32 or CRC-16 code
(I'll collect my comission later, Mark!)

Okay, and thanks again.

- Mark
Read-Only
Author
Doug Hewett
Posted
13-Feb-2001 02:36 GMT
Toolset
C51
New! RE: CRC-32 or CRC-16 code
Joe Campbell's 'C Programmers Guide to Serial Communications', ISBN 0-672-30286-1 has an excellent treatment of CRC.

Hint. I believe that there is a 10 byte sequence that is used as a benchmark to see if a CRC is implemented properly. It is either 0-9 (decimal) or 1-10 (decimal). In any case, if you find a 'known good' crc program and you know what type it is, you can (should?) create your own data points.

Next Thread | Thread List | Previous Thread Start a Thread | Settings

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.