реклама на сайте
подробности

 
 
> picc pic10f
kimstik
сообщение Jan 15 2009, 22:41
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 4-02-05
Из: Москва
Пользователь №: 2 430



Вот код который компилится на ура на 9.50pl2. Использует все 2 уровня аппаратного стека.
Новые версии мало того что чудят не по детски, еще и последний вызов делают с программным стеком.
Думал что типа корешок для прерываний (которых нету в этом кристалле) случайно поставили. Нет же - убираю последнюю строку с обращением к таблице и вуаля все вызывается с аппаратным стеком!!
Ежу понятно что этот вызов требует стека, но он никак не приводит к переполнению.

Call graph: (fully expanded)

*_main size 0,0 offset 0
* _foo size 0,0 offset 0
* _foo2 size 0,0 offset 0

Просто чума. Впечатление что hitech с 2006 года отдыхает.
Поэтому родились 2 вопроса:
1. Может я что попутал и это лечится ?
1. Есль ли что либо лучше/стабильнее 9.50pl2 ?

Код
#include <pic.h>

const unsigned char tbl[]={0,7,2,5};
unsigned char i=0;

fastcall void foo2(void)
{
    i++;
}

fastcall unsigned char foo(void)
{
    foo2();
    foo2();
}

void main(void)
{
    foo();
    foo();
    GPIO = tbl[i&0x03];
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zksystem
сообщение Jan 20 2009, 11:23
Сообщение #2


embedder
***

Группа: Свой
Сообщений: 264
Регистрация: 11-05-05
Из: Казань
Пользователь №: 4 911



Имхо полный изврат писать под этот контроллер на С.


--------------------
Мечты стареют куда быстрее мечтателей… Стивен Кинг. "Ловец снов"
Go to the top of the page
 
+Quote Post
kimstik
сообщение Jan 24 2009, 16:49
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 4-02-05
Из: Москва
Пользователь №: 2 430



Цитата(zksystem @ Jan 20 2009, 14:23) *
Имхо полный изврат писать под этот контроллер на С.


Целиком и полностью согласен smile.gif
Более кашерно покупать готовое.
Но вопрос даже не касался контроллера.
Я прошу подтвердить/опровергнуть мои опасения что этот компилятор в новых версиях делает худший код.
Go to the top of the page
 
+Quote Post
Bronislav
сообщение Jan 25 2009, 14:09
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 23-01-06
Пользователь №: 13 477



Цитата(kimstik @ Jan 24 2009, 20:49) *
Целиком и полностью согласен smile.gif
Более кашерно покупать готовое.
Но вопрос даже не касался контроллера.
Я прошу подтвердить/опровергнуть мои опасения что этот компилятор в новых версиях делает худший код.

Не знаю насколько смогу помочь, но сам столкнулся (PIC12F675) с тем, что мплаб 8.15 и про 9.60 пл4 генерят неверный код(стд 9.60 пл3
вообще не тянет). Перешел на мплаб 8.01 и проблему решил. Попробуйте откатиться на старый мплаб. Последняя Про версия мне больше понравилась.
Go to the top of the page
 
+Quote Post
Andrey_B
сообщение Feb 21 2009, 08:33
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 20-06-07
Из: Россия, Тула.
Пользователь №: 28 569



Цитата(Bronislav @ Jan 25 2009, 17:09) *
Не знаю насколько смогу помочь, но сам столкнулся (PIC12F675) с тем, что мплаб 8.15 и про 9.60 пл4 генерят неверный код(стд 9.60 пл3
вообще не тянет). Перешел на мплаб 8.01 и проблему решил.


А что конкретно генерилось не корректно ? Возможет UniversalToolsuite как-то может влиять, а MPLAB тут каким боком ?


--------------------
vodaspb.ru
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 17:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.02352 секунд с 7
ELECTRONIX ©2004-2016