Отговори на тема  [ 9 мнения ] 
PIC16F873 + CCS #org and/or #build 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 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
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение 
CCS верЕсия 3.249 явно е много бъгава. При мене при компилирането, като срещне #org, показва някаква неопределена грешка и се започва едно безкраааайно компилиране...


Нед Сеп 17, 2006 12:03 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Не става ли да си дефинираш един голям безполезен масив от константи, който да ти запълни цялата Flash до $0800 ? Тогава и векторите ще са където трябва, и всичко? Аз ползвам CCS 1.183 ( или нещо такова ), то разполага константите най-отпред ( всъщност знаеш как са константите на 16F ). После си го забърсваш при първото стартиране на системата и готово!


Нед Сеп 17, 2006 11:07 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
В IAR такива магии се правят през конфигурационния фаил на линкера. Оттам може да задаваш адресите.
Също оттам в желаното адресно пространство може да си декларираш user сегмент и да си го ползваш за целта.
Така че поразгледай документацията на линкера на CCS за подобни неща.


Нед Сеп 17, 2006 11:44 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Код:
#ORG 0x0800,0x0FFF AUTO=0 DEFAULT
...your code here
#ORG DEFAULT


Горното при мен винаги се компилира само от 0x0800 нататък. Ако ползваш серийна връзка с #use RS232(...) го вкарай в този код, в противен случай компилатора си го поставя където му е удобно.


Нед Сеп 17, 2006 2:14 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Predator_MF написа:
Код:
#ORG 0x0800,0x0FFF AUTO=0 DEFAULT
...your code here
#ORG DEFAULT


Горното при мен винаги се компилира само от 0x0800 нататък. Ако ползваш серийна връзка с #use RS232(...) го вкарай в този код, в противен случай компилатора си го поставя където му е удобно.

Нещо не ще така да се компилира, излиза празна MessageBox и компилира безкрайно.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Нед Сеп 17, 2006 2:33 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 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
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 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
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 9 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни