реклама на сайте
подробности

 
 
> перенос программы с IAR на AVR-GCC, нужна помощь..., вопросик для опытных в linux avr-gcc, нужна Ваша помошь...
PrSt
сообщение May 3 2007, 16:25
Сообщение #1


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



Нужно произвести операцию: (именно под linux-AVR-GCC)
перенос программы с IAR на GCC, помогите пожалуйста решить возникшую проблемку...
вероятно все проблеммы по не знанию тонкостей или ньюансов...
сам с AVR не работал до этого толком....
возникли проблеммы в частности с с прерыванием...

программа была написанная на IAR, какойто там версии под контроллер ATMEGA161 (хотя камень впаян 162)...
Но все это работает с HEX от IAR

а нужно перенести под GCC и довольствоваться результатом...

я программу эту портировал под GCC...
Местати что надо подправил под специфику компилятора, полазив по инету и подсмотрев как...
например кое что тут - http://www.avrfreaks.net/wiki/index.php/Do...GCC/IarToAvrgcc

Получил HEX
патаюсь его прошить - прошиваю, даже загорается на платке светодиод...
...но светодиод должен сменить свой цвет при возникновении прерывания и остаться с этим значением...
Однако этого не происходит...

вот как было под IAR
#pragma vector=INT1_vect
__interrupt void INT1_(void) // INT1 interrupt service routine
{
.....
while(1){LED_RED;}
}

вот как теперь стало под GCC
#pragma vector=INT1_vect
//__interrupt void INT1_(void) // INT1 interrupt service routine
ISR (INT1_vect) // INT1 interrupt service routine // veter
{
....
while(1){LED_RED;}
}

и не работает...
в интернете на многих сайтах говорится что делать так и оно обязанно работать...
почему у меня не работает? Может какието гдето регистры?


заранее Большое-Человеческое спасибо ответевшим!


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение May 4 2007, 02:50
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Вроде все ок, #pragma - лишняя, но поидее GCC ее просто проигнорирует.

Может вы пропустили:
__enable_interrupt() --> sei()

?
Go to the top of the page
 
+Quote Post
PrSt
сообщение May 4 2007, 12:08
Сообщение #3


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



Цитата(defunct @ May 4 2007, 02:50) *
Вроде все ок, #pragma - лишняя, но поидее GCC ее просто проигнорирует.
Может вы пропустили:
__enable_interrupt() --> sei()
?

о! наткнулся на подобное чтото
именно после вызова sei() программа не выходит из процедуры sei
// _SEI();
sei(); // veter
LED_RED;
так вот светодиод LED_RED - не загорается....

.


--------------------
Go to the top of the page
 
+Quote Post
aesok
сообщение May 4 2007, 12:17
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Версия avr-libc, все сообщения компилятора, больше кода....
Go to the top of the page
 
+Quote Post
PrSt
сообщение May 4 2007, 12:36
Сообщение #5


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



Цитата(aesok @ May 4 2007, 12:17) *
Версия avr-libc, все сообщения компилятора, больше кода....

а что именно из куда нужно?
...
status = 0x00;
status_minute = 0x00;
status_hour = 0x00;
status_month = rd_char(STATUS); //status_month = eeprom_status;
LED_RED; - вот здесь загорается светодиод... как и положено

// _SEI();
sei(); // veter
LED_RED; - вот здесь не загорается, такое впечятление что не выходит из прерывания...

delay_ms(1000);
....

avr-libc - тот что идет стандартный с debian etch
veter@server:~/for_gcc$ apt-cache showpkg avr-libc
Package: avr-libc
Versions:
1:1.4.5-2(/var/lib/apt/lists/_mnt_cd2_dists_stable_main_binary-i386_Packages)(/var/lib/apt/lists/Debian%20GNU_Linux%204.0%20r0%20%5fEtch%5f%20-%20Official%20i386%20DVD%20Binary-2%2020070407-11:40_dists_etch_main_binary-i386_Packages)(/var/lib/dpkg/status)

Reverse Depends:
avr-libc,avr-libc
gcc-avr,avr-libc 1:1.2.3-3
Dependencies:
1:1.4.5-2 - avr-libc (0 (null)) avr-gcc (1 1:3.4.3-2)
Provides:
1:1.4.5-2 -
Reverse Provides:


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- PrSt   перенос программы с IAR на AVR-GCC, нужна помощь...   May 3 2007, 16:25
|- - PrSt   Цитата(defunct @ May 4 2007, 02:50) Вроде...   May 4 2007, 10:31
|- - aesok   Цитата(PrSt @ May 4 2007, 16:36) а что им...   May 4 2007, 10:54
|- - Dog Pawlowa   Цитата(PrSt @ May 4 2007, 15:36) // _SEI...   May 4 2007, 13:40
|- - defunct   Цитата(PrSt @ May 4 2007, 14:36) sei(); /...   May 4 2007, 18:50
- - Kuzmi4   Вообще то советовал бы поменять ISR на SIGNAL (INT...   May 4 2007, 12:34
- - Igor26   Может попробовать заменить sei(); на ASM-вставку т...   May 4 2007, 12:46
- - Hz!   А вы разрешаете калие-либо другие прерывания? Не м...   May 4 2007, 09:53
|- - PrSt   Цитата(Hz! @ May 4 2007, 12:53) А вы ...   May 4 2007, 11:45
- - mdmitry   >Вообще то советовал бы поменять ISR на >SIG...   May 4 2007, 20:13
- - forever failure   Цитатая нашел по ходу ошибку в ASM файле было ;PO...   May 5 2007, 04:07
- - ReAl   Цитата(forever failure @ May 5 2007, 06:0...   May 5 2007, 07:56
- - mdmitry   В Си доступ к портам прост. Например, запись в пор...   May 5 2007, 10:25


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th August 2025 - 07:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.02177 секунд с 7
ELECTRONIX ©2004-2016