Paulus Checksum Tool (Paulus_CRC)
Paulus checks the received data by a CRC checksum. Therefore the application program has to have a header. This header can be generated with the port tool paulus_cksum.
The tool paulus_cksum are available as console program for Windows or Linux PCs.
Follow excerpt shows the option parameter from this tool:
$ paulus_cksum
no input file
usage: cksum [-a addr][-b addr][-d][-e addr][-F addr][-x execaddr]
[-f format][-h][-j][-l length][-o filename][-P][-v][-V] file [2nd file] ...
options:
-a write CRC into input file at ’addr’ (default 0)
-b start address of crc check range (default 0)
-B Create Boot Record with -o
-C use CANopen CRC algorithm
-d with debug output
-e end address of crc check range (incl.)
-f crc data format (’little’ or ’big’ endian, default ’little’)
-F Flash end address +1 (== Flash size)[Byte]
-h display this help text
-j join/mix 2 input files (e.g. for DSP images)
-l length of appl. header [Byte] (default 128)
-o write appl. header for bootloader into ’filename’
-O merge application header + binary into ’filename’
-P dsPic33 specific
-v verbose operation
-V display version information
-x Set execute address (default 0, invalid)
Example: The download file for the application program s1_download.bin is generated about Windows console:
C:\jsc\Paulus_STM32F4xx\software\tools>paulus_cksum.exe -v -C -l 256
-x 0x08008100 s1_stm32f4xx.bin -O s1_download.bin
reduce Flash end to file end: 0x0000599c
reduce EndAddr to the Flash end 0x0000599b
address - crc: 0x00000000, start: 0x00000000, end: 0x0000599b, exec 0x08008100
Flash end: 0x0000599c
out: >s1_download.bin<
input: >s1_stm32f4xx.bin<
calc CRC from 0x00000000 to 0x0000599b
size: 0x0000599c, crc: 0x0f5a
Writing Appl. to >s1_download.bin<:
length: 22940/0x599c, crc: 0x0f5a, execadr: 0x08008100
The calculated parameters application length, crc and the set entry address are transferred to the header of the download file.
More examples of using in different platforms are described: Platforms