ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
142403
fk0, легенда (16.12.2008 19:51, просмотров: 6192)
picc18 9.5x версий. я плакал и билса головой апстену... ...когда узнал, что у этой @#$@#%$@ даже что-то вроде x==NULL НЕ РАБОТАЕТ. Помимо того, что НЕ РАБОТАЕТ арифметика с массивами, НЕ РАБОТАЕТ сравнение знаковых целых в определённом диапазоне, НЕ ТУДА кладёт константы, ещё не работает что-то, уже даже забыл что. Как в этом @#$@% вообще софт пишут, а? Или эта у меня карма такая, все баги собирать? Да, конечно --CP=24... Ах да, printf у них, ТОЖЕ НЕ РАБОТАЕТ с длинными хексами. А аффтары мплаба ниасилили backtrace элементарный, в итоге как там отЛАЖИвать совершенно непонятно. Ну то что "malloc не нужен в embedded applications" эта да... Версию 8.xx не предлагать. Там вообще ничего работать не будет. void FREE(void *p) .... if (p == NULL) return; вырождается в: 1345 ;malloc.c: 299: if (p == (0)) return; 1346 007C64 0100 movlb __Lparam shr (0+8) 1347 007C66 517F movf ?_free^(__Lparam& (0+65280)),w 1348 007C68 1180 iorwf (?_free+1)^(__Lparam& (0+65280)),w 1349 007C6A 1181 iorwf (?_free+2)^(__Lparam& (0+65280)),w 1350 007C6C B4D8 btfsc status,2,c 1351 007C6E 0012 return Несложно догадаться, что в ?_free+2 всегда будет 0x20 (дада, тот 21 бит, признак RAM).
[ZX]