Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Странности при компилиране за Renesas RL78 с KPIT
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=13970
Страница 1 от 1

Автор:  dumfree [ Пон Авг 10, 2015 2:53 pm ]
Заглавие:  Странности при компилиране за Renesas RL78 с KPIT

Някой да е настъпвал мотика с неправилно link-ване за Renesas RL78 при работа с KPIT GNU?
Имаме функция от вида:
Код:
DoSomething(char * argument)
{
    strcpy(somewhere, argument);
    DoAnotherThings();
}


Кода е от вида на:
Код:
    DoSomething("blabla");
    Func1();
    Func2();
    DoSomething("ala bala");


Първото извикване работи коректно в повечето случаи.
Следващото извикване, работи полу коректно или изобщо не работи.
Като под полу коректно разбираме това, че като спрем с брейкпойнт в DoSomething, стринга argument е до някъде верен, след това в него има глупости.
Изобщо неработи - като спрем с брейкпоинт в DoSomething - стринга argument е празен - т.е. пълен с нули.

Между двете извиквания няма шанс да омажем паметта.
И вече по-интересното е, че при дизасемблиране, се вижда, че не инициализира стринга в стека от правилното място, а примерно го инициализира от някой друг буфер в програмата, или дори първо го пълни от адресите на няколко променливи, след това го допълва от някой буфер.
Вградени функции като atof, isdigit в един момент също спряха да работят. След неизвестен брои прекомпилирания и мамата го докарвахме да работят понякога.
В общи линии прилича на неправилно link-ване, ама не се сещам какво да му направим.
Работим с Renesas E2 Studio, KPIT последна им версия, и също така пробвахме три версии назад спрямо последната на KPIT.
За съжаление не е ясно как го предизвикахме, защото до известно време вероятно работеше нормално, т.е. може да е имало някакви такива неща, но да не сме ги забелязали и да сме ги отдавали на други бъгове.

Автор:  Tisho [ Пон Авг 10, 2015 3:40 pm ]
Заглавие:  Re: Странности при компилиране за Renesas RL78 с KPIT

Aз си мислех, че са го оправили за толкова години от как са платинен партньор на Renesas. :D
Индийци...
Това не е само при RL78, и при RX62 ги има тези номера.


Ползвайте компилатора на Renesas.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/