| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| PIC16F873 + CCS #org and/or #build http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=2905 |
Страница 1 от 1 |
| Автор: | ¶ [ Съб Сеп 16, 2006 11:34 pm ] |
| Заглавие: | PIC16F873 + CCS #org and/or #build |
Постановка на задачата: имам код за PIC16F872, който се заключва и по време на работа процесора си записва разни неща в програмната памет. Същият код искам да го прехвърля на PIC16F873, но има малък проблем, че PIC16F873 когато се заключи не може програмно да се пише в заключената част. Програмата ми е по-малка от 2к и може да се прехвърли от адрес 0x0800 нагоре, а мястото където се пише в програмната памет, да се прехвърли на адрес по-малък от 0x0800. Над 0x0800 може да се заключи, под него да не се заключи. Пробвах с директивите #org и #build на CCS, вересия 3.249, но нещо не става както трябва работата. Пиша #build(memory=0x0800:0x0FFF), а парчето програмна памет, където програмно ще пиша го задавам като #rom 0x0700, но компилатора упорито си слага част от програмния код от адрес 0x0400, след което застъпва моето парче код. Освен това RESET и INT векторите ми ги слага от адрес 0x0800 ( айде ще ги оправя с #build(reset=0x0000,interrupt=0x0004) ), но защо ще ме цака CCS вересия 3.249 с топла бира ? Дали щото е вересия или си е такава работата ? П.П. С #build(reset=0x0000,interrupt=0x0004) нищо не става. Пак си ги заковава от адрес 0x0800 нагоре. |
|
| Автор: | Gogo [ Нед Сеп 17, 2006 12:03 am ] |
| Заглавие: | |
CCS верЕсия 3.249 явно е много бъгава. При мене при компилирането, като срещне #org, показва някаква неопределена грешка и се започва едно безкраааайно компилиране... |
|
| Автор: | bateAz [ Нед Сеп 17, 2006 11:07 am ] |
| Заглавие: | |
Не става ли да си дефинираш един голям безполезен масив от константи, който да ти запълни цялата Flash до $0800 ? Тогава и векторите ще са където трябва, и всичко? Аз ползвам CCS 1.183 ( или нещо такова ), то разполага константите най-отпред ( всъщност знаеш как са константите на 16F ). После си го забърсваш при първото стартиране на системата и готово! |
|
| Автор: | Nikola Kirov [ Нед Сеп 17, 2006 11:44 am ] |
| Заглавие: | |
В IAR такива магии се правят през конфигурационния фаил на линкера. Оттам може да задаваш адресите. Също оттам в желаното адресно пространство може да си декларираш user сегмент и да си го ползваш за целта. Така че поразгледай документацията на линкера на CCS за подобни неща. |
|
| Автор: | Predator_MF [ Нед Сеп 17, 2006 2:14 pm ] | |||||||||
| Заглавие: | ||||||||||
Горното при мен винаги се компилира само от 0x0800 нататък. Ако ползваш серийна връзка с #use RS232(...) го вкарай в този код, в противен случай компилатора си го поставя където му е удобно. |
||||||||||
| Автор: | ¶ [ Нед Сеп 17, 2006 2:33 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
Нещо не ще така да се компилира, излиза празна MessageBox и компилира безкрайно. |
|||||||||||||||||||
| Автор: | Predator_MF [ Нед Сеп 17, 2006 3:19 pm ] |
| Заглавие: | |
Смени си версията на CCS, явно някакъв бъг с хапчето, при мен работи на 3.245 (и 3.236) |
|
| Автор: | ¶ [ Нед Сеп 17, 2006 11:38 pm ] |
| Заглавие: | |
3.249 използвам. Гледам, че вече е излязла прословутата им 4-та версия, обаче за нула време има 10-тина подверсии, явно не са се отказали да имат бъгове. Някой има ли на лице 4-ката ? |
|
| Автор: | Gogo [ Пон Сеп 25, 2006 4:32 pm ] |
| Заглавие: | |
В сайта на майкрочеп пише така: "MPLAB v7.42 Interim Release MPLAB IDE now includes a free copy of the CCS PCB C Compiler." Ама не съм го пробвал... |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|