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

 
 
> 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



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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 07:16
Рейтинг@Mail.ru


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