Цитата(sergeeff @ Nov 27 2007, 23:23)

http://www.zlib.net/ - A Massively Spiffy Yet Delicately Unobtrusive Compression Library.
У меня поставилась на ARM без малейших проблем.
Поставилась - это только 10% всех проблем. Оно виснет/вылетает по exception при работе на всяких там операциях типа:
Цитата
#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8)
if (*((unsigned char *)(&endian)))
Потому что проц настроен на проверку выравнивания памяти. Т.е. если
R0 = 0x1000;
STRB R1,[R0] - отработает нормально. Т.к. в R0 адрес
кратный 4.
А если
R0 = 0x1001;
STRB R1,[R0] - завалится. Т.к. в R0 адрес
некратный 4.
Если нужно писать по адресу 0x1001 должен генериться вот такой код:
R0 = 0x1000;
STRB R1,[R0,#1]
Сорцы zlib должны учитывать выравнивание памяти. Пока что не могу нигде найти.
p.s. Может как-то настроить можно компилер? Я на IAR'e.
Сообщение отредактировал Hexxx - Nov 28 2007, 10:20