| Микроконтролери и електроника 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/ |
|