| Автор |
Съобщение |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
 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 нагоре.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Съб Сеп 16, 2006 11:34 pm |
|
 |
|
Gogo
Ранг: Форумен бог
Регистриран на: Чет Фев 24, 2005 11:41 pm Мнения: 1049 Местоположение: Pz
|
CCS верЕсия 3.249 явно е много бъгава. При мене при компилирането, като срещне #org, показва някаква неопределена грешка и се започва едно безкраааайно компилиране...
|
| Нед Сеп 17, 2006 12:03 am |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Не става ли да си дефинираш един голям безполезен масив от константи, който да ти запълни цялата Flash до $0800 ? Тогава и векторите ще са където трябва, и всичко? Аз ползвам CCS 1.183 ( или нещо такова ), то разполага константите най-отпред ( всъщност знаеш как са константите на 16F ). После си го забърсваш при първото стартиране на системата и готово!
|
| Нед Сеп 17, 2006 11:07 am |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
В IAR такива магии се правят през конфигурационния фаил на линкера. Оттам може да задаваш адресите.
Също оттам в желаното адресно пространство може да си декларираш user сегмент и да си го ползваш за целта.
Така че поразгледай документацията на линкера на CCS за подобни неща.
|
| Нед Сеп 17, 2006 11:44 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Горното при мен винаги се компилира само от 0x0800 нататък. Ако ползваш серийна връзка с #use RS232(...) го вкарай в този код, в противен случай компилатора си го поставя където му е удобно.
|
| Нед Сеп 17, 2006 2:14 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Нещо не ще така да се компилира, излиза празна MessageBox и компилира безкрайно.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Нед Сеп 17, 2006 2:33 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Смени си версията на CCS, явно някакъв бъг с хапчето, при мен работи на 3.245 (и 3.236)
|
| Нед Сеп 17, 2006 3:19 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
3.249 използвам. Гледам, че вече е излязла прословутата им 4-та версия, обаче за нула време има 10-тина подверсии, явно не са се отказали да имат бъгове. Някой има ли на лице 4-ката ?
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Нед Сеп 17, 2006 11:38 pm |
|
 |
|
Gogo
Ранг: Форумен бог
Регистриран на: Чет Фев 24, 2005 11:41 pm Мнения: 1049 Местоположение: Pz
|
В сайта на майкрочеп пише така:
"MPLAB v7.42 Interim Release
MPLAB IDE now includes a free copy of the CCS PCB C Compiler."
Ама не съм го пробвал...
|
| Пон Сеп 25, 2006 4:32 pm |
|
|