Отговори на тема  [ 33 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща
Въпрос за MPLAB 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Фев 01, 2007 4:04 am
Мнения: 1539
Мнение 
mndsl написа:
2. Симулатора не може да прави нещо повече освен да се преструва на контролер, щото инъче на компютъра всичко ще е ОК, ама на пика няма да е.

Точно това трябва да прави един читав симулатор - да хваща разликата в работата между пика и компютъра и да рапортува "колизия". Специално за банките и пейжовете няма да е много сложно.
Но както се казва в случая - без пари толкоз :)


Сря Мар 21, 2007 7:16 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Май 23, 2006 4:56 pm
Мнения: 113
Местоположение: Варна
Мнение 
Предполагам ти е ясно, че симулатора симулира по HEX файла, и същия този HEX файл работи и на пика. Няма как да "хване" разлика, щото то просто няма такава. Що се отнася до банките, там те предупреждава всеки път когато регистъра не е в банка 0. Ако толкова те притеснява да погледнеш дали е избрана правилната банка, вземи и си напиши няколко макроса, които всеки път да ти викат BANKSEL преди да адресират регистъра. :)


Сря Мар 21, 2007 11:50 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Фев 01, 2007 4:04 am
Мнения: 1539
Мнение 
mndsl написа:
... вземи и си напиши няколко макроса, които всеки път да ти викат BANKSEL преди да адресират регистъра. :)

То аз като ще пиша по добре да напиша нов МПЛАБ :wink: . Аз затова споменах по-горе ,че начина на симулация е малко тъпичък. Симулира се не точно хекс файла (защото симулацията върви и без хекс), а кода предназначен за него(cod-файла). Но много хора си мислят ,че се следи асм-а защото той им седи пред очите. А щеше да е много хубаво ако се симулиташе и асм-а едновременно. Така след като goto-то в асм-а те прехвърля към друга страница, симулатора нямаше да продължава най-дебилно да си цикли в старата без да гъкне. И само не ми казвайте ,че "това няма как да стане",особенно на PC за $$$$ с n-ядрен процесор на xxxxMHz , xxxMB RAM и xxxGB HDD :)


Чет Мар 22, 2007 1:56 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Май 23, 2006 4:56 pm
Мнения: 113
Местоположение: Варна
Мнение 
ji4ka написа:
То аз като ще пиша по добре да напиша нов МПЛАБ :wink: .


Ами давай да видим ти какво ще направиш. Кажи как според тебе да се реши проблема с банките. Ще го предложим на Майкрочип, белким го оправат в следващи версии :)


Чет Мар 22, 2007 10:27 am
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Яну 31, 2006 11:11 pm
Мнения: 295
Местоположение: София
Мнение 
Цитат:
Ами давай да видим ти какво ще направиш. Кажи как според тебе да се реши проблема с банките. Ще го предложим на Майкрочип, белким го оправат в следващи версии :)


А как мислиш е направено в С



Голями спорове по тази тема. Според мен никакъв проблем няма да се направи програма да интерпретира асемблера. Че даже и стъпка назад в дебъга да има.
Друг е въпроса какъв смисъл има. Поне за мен никога не ми е било проблем при промяна на сорса да го build-вам наново.


Чет Мар 22, 2007 11:13 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Май 23, 2006 4:56 pm
Мнения: 113
Местоположение: Варна
Мнение 
При С нещата са коренно различни. Я ми кажи един нормален компилатор, който интерпретира сорса? Дали С, дали Делфи или който и да е друг!? От мързел искате компилатора да прави всички вместо вас... То ако беше толкова лесно всеки щеше да пише програми и този форум нямаше да го има :lol:


Чет Мар 22, 2007 11:40 am
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Яну 31, 2006 11:11 pm
Мнения: 295
Местоположение: София
Мнение 
Въпроса беше дали има такова нещо. Явно ji4ka има необходимост от това а на другите хора както и на мен не им е трябвало. Като се замисля може и доста удобно да е. Трасираш си програмката, стигаш до място дето по невнимание си объркал условието на прехода, цъкаш стъпка назад, редактираш си кода и продължаваш да трасираш. Без да е необходимо от компилиране/асемлиране. Без да е необходимо пак да трасираш до това място да видиш дали работи след корекцията. Е още по-добре ако пишеш по внимателно програмите и да няма нужда от трасиране.

mndsl написа:
При С нещата са коренно различни. Я ми кажи един нормален компилатор, който интерпретира сорса? Дали С, дали Делфи или който и да е друг!? От мързел искате компилатора да прави всички вместо вас... То ако беше толкова лесно всеки щеше да пише програми и този форум нямаше да го има :lol:


Нито hex-a нито сорса е код за пентиум за да може да ги изпълни направо. Така че винаги при трасиране го интерпретира.
Па ако можеха и биричка да пускат компилаторите, нямаше да им се разсъърдя :D


Чет Мар 22, 2007 3:56 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Абе много се задълбаха нещата. Според мен не е ли възможно, като се посочи с кой контролер работиш, MPLAB да си зарежда един .ini файл за него. Та в този файл като се напише, че еди кой си регистър е в определена банка, MPLAB си прави справка всеки път като срещне регистър и те предупреждава ако си объркал банките


Чет Мар 22, 2007 8:13 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Фев 01, 2007 4:04 am
Мнения: 1539
Мнение 
Zeus, може да се направи по много начини ,но това явно не е приоритет за Микрочип. Не си първия ,нито ще си последния който си губи времето с тия неща. А какви още интересни работи те очакват:
goto Page1
call Page2
addwf PCL,f и т.н. и т.н.
Но да не ти отнемам удоволствието сам да си ги преоткриеш :)
Но всъщност, както отбелязаха колегите mndsl и bobyper, проблема е главно в теб. Явно си един мързелив,невнимателен и претенциозен младеж. Я се стегни - научи асемблера и сорса наизуст и си прави симулациите на ум. Даже директно програмирай пик-а ,без симулации. И да не си посмял да грешиш! Вземи пример от големите батковци - те НИКОГА не грешат!
НЕ ИЗМЪЧВАЙ КОМПЮТЪРА, МЪЧИ СЕБЕ СИ !!!
:) :D :lol: 8)


Чет Мар 22, 2007 10:42 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Фев 01, 2007 4:04 am
Мнения: 1539
Мнение 
bobyper написа:
Па ако можеха и биричка да пускат компилаторите, нямаше да им се разсъърдя :D

Вече се работи по въпроса. :wink: (пусни си прикачения файла по-долу.)


Прикачени файлове:
BEER.zip [1.09 KiB]
188 пъти
Чет Мар 22, 2007 11:33 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Яну 31, 2006 11:11 pm
Мнения: 295
Местоположение: София
Мнение 
ji4ka написа:
bobyper написа:
Па ако можеха и биричка да пускат компилаторите, нямаше да им се разсъърдя :D

Вече се работи по въпроса. :wink: (пусни си прикачения файла по-долу.)



Мммм да "масичката" за бирата е осигурена. Остава същината на въпроса. :D


Пет Мар 23, 2007 12:51 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
ji4ka написа:
Zeus, може да се направи по много начини ,но това явно не е приоритет за Микрочип. Не си първия ,нито ще си последния който си губи времето с тия неща. А какви още интересни работи те очакват:
goto Page1
call Page2
addwf PCL,f и т.н. и т.н.
Но да не ти отнемам удоволствието сам да си ги преоткриеш :)
Но всъщност, както отбелязаха колегите mndsl и bobyper, проблема е главно в теб. Явно си един мързелив,невнимателен и претенциозен младеж. Я се стегни - научи асемблера и сорса наизуст и си прави симулациите на ум. Даже директно програмирай пик-а ,без симулации. И да не си посмял да грешиш! Вземи пример от големите батковци - те НИКОГА не грешат!
НЕ ИЗМЪЧВАЙ КОМПЮТЪРА, МЪЧИ СЕБЕ СИ !!!
:) :D :lol: 8)


:D абе то добре, ама кат ти стане програмата над 1000 реда и постоянно променяш нещо в нея, само ти е до установяване на банки. Да не говорим като имаш 20-30 прехода към подпрограми и почнеш да се чудиш след връщането кво става.


Пет Мар 23, 2007 10:24 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Май 23, 2006 4:56 pm
Мнения: 113
Местоположение: Варна
Мнение 
ji4ka написа:
Zeus, може да се направи по много начини ,но това явно не е приоритет за Микрочип. Не си първия ,нито ще си последния който си губи времето с тия неща. А какви още интересни работи те очакват:
goto Page1
call Page2
addwf PCL,f и т.н. и т.н.
Но да не ти отнемам удоволствието сам да си ги преоткриеш :)
Но всъщност, както отбелязаха колегите mndsl и bobyper, проблема е главно в теб. Явно си един мързелив,невнимателен и претенциозен младеж. Я се стегни - научи асемблера и сорса наизуст и си прави симулациите на ум. Даже директно програмирай пик-а ,без симулации. И да не си посмял да грешиш! Вземи пример от големите батковци - те НИКОГА не грешат!
НЕ ИЗМЪЧВАЙ КОМПЮТЪРА, МЪЧИ СЕБЕ СИ !!!
:) :D :lol: 8)


Бях решил да не пиша по тази тема повече ама на тебе явно трябва да ти се докаже, че това което искаш не може да стане.

Изображение

Както виждаш на тази картинка, регистрите са разделени на 4 банки от по 128 регистъра,

Изображение

а на тази виждаш, че в инструкцията са заделени 7 бита за адрес на регистъра т.е. може да адресира 128 байта, точно толкова колкото е и размерноста на банките.

От тук следва че на един и същ адрес отговарят 4 байта (всеки в по една банка), които се избират от битовете за избор на банка. От това пък следва , че компилатора не може да мисли вместо тебе и да предполага регистъра от коя банка искаш да адресираш. Сега разбираш ли че проблема не е в MPLAB, а в това че организацията на ПИК-а е такава и софтуера трябва да се съобразява с нея.

Същото се отнася и за програмната памет.

А пък що се отнася до goto и call от други страници, не знам дали знаеш, ама тогава се ползва линкера, за да навърже файловете. Ако ти не ползваш него, а си инклудваш файловете един в друг, не се чуди че не работи както ти очакваш!


Пон Мар 26, 2007 2:19 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Май нещо не можем да се разберем:
ето как аз виждам нещата. Както казах по-рано, да има един файл дето се пазят всички регистри от коя банка са за дадения чип. МПЛаба като срещне установяване на банки в кода, си записва някаде коя банка последно е установена. Като срещне регистър в кода, си прави справка дали това което е правилно(записаното във конфиг-файла) съвпада с текущо установената банка. Ако да - си мълчи, ако не- изкарва съобщение. Не искам той да ми наслага правилните банки, а просто да ме предупреди, че съм сгрешил.
Или аз съм в голяма заблуда, или нещо не мога да си обясня идеята като хората :?


Вто Мар 27, 2007 9:11 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Фев 17, 2006 9:17 am
Мнения: 765
Местоположение: Стара Загора
Мнение 
Добре, само че асемблера няма откъде да знае коя е текущо установената банка , това е твоя работа. Да речем :

select bank0
//wlizame w prekyswane
movwf porta

Става много весело ако вътре в прекъсването не оставиш банките така както са били.


Вто Мар 27, 2007 10:16 am
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 33 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни