|
|
  |
picc pic10f |
|
|
|
Jan 15 2009, 22:41
|
Участник

Группа: Свой
Сообщений: 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]; }
|
|
|
|
|
Jan 24 2009, 16:49
|
Участник

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

|
Цитата(zksystem @ Jan 20 2009, 14:23)  Имхо полный изврат писать под этот контроллер на С. Целиком и полностью согласен  Более кашерно покупать готовое. Но вопрос даже не касался контроллера. Я прошу подтвердить/опровергнуть мои опасения что этот компилятор в новых версиях делает худший код.
|
|
|
|
|
Jan 25 2009, 14:09
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 23-01-06
Пользователь №: 13 477

|
Цитата(kimstik @ Jan 24 2009, 20:49)  Целиком и полностью согласен  Более кашерно покупать готовое. Но вопрос даже не касался контроллера. Я прошу подтвердить/опровергнуть мои опасения что этот компилятор в новых версиях делает худший код. Не знаю насколько смогу помочь, но сам столкнулся (PIC12F675) с тем, что мплаб 8.15 и про 9.60 пл4 генерят неверный код(стд 9.60 пл3 вообще не тянет). Перешел на мплаб 8.01 и проблему решил. Попробуйте откатиться на старый мплаб. Последняя Про версия мне больше понравилась.
|
|
|
|
|
Jan 25 2009, 17:19
|
Участник

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

|
Спасибо, я както без мплаба обхожусь. В командной строке. Раньше помнится народ баги и вокэраунды собирал/обсуждал хайтечевские. Подскажите где нынче все пасутся? Или не актуально стало и все на армы ушли?
|
|
|
|
|
Jan 26 2009, 12:15
|
Участник

Группа: Новичок
Сообщений: 54
Регистрация: 14-12-06
Пользователь №: 23 498

|
(С) Все это было бы смешно, когда бы не было так грустно... Да, сам на младших версиях сижу - и считаю, что больше не нужно. Проблема в другом - микрочиповский компилер - для 18+ серий - и соответственно, новая 4 - значная (16) нановаттная серия будет поддерживаться только новыми версиями хайтека. Со всем гемором... Я ответа не знаю, может, кто подскажет ? ЦЦс там, иар ???
|
|
|
|
|
Feb 19 2009, 19:44
|

Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879

|
Цитата(urry1 @ Jan 26 2009, 16:15)  (С) Все это было бы смешно, когда бы не было так грустно... Да, сам на младших версиях сижу - и считаю, что больше не нужно. Проблема в другом - микрочиповский компилер - для 18+ серий - и соответственно, новая 4 - значная (16) нановаттная серия будет поддерживаться только новыми версиями хайтека. Со всем гемором... Я ответа не знаю, может, кто подскажет ? ЦЦс там, иар ??? Так на майкрочипе нашару С18 можно слить. Студенческая версия полностью работает то ли месяц то ли 2. Потом сносишь/ставишь заново. Халява.. По-идее оно должно работать корректно. Когда одна контора и камни и компилятор под них делает.
--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
|
|
|
|
|
Feb 20 2009, 17:09
|
Участник

Группа: Новичок
Сообщений: 54
Регистрация: 14-12-06
Пользователь №: 23 498

|
Цитата(Eddy71 @ Feb 19 2009, 23:44)  Так на майкрочипе нашару С18 можно слить. Студенческая версия полностью работает то ли месяц то ли 2. Потом сносишь/ставишь заново. Халява.. По-идее оно должно работать корректно. Когда одна контора и камни и компилятор под них делает. Гы. я говорю о 16 серии. Вы - о 18. Цитата(Сергей Борщ @ Feb 20 2009, 03:46)  sdcc еще можно посмотреть. Еще не идеал, но уже и не ассемблер. Посмотреть, конечно, можно. Без вопросов - посмотреть. Работать сложно. С отладчиком, например. Я попробовал и больше как-то не тянет.
|
|
|
|
|
Feb 21 2009, 08:33
|

Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Feb 22 2009, 08:06
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 23-01-06
Пользователь №: 13 477

|
Цитата(Andrey_B @ Feb 21 2009, 12:33)  А что конкретно генерилось не корректно ? Возможет UniversalToolsuite как-то может влиять, а MPLAB тут каким боком ? К сожалению я до сих пор не смог понять в чем дело. Последние впечатления: симулятор ходит по программе не там где нужно, хотя в watch по регистрам все правильно и в железе работает. Прерывания разрешает не во всей программе. Это я урезал программу вполовину. Версия про кроме всего еще и неправильно отражает регистры( в железе этот вариант не проверял). После манипуляций с разными версиями HT-PICC и MPLAB даже абсолютно правильно работавшая связка MPLAB 7.60 a и HT-PICC 8.05 стала вести себя почти также. Хотя после каждой комбинации все сносилось полностью и после чистки ставилось новое. Снос через Revouninstaller затем regorganizer. Может это уже вносит свою лепту XP?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|