Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Проблем с Proteus PIC18 и Extended Instruction Mode
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=5620
Страница 1 от 1

Автор:  i_dachev [ Чет Мар 20, 2008 10:51 am ]
Заглавие:  Проблем с Proteus PIC18 и Extended Instruction Mode

Имам следния проблем компилирам си с MPLAB и MCC18 компилатора.
Програмата е много проста подкарвам SPI на PIC18F2620.

Опитвам се да заредя програмата в Proteus задавам COF файла.

Като пусна да симулира и дебъгва всичко си върви по програмата и
по сорса, така както се очаква, обаче променливите ги разполага
в началото на паметта там дето са системните регистри.
Както и не слага нещата правилно в стека направо си записва 0.

Като го дебъгвам през MPLAB всичко си бачка.

Предполагам че проблема е в COF формата и нещо не го е прочело
правилно, и съм в безизходица искам да изтествам нещо с симулатора
и сега трябва да правя платките и чак тогава да видя дали всичко е наред.

Предполагам че ако успея да генерирам ASM по моите C сорсове и го компилирам
през Proteus ще успея да го дебъгна както трябва до сега не съм имал проблем
с ASM файлове и Proteus.

Някой да се е сблъсквал с подобен проблем?

Автор:  milenjs [ Чет Мар 20, 2008 10:59 am ]
Заглавие: 

Къде ти е записан *.dsn файла?

Автор:  i_dachev [ Чет Мар 20, 2008 11:18 am ]
Заглавие: 

В различни директори са имам отделна за MPLAB проекта и отделна за Proteus.
Това не ми е било до сега проблем или да пробвам да ги сложа на едно място?

Автор:  i_dachev [ Чет Мар 20, 2008 11:51 am ]
Заглавие: 

Пробвах на едно място да са проект файловете и за компилатора и за Prоtеusа
но пак като ръгна да дебъгва/симулира всички променливи дето се подават
на функциите са нула като се влезе във функцията.

Тоест има някакъв проблем със стека защото там се записват аргументите
на функциите и локалните. Поне така като гледам какво се опитва да присвоява
от стека към SPI буфера.

Май като се влиза в функцията като се прави call въобще не сетва
променливите слага ги на 0 и това си е.

Автор:  milenjs [ Чет Мар 20, 2008 12:57 pm ]
Заглавие: 

Чакай че нещо не доразбрах. Симулацията си работи нормално, не неможе да дебъгваш стъпка по стъпка? Най-честия проблем за това е че coff и dsn файла трябва да са в обща папка.

Автор:  i_dachev [ Чет Мар 20, 2008 4:16 pm ]
Заглавие: 

Дебъгвам стъпка по стъпка но стойностите, които подавам към функциите
като влезне във функцията дебъгера на симулатора са 0.

пример:

void spi_write(unsigned char aData) {
SSPBUF = aData; // Begin SPI transfer
...
}

main {
...

spi_write(0x1F);

}

Симулатора си дебъгва точно по COF файла но като влезна в spi_write
стойността на aData вместо 0x1F е 0. Това за всичките ми функции.

Автор:  i_dachev [ Пет Мар 21, 2008 11:29 am ]
Заглавие: 

Намерих решението явно Proteus има проблем с Extended Instruction на PIC18.
Маха се да не компилира в този extended режим и всичко си заработва перфектно.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/