Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: picc pic10f
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
kimstik
Вот код который компилится на ура на 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];
}
zksystem
Имхо полный изврат писать под этот контроллер на С.
kimstik
Цитата(zksystem @ Jan 20 2009, 14:23) *
Имхо полный изврат писать под этот контроллер на С.


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

Не знаю насколько смогу помочь, но сам столкнулся (PIC12F675) с тем, что мплаб 8.15 и про 9.60 пл4 генерят неверный код(стд 9.60 пл3
вообще не тянет). Перешел на мплаб 8.01 и проблему решил. Попробуйте откатиться на старый мплаб. Последняя Про версия мне больше понравилась.
kimstik
Спасибо, я както без мплаба обхожусь. В командной строке.
Раньше помнится народ баги и вокэраунды собирал/обсуждал хайтечевские.
Подскажите где нынче все пасутся? Или не актуально стало и все на армы ушли?
Bronislav
Цитата(kimstik @ Jan 25 2009, 21:19) *
Спасибо, я както без мплаба обхожусь. В командной строке.
Раньше помнится народ баги и вокэраунды собирал/обсуждал хайтечевские.
Подскажите где нынче все пасутся? Или не актуально стало и все на армы ушли?

http://www.microchip.su/
urry1
(С) Все это было бы смешно, когда бы не было так грустно...
Да, сам на младших версиях сижу - и считаю, что больше не нужно.
Проблема в другом - микрочиповский компилер - для 18+ серий - и соответственно, новая 4 - значная (16) нановаттная серия будет поддерживаться только новыми версиями хайтека.
Со всем гемором...
Я ответа не знаю, может, кто подскажет ?
ЦЦс там, иар ???
Eddy71
Цитата(urry1 @ Jan 26 2009, 16:15) *
(С) Все это было бы смешно, когда бы не было так грустно...
Да, сам на младших версиях сижу - и считаю, что больше не нужно.
Проблема в другом - микрочиповский компилер - для 18+ серий - и соответственно, новая 4 - значная (16) нановаттная серия будет поддерживаться только новыми версиями хайтека.
Со всем гемором...
Я ответа не знаю, может, кто подскажет ?
ЦЦс там, иар ???

Так на майкрочипе нашару С18 можно слить. Студенческая версия полностью работает то ли месяц то ли 2. Потом сносишь/ставишь заново. Халява.. По-идее оно должно работать корректно. Когда одна контора и камни и компилятор под них делает.
Сергей Борщ
Цитата(urry1 @ Jan 26 2009, 14:15) *
новая 4 - значная (16) нановаттная серия будет поддерживаться только новыми версиями хайтека.
Со всем гемором...
Я ответа не знаю, может, кто подскажет ?
ЦЦс там, иар ???
sdcc еще можно посмотреть. Еще не идеал, но уже и не ассемблер.
urry1
Цитата(Eddy71 @ Feb 19 2009, 23:44) *
Так на майкрочипе нашару С18 можно слить. Студенческая версия полностью работает то ли месяц то ли 2. Потом сносишь/ставишь заново. Халява.. По-идее оно должно работать корректно. Когда одна контора и камни и компилятор под них делает.

Гы. я говорю о 16 серии. Вы - о 18.

Цитата(Сергей Борщ @ Feb 20 2009, 03:46) *
sdcc еще можно посмотреть. Еще не идеал, но уже и не ассемблер.

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


А что конкретно генерилось не корректно ? Возможет UniversalToolsuite как-то может влиять, а MPLAB тут каким боком ?
Bronislav
Цитата(Andrey_B @ Feb 21 2009, 12:33) *
А что конкретно генерилось не корректно ? Возможет UniversalToolsuite как-то может влиять, а MPLAB тут каким боком ?

К сожалению я до сих пор не смог понять в чем дело. Последние впечатления: симулятор ходит по программе не там где нужно, хотя в watch по регистрам все правильно и в железе работает. Прерывания разрешает не во всей программе. Это я урезал программу вполовину.
Версия про кроме всего еще и неправильно отражает регистры( в железе этот вариант не проверял).
После манипуляций с разными версиями HT-PICC и MPLAB даже абсолютно правильно работавшая связка MPLAB 7.60 a и HT-PICC 8.05
стала вести себя почти также. Хотя после каждой комбинации все сносилось полностью и после чистки ставилось новое.
Снос через Revouninstaller затем regorganizer. Может это уже вносит свою лепту XP?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.