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

 
 
> Портирование программы с IAR на WinAVR (GCC), тонкости с асемблером
PrSt
сообщение Nov 14 2007, 11:37
Сообщение #1


http://uschema.com
****

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



привет всем!

Портировать пришлось программу из среды IAR на среду WinAVR (GCC), и столкнулся с тем что я чегото не понимаю или не знаю...
помогите плиз разобраться

Вот привожу кусок кода как это было под IAR
Код
NAME loader
;     INCLUDE ""
     PUBLIC loader6000
     RSEG CODE  

.globl loader6000

SCLK  DEFINE 0
Data  DEFINE 1
Latch DEFINE 2

PORTA var 18h    

.text      
loader6000;
...
...



Но программу нужно портировать на WinAVR

А вот как я сделал под WinAVR

Код
;NAME loader
;;     INCLUDE ""
;     PUBLIC loader6000
;     RSEG CODE  

.globl loader6000


;SCLK  DEFINE 0
;Data  DEFINE 1
;Latch DEFINE 2
#define SCLK  0
#define Data  1
#define Latch 2

;PORTA var 18h    
PORTA = 0x18    

.text      
;loader6000;
loader6000:
....


Программа компиллируется но не работает

я так подозреваю что я некоррктно першел от записи PORTA var 18h или чтото не так понял как правильно интерпретировать иаровский DEFINE
Код
SCLK  DEFINE 0
Data  DEFINE 1
Latch DEFINE 2

PORTA var 18h


к записи

Код
#define SCLK  0
#define Data  1
#define Latch 2

PORTA = 0x18


я не могу понять как ему можно еще сказать.
как сделать правильно?
подскажите плиз!




.


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GDI
сообщение Nov 14 2007, 12:33
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Что то я не понял что за программа такая и на каком языке писана... Воообще то все дефайны портов и регистров у GCC есть свои, надо просто подключить нужные хедеры.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
PrSt
сообщение Nov 14 2007, 13:26
Сообщение #3


http://uschema.com
****

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



Цитата(GDI @ Nov 14 2007, 14:33) *
Что то я не понял что за программа такая и на каком языке писана... Воообще то все дефайны портов и регистров у GCC есть свои, надо просто подключить нужные хедеры.

рассказую
это рабочий реально проект
там все настроенно
но есть одна Ж...- его писали давно и под IAR
Все бы ничего... но сейчас мне нужно пртировать его на WinAVR и там есть несколько ASM файлов
вот их я и пытаюсь правильно изменить под винавр

в GCC в iom128.h есть объявление
...
/* Data Register, Port C */
#define PORTC _SFR_IO8(0x15)
...

когда в асм файлах делаю
INCLUDE "iom128.h"
то получаю ERROR при компиляции
...
Assembling: loader.S
avr-gcc -c -mmcu=atmega103 -I. -x assembler-with-cpp -DF_CPU=3686400 -Wa,-adhlns=./loader.lst,-gstabs,--listing-cont-lines=100 loader.S -o loader.o
loader.S: Assembler messages:
loader.S:6: Error: unknown opcode `include'
loader.S:26: Error: constant value required
loader.S:27: Error: constant value required
loader.S:28: Error: constant value required
make.exe: *** [loader.o] Error 1
...
тоесть include - компилятор не прожевывает почемуто

делать
#define PORTA 0x18 я пробовал
но это же не то что
PORTA var 18h
как мне кажется... я просто не знаю толи это или нет...

Вот так все ОК, и кажется что должно работать
но программа не работает вообще.


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

Сообщений в этой теме
- PrSt   Портирование программы с IAR на WinAVR (GCC)   Nov 14 2007, 11:37
- - forever failure   да так же и записать: #define PORTA ...   Nov 14 2007, 12:26
- - forever failure   #include <avr/io.h> а в командной строке ком...   Nov 14 2007, 13:35
|- - PrSt   Цитата(forever failure @ Nov 14 2007, 15...   Nov 14 2007, 13:50
- - forever failure   Практика - вот единственный критерий правильности....   Nov 14 2007, 14:10
|- - PrSt   Цитата(forever failure @ Nov 14 2007, 16...   Nov 14 2007, 14:35
- - ReAl   Код.nolist #define __SFR_OFFSET 0 #include <av...   Nov 14 2007, 15:27
- - forever failure   Просто по выходу препроцессора можно посмотреть ка...   Nov 14 2007, 16:20
- - mdmitry   В исходном файле должны быть соответствующие загол...   Nov 14 2007, 21:09
|- - PrSt   Цитата(mdmitry @ Nov 14 2007, 23:09) В ис...   Nov 15 2007, 08:28
- - mdmitry   У Вас действительно atmega103? Для разбора проблем...   Nov 15 2007, 20:08
|- - PrSt   Цитата(mdmitry @ Nov 15 2007, 22:08) У Ва...   Nov 16 2007, 12:53
- - alcosar   У Вас КодData: 65087 bytes (1627.2% Full...   Nov 16 2007, 14:31
- - PrSt   Цитата(alcosar @ Nov 16 2007, 16:31) У Ва...   Nov 16 2007, 15:27
- - PrSt   проблема с памятью решена ...наткнулся на следующ...   Nov 19 2007, 13:08
- - Сергей Борщ   По объявлению - можно и так: prog_uint8_t ga_field...   Nov 19 2007, 13:33
- - PrSt   Цитата(Сергей Борщ @ Nov 19 2007, 15:33) ...   Nov 19 2007, 13:57
- - PrSt   Цитата(Сергей Борщ @ Nov 19 2007, 15:33) ...   Nov 20 2007, 08:11
- - Сергей Борщ   Цитата(PrSt @ Nov 20 2007, 10:11) не помо...   Nov 20 2007, 08:40
- - PrSt   Цитата(Сергей Борщ @ Nov 20 2007, 10:40) ...   Nov 20 2007, 08:55
- - Сергей Борщ   Цитата(PrSt @ Nov 20 2007, 10:55) разобра...   Nov 20 2007, 09:33
- - PrSt   Цитата(Сергей Борщ @ Nov 20 2007, 11:33) ...   Nov 20 2007, 10:25
- - PrSt   Цитата(Сергей Борщ @ Nov 20 2007, 11:33) ...   Nov 20 2007, 14:51
- - Сергей Борщ   Цитата(PrSt @ Nov 20 2007, 16:51) Код SP...   Nov 20 2007, 14:58


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

 


RSS Текстовая версия Сейчас: 1st August 2025 - 20:50
Рейтинг@Mail.ru


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