/* cortex_crc — calculate crc of file and append at end
crctab and the crc formula is taken from Linux coreutils cksum.c and is
Copyright (C) 1992, 1995-2006, 2008-2010 Free Software Foundation, Inc.
Written by Q. Frank Xia, qx@math.columbia.edu.
Cosmetic changes and reorganization by David MacKenzie, djm@gnu.ai.mit.edu.
How to calculate crc the way the ST cortex processors do was described by http://www.st.com MySTForum
post at 8/31/2009 9:11 PM by brian.d.myers
The rest of this source is Copyright (C) 2010 Odd Arild Olsen.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
to compile: gcc cortex_crc.c -ocortex_crc
Usage: cortex_crc [file…]
*/
#include
#include
#include
uint32_t crc;
uint32_t buf[256];
//—————————————————————————————————————-
//
static const uint32_t crctab[256] =
{
0x00000000,
0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b,
0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6,
0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac,
0x5bd4b01b, 0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f,
0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a,
0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58,
0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033,
0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe,
0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4,
0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0,
0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5,
0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07,
0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c,
0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1,
0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b,
0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698,
0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d,
0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, 0xc6bcf05f,
0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34,
0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80,
0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a,
0x58c1663d, 0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629,
0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c,
0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e,
0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65,
0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8,
0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2,
0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71,
0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74,
0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21,
0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a,
0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087,
0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d,
0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce,
0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb,
0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09,
0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662,
0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf,
0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
};
void CrcInit(void)
{
crc = 0xffffffff;
}
uint32_t CortexCrc(uint8_t *src, int len )
{
uint8_t *bp;
int idx;
for (idx=0; idx < len; idx++) {
bp = src + (idx^0x3);
crc = ( crc <> 24 ) ^ *bp ) & 0xFF ];
}
return crc;
}
int main(int argc, char *argv[])
{
int n;
FILE* fp;
char space= ‘ ‘;
if (argc != 2)
{
printf(“Use: cortex_crc filename\n”);
return 1;
}
fp = fopen(argv[1], “rb”);
if(fp == NULL)
{
printf(“Can’t open file %s for reading\n”, argv[1]);
return 2;
}
CrcInit();
while(1)
{
n= fread(buf, 1, sizeof(buf), fp);
if(n%4 != 0)
{
printf(“File length must be multiple of 4 bytes “);
return 3;
}
CortexCrc((uint8_t *)buf, n);
if(n != sizeof(buf)) break;
}
fclose(fp);
if(crc==0)
{
printf(“crc is 0, so the crc has already been appended\n”);
return 4;
}
fp= fopen(argv[1], “ab”);
if(fp == NULL)
{
printf(“Can’t open file %s for writing\n”, argv[1]);
return 5;
}
fwrite(&crc, 1, 4, fp);
fclose(fp);
printf(“crc appended to file: %x\n”, crc);
return 0;
}
Now I am trying to move away to thunderbird. Even this is a mess. Exporting mail hangs on certain folders and I have to copy around the content of this folder to get export working again …..
KDE Desktop is going down. From my point of view the two main applications that made me move to KDE a long time ago are broken now:
Kmail and Amarok …. it is such a disappointment.
the one-liner worked out of the box and the eml subdirectories had been created fast.
Anyhow, I had some strange occurences importing them, that I want to share (infos are translated into english as I use a german system)
– I needed to search the “Thunderbird ImportExportTools” with google, download it locally and then to install it via “extra->addon/ -> /Install from file (last one kind of hidden 🙂
[I did not find it with the thunderbird -search function within the “addon” feature. Maybe me :)]
– I needed to create a “new” mail account, as the export-import tool did not import to “local” (checking “local” it says, it does not exist, so, there might be some issues on my side updating from mint 17 to mint 18) – anyhow, after i created a second email-account (the “first” is an IMAP one since 2016), the importexport tool started to react properly (before, it did nothing at all while trying to import).
– I created the sub folders “inbox” and “sent” in the second account, right-clicked on “inbox” and then went for “import/Export”->import all mails from a folder->including subfolders and searched for the kmail-inbox folder “inbox” (not eml, but above) finaly imported all old Emails. (same with “sent”).
Nice explanation and thanks!
]]>If you are interested in some statistical data, like how much a hamster is running, or how far did he manage to get, visit:
]]>I really liked kmail, but while the whole akonadi thing is a fascinating piece of technology, I finally decided I don’t need the functionality it provides and got better use for the RAM.
]]>They’ll be giving us a registry, next, but back to kmail: I wish I could work out how to have simple sorted by date, threaded views, without the windows-inspired “today”, “yesterday”, “last week” space wasting separators (I display the date in the list, and usually know what date it is today). I reckon some new developer though “how cool to work out when “last week” was”, and put it in. T*****s!
]]>I have been using kmail for about ten years and finally gave up. It is now a substandard product, buggy, unresponsive, and contrary to the previous linux/unix philosophy of one good tool for one job. Now it is tied to the symantic concept through akonadi, which seems to have been born broken and broken is in its genes. Have lost mail to many times to continue to wait for a usable and dependable mail client.
]]>I’ve been with Kmail for years as well, and it’s with great sadness that I too am finally resolving to quit. I have nothing against Thunderbird, in fact I quite like it, but I was staying with Kmail because it really could be such a great application. But it’s just so horribly buggy. I can’t take any more ‘broken resource’ error messages, any more backend changes that require my entire email history to be re-imported (to the same application!), and on and on. Time to quit.
]]>I am using code sourcery g++ lit and eclipse, and i am unable to connect to openocd also.
plz provide help.
Regards
Raksha
I did complain to Technologic when I moved over to the TS7550, and removed that functionality from the software. At the time, they said they were unaware that customers were using the NVRAM in the RTC.
I will go back to TS with this, since I am buying between one and two hundred boards per month.
]]>