testerplus (03.02.2011 17:42, просмотров: 321) ответил FDA на Да не хочу я такой бред слушать. Я этот компилятор уже восемь лет юзаю и проблем с ним никогда не было. Мелкие косяки везде есть, но выявляются они и обходятся очень легко. Самое главное здесь - лаконичный, не перегруженный всякими pragma'ми код,
Хозяин - барин. Держи пример. Я за несколько лет работы с picc18 выловил уже ведро багов, ты просто не натыкался еще. #include <pic18.h>
void (*www)(), (*eee)();
void func1 ()
{
char i = 10;
do {
eee();
} while(--i);
}
void func2 ()
{
}
void main (void)
{
asm(" global _func1 ");
asm(" fncall _main, _func1 ");
asm(" fncall _func1, _func2 ");
www = func1;
eee = func2;
www();
while (1);
}
fncall можешь закомментировать, если не нравится. Данный пример просто не соберется, будет ругаться на рекурсию. Убери из него любую строчку - он начнет собираться. Когда программа большая, ошибку локализовать крайне сложно (а возникает она неожиданно: работало, работало, а потом, после добавления очередной локальной переменной, все падает)
У меня была целая коллекция хайтековских косяков (что для 18х, что для 16х), вычистил недавно. Сейчас есть на диске программа (извини, чужая, исходники не дам), в которой перекрываются константы в ROM для инициализации переменных.