|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:36 am
| Автор |
Съобщение |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Точно това трябва да прави един читав симулатор - да хваща разликата в работата между пика и компютъра и да рапортува "колизия". Специално за банките и пейжовете няма да е много сложно.
Но както се казва в случая - без пари толкоз 
|
| Сря Мар 21, 2007 7:16 pm |
|
 |
|
mndsl
Ранг: Новодошъл
Регистриран на: Вто Май 23, 2006 4:56 pm Мнения: 113 Местоположение: Варна
|
Предполагам ти е ясно, че симулатора симулира по HEX файла, и същия този HEX файл работи и на пика. Няма как да "хване" разлика, щото то просто няма такава. Що се отнася до банките, там те предупреждава всеки път когато регистъра не е в банка 0. Ако толкова те притеснява да погледнеш дали е избрана правилната банка, вземи и си напиши няколко макроса, които всеки път да ти викат BANKSEL преди да адресират регистъра. 
|
| Сря Мар 21, 2007 11:50 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
То аз като ще пиша по добре да напиша нов МПЛАБ  . Аз затова споменах по-горе ,че начина на симулация е малко тъпичък. Симулира се не точно хекс файла (защото симулацията върви и без хекс), а кода предназначен за него(cod-файла). Но много хора си мислят ,че се следи асм-а защото той им седи пред очите. А щеше да е много хубаво ако се симулиташе и асм-а едновременно. Така след като goto-то в асм-а те прехвърля към друга страница, симулатора нямаше да продължава най-дебилно да си цикли в старата без да гъкне. И само не ми казвайте ,че "това няма как да стане",особенно на PC за $$$$ с n-ядрен процесор на xxxxMHz , xxxMB RAM и xxxGB HDD 
|
| Чет Мар 22, 2007 1:56 am |
|
 |
|
mndsl
Ранг: Новодошъл
Регистриран на: Вто Май 23, 2006 4:56 pm Мнения: 113 Местоположение: Варна
|
Ами давай да видим ти какво ще направиш. Кажи как според тебе да се реши проблема с банките. Ще го предложим на Майкрочип, белким го оправат в следващи версии 
|
| Чет Мар 22, 2007 10:27 am |
|
 |
|
bobyper
Ранг: Ориентиран
Регистриран на: Вто Яну 31, 2006 11:11 pm Мнения: 295 Местоположение: София
|
А как мислиш е направено в С
Голями спорове по тази тема. Според мен никакъв проблем няма да се направи програма да интерпретира асемблера. Че даже и стъпка назад в дебъга да има.
Друг е въпроса какъв смисъл има. Поне за мен никога не ми е било проблем при промяна на сорса да го build-вам наново.
|
| Чет Мар 22, 2007 11:13 am |
|
 |
|
mndsl
Ранг: Новодошъл
Регистриран на: Вто Май 23, 2006 4:56 pm Мнения: 113 Местоположение: Варна
|
При С нещата са коренно различни. Я ми кажи един нормален компилатор, който интерпретира сорса? Дали С, дали Делфи или който и да е друг!? От мързел искате компилатора да прави всички вместо вас... То ако беше толкова лесно всеки щеше да пише програми и този форум нямаше да го има 
|
| Чет Мар 22, 2007 11:40 am |
|
 |
|
bobyper
Ранг: Ориентиран
Регистриран на: Вто Яну 31, 2006 11:11 pm Мнения: 295 Местоположение: София
|
Въпроса беше дали има такова нещо. Явно ji4ka има необходимост от това а на другите хора както и на мен не им е трябвало. Като се замисля може и доста удобно да е. Трасираш си програмката, стигаш до място дето по невнимание си объркал условието на прехода, цъкаш стъпка назад, редактираш си кода и продължаваш да трасираш. Без да е необходимо от компилиране/асемлиране. Без да е необходимо пак да трасираш до това място да видиш дали работи след корекцията. Е още по-добре ако пишеш по внимателно програмите и да няма нужда от трасиране.
Нито hex-a нито сорса е код за пентиум за да може да ги изпълни направо. Така че винаги при трасиране го интерпретира.
Па ако можеха и биричка да пускат компилаторите, нямаше да им се разсъърдя 
|
| Чет Мар 22, 2007 3:56 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Абе много се задълбаха нещата. Според мен не е ли възможно, като се посочи с кой контролер работиш, MPLAB да си зарежда един .ini файл за него. Та в този файл като се напише, че еди кой си регистър е в определена банка, MPLAB си прави справка всеки път като срещне регистър и те предупреждава ако си объркал банките
|
| Чет Мар 22, 2007 8:13 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Zeus, може да се направи по много начини ,но това явно не е приоритет за Микрочип. Не си първия ,нито ще си последния който си губи времето с тия неща. А какви още интересни работи те очакват:
goto Page1
call Page2
addwf PCL,f и т.н. и т.н.
Но да не ти отнемам удоволствието сам да си ги преоткриеш
Но всъщност, както отбелязаха колегите mndsl и bobyper, проблема е главно в теб. Явно си един мързелив,невнимателен и претенциозен младеж. Я се стегни - научи асемблера и сорса наизуст и си прави симулациите на ум. Даже директно програмирай пик-а ,без симулации. И да не си посмял да грешиш! Вземи пример от големите батковци - те НИКОГА не грешат!
НЕ ИЗМЪЧВАЙ КОМПЮТЪРА, МЪЧИ СЕБЕ СИ !!!

|
| Чет Мар 22, 2007 10:42 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Вече се работи по въпроса.  (пусни си прикачения файла по-долу.)
|
| Чет Мар 22, 2007 11:33 pm |
|
 |
|
bobyper
Ранг: Ориентиран
Регистриран на: Вто Яну 31, 2006 11:11 pm Мнения: 295 Местоположение: София
|
Мммм да "масичката" за бирата е осигурена. Остава същината на въпроса. 
|
| Пет Мар 23, 2007 12:51 am |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
 абе то добре, ама кат ти стане програмата над 1000 реда и постоянно променяш нещо в нея, само ти е до установяване на банки. Да не говорим като имаш 20-30 прехода към подпрограми и почнеш да се чудиш след връщането кво става.
|
| Пет Мар 23, 2007 10:24 am |
|
 |
|
mndsl
Ранг: Новодошъл
Регистриран на: Вто Май 23, 2006 4:56 pm Мнения: 113 Местоположение: Варна
|
Бях решил да не пиша по тази тема повече ама на тебе явно трябва да ти се докаже, че това което искаш не може да стане.
Както виждаш на тази картинка, регистрите са разделени на 4 банки от по 128 регистъра,
а на тази виждаш, че в инструкцията са заделени 7 бита за адрес на регистъра т.е. може да адресира 128 байта, точно толкова колкото е и размерноста на банките.
От тук следва че на един и същ адрес отговарят 4 байта (всеки в по една банка), които се избират от битовете за избор на банка. От това пък следва , че компилатора не може да мисли вместо тебе и да предполага регистъра от коя банка искаш да адресираш. Сега разбираш ли че проблема не е в MPLAB, а в това че организацията на ПИК-а е такава и софтуера трябва да се съобразява с нея.
Същото се отнася и за програмната памет.
А пък що се отнася до goto и call от други страници, не знам дали знаеш, ама тогава се ползва линкера, за да навърже файловете. Ако ти не ползваш него, а си инклудваш файловете един в друг, не се чуди че не работи както ти очакваш!
|
| Пон Мар 26, 2007 2:19 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Май нещо не можем да се разберем:
ето как аз виждам нещата. Както казах по-рано, да има един файл дето се пазят всички регистри от коя банка са за дадения чип. МПЛаба като срещне установяване на банки в кода, си записва някаде коя банка последно е установена. Като срещне регистър в кода, си прави справка дали това което е правилно(записаното във конфиг-файла) съвпада с текущо установената банка. Ако да - си мълчи, ако не- изкарва съобщение. Не искам той да ми наслага правилните банки, а просто да ме предупреди, че съм сгрешил.
Или аз съм в голяма заблуда, или нещо не мога да си обясня идеята като хората 
|
| Вто Мар 27, 2007 9:11 am |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
Добре, само че асемблера няма откъде да знае коя е текущо установената банка , това е твоя работа. Да речем :
select bank0
//wlizame w prekyswane
movwf porta
Става много весело ако вътре в прекъсването не оставиш банките така както са били.
|
| Вто Мар 27, 2007 10:16 am |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 1 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|