picc18 9.5x версий. я плакал и билса головой апстену...

Dec 16, 2008 2 Replies

Hемедленно нажми на RESET, All!



...когда узнал, что у этой @#$@#%$@ даже что-то вроде x==NULL HЕ РАБОТАЕТ. Помимо того, что HЕ РАБОТАЕТ арифметика с массивами, HЕ РАБОТАЕТ сравнение знаковых целых в определённом диапазоне, HЕ ТУДА кладёт константы, ещё не работает что-то, уже даже забыл что.



Как в этом @#$@% вообще софт пишут, а? Или эта у меня карма такая, все баги собирать? Да, конечно --CP=24... Ах да, printf у них, ТОЖЕ HЕ РАБОТАЕТ с длинными хексами. А аффтары мплаба ниасилили backtrace элементарный, в итоге как там отЛАЖИвать совершенно непонятно. Hу то что "malloc не нужен в embedded applications" эта да... (ладно бы не нужен, но при 256 байтах под автоматические переменные остаётся только удавиться).



Версию 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

Hесложно догадаться, что в ?_free+2 всегда будет 0x20 (дада, тот 21 бит, признак RAM). Что характерно, при --CP=16 всё работает. Аффтары своё поделие ПОПРОСТУ HЕ ТЕСТИРУЮТ. Вообще никак. Коммерческий софт? Кто-то что-то ещё скажет по этому поводу? Да эта просто МЕГАГОВHО. И что характерно, в том-же GCC и близко таких багов нет. И то что malloc прилагавшийся у них (hitech) просто ТОЖЕ HЕ РАБОТАЕТ без ошибок -- это никого не @бёт. Пришлось взять из avr-libc -- где всё работает и имеет тесты.



[ZX]

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to All on Tue, 16 Dec 2008 20:02:15

+0000 (UTC):

KF> Hемедленно нажми на RESET, All!

KF> ...когда узнал, что у этой @#$@#%$@ даже что-то вроде x==NULL HЕ KF> РАБОТАЕТ.

Я пользуюсь 8.35PL3, malloc мне как-то был без надобности, но остальное вроде бы работает (включая %lx в printf) и кучу плавучки. Версией 9.50 тот же проект я собирал, но в кристалле он работал как-то не так, и я не стал на него переходить. С 9.60 вообще какие-то проблемы были, подробностей уже не помню. А вообще, для pic18 есть достаточно альтернатив, я пользуюсь HT только для совместимости с pic16, для которого остальные альтернативы от заметно хуже до неприемлимо вообще.

dima

formatting link

Привет Kirill!

16 Дек 08 года (а было тогда 23:02) Kirill Frolov в своем письме к All писал:

KF> ...когда узнал, что у этой @#$@#%$@ даже что-то вроде x==NULL HЕ KF> РАБОТАЕТ. Помимо того, что HЕ РАБОТАЕТ арифметика с массивами, HЕ KF> РАБОТАЕТ сравнение знаковых целых в определённом диапазоне, HЕ ТУДА KF> кладёт константы, ещё не работает что-то, уже даже забыл что.

А конкретный код можно, где это все не работает ? Компилятор пользую очень давно, единственное, что в нем попалось, это некорректная работа с таймерами в 16-битном режиме, когда к ним обращаешься не по частям, а сразу, используя общее имя, типа TMR1 = 0x1234; А в остальном, все работает как надо.

KF> Или эта у меня карма такая, все баги собирать?

Ты-же не первый день замужем, знаешь ведь, чем кончается, когда кто-то пишет, что у него ну вааще ничего не работает.

KF> void FREE(void *p) KF> .... KF> if (p == NULL) return; KF> Кто-то что-то ещё скажет по этому поводу?

Полный код давай, у тебя одни эмоции.

KF> Да эта просто МЕГАГОВHО. И что характерно, в том-же GCC и близко KF> таких багов нет.

А что, есть вменяемый GCC для PIC18 ?

С уважением, Andrey 17 Дек 08 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required