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

 
 
19 страниц V  « < 14 15 16 17 18 > »   
Reply to this topicStart new topic
> Проблема с TWI
James D.
сообщение Jan 7 2006, 10:27
Сообщение #226


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 10-10-05
Пользователь №: 9 466



Ничерта сообщения не редактируются.
Сделал так:
Перезапустил симулятор, сразу указал для первого МК: Flags: pr_1_mega32.lst pr_1_mega32.hex.
Все файлы для трех МК находятся в папке, которой пользуется AVRStudio, не в одной папке с проектом дизайна Протеуса. Можно ли так делать?
Здесь: "Source Code Filename" указал: PR_1_mega32.asm. Для каждого МК указал путь к их HEX файлам.
Файлы с расширениями .lst и .SDI не появляются.
Попробовал выполнить Build All. Выдало: ERROR: PR_1_mega32.LST not found.
В чем ошибка?
Go to the top of the page
 
+Quote Post
James D.
сообщение Jan 7 2006, 14:55
Сообщение #227


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 10-10-05
Пользователь №: 9 466



В студии нашел как создать файл .lst, а .SDI создал, судя по всему, Протеус. Так что эти файлы появились.
Но при попытке выполнить Build All вываливает:

Processing ..\..\INSTALL\My projects\Project TWI\_ATmega32\_mega32.asm...
AVRASM ..\..\INSTALL\My projects\Project TWI\_ATmega32\_mega32.asm _mega32.lst _mega32.hex
AVRASM: AVR macro assembler version 1.30 (Jan 27 1999 01:30:00)
Copyright © 1995-1999 ATMEL Corporation

usage: avrasm [-m | -i | -g] [-w] <infile> <lisfile> <romfile>
-m Output Motorola S-record format
-i Output Intel HEX format (default)
-g Output Generic format
-w Relative jumps are allowed to wrap for
program ROM up to 4k words in size

ERROR: Avrasm.exe reported error code (1L).
Extracting debug data from ..\..\INSTALL\My projects\Project TWI\_ATmega32\_mega32.LST...
Processed 16855 lines.

Build FAILED with 1 error(s).

Получается так: какой исходный .asm файл я указываю в "Add/Remove Source Code Files", для того МК (из трех) и выскакивает эта ошибка.

Сообщение отредактировал James D. - Jan 7 2006, 15:24
Go to the top of the page
 
+Quote Post
m16
сообщение Jan 7 2006, 15:18
Сообщение #228


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



James D.
я для себя давно сделал вывод что все симуляторы - барахло и они далеки от реальных процессов в кристалле , эл. схеме. А посему отлаживаю программы через jtagice чего и вам желаю.
Go to the top of the page
 
+Quote Post
James D.
сообщение Jan 7 2006, 15:32
Сообщение #229


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 10-10-05
Пользователь №: 9 466



Спасибо, я бы с удовольствием отлаживал через JTAG, но у меня его нет, да и стоит он дороговато...

Можно, говорят, сделать самодельный, но я встречал на форумах обсуждения этих самоделок, так там тоже бывают проблемки, а у меня, слава Богу, одна уже есть. Вот когда/если я ее решу, то можно будет подумать и о jtag.
Go to the top of the page
 
+Quote Post
m16
сообщение Jan 7 2006, 15:36
Сообщение #230


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



Цитата(James D. @ Jan 7 2006, 18:25) *
Спасибо, я бы с удовольствием отлаживал через JTAG, но у меня его нет, да и стоит он дороговато...

нуууууу вы блин даете : мега16+макс232+кварц7.37+макетка+навеска(резюки,кондюки)=~500рэ и три часа работы
http://electronix.ru/forum/index.php?act=A...pe=post&id=2167
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jan 7 2006, 16:13
Сообщение #231


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(m16 @ Jan 7 2006, 18:18) *
James D.
я для себя давно сделал вывод что все симуляторы - барахло и они далеки от реальных процессов в кристалле , эл. схеме. А посему отлаживаю программы через jtagice чего и вам желаю.


Каждый делает сам свои выводы,это тоже самое что спорить какая среда или язык программирования лучше.
Тем более макетку юзать никто не отменял.

JTAG вещь хорошая, но есть одна проблема,его нет у всех TINY и половины МЕГ.Это только по AVR,а
есть еще и другие контроллеры.

Цитата
В студии нашел как создать файл .lst, а .SDI создал, судя по всему, Протеус. Так что эти файлы появились.
Но при попытке выполнить Build All вываливает


Ничего Вы не добились.
Посмотрите Sourse>>>Add/Remove
Текстбокс Flags там скорее всего ничего не указано

Вернитесь к проблеме создания .lst файла.

Все так и должно быть при создании нового проекта и сохранении В НОВОЙ ПАПКЕ.
Проблема из за того что в ПРОТЕУСЕ остаються старые пути к файлам.
Делаем так.
Делаем новый проект >>>File>>Save As...>>сохраняем в новой папке.
Потом заносим в эту же папку исходник и и подключаемые файлы к нему.Если используете компиллер AVRASM v1.30 и мегу32 значит переносите подключаемый файл обьявления имен регистров m32def.inc в папку.
В исходнике вначале пишете диррективу .include "m32def.inc",а в самом файле m32def.inc убираете диррективу в самом начале .device ATmega32

Потом Sourse>>>Add/Remove >>>И НАЖИМАЕМ КНОПКУ "NEW" ,
Все значения заносим заново,при этом в текстбоксе SourseCodeFileName должен отображаться
ТОЛЬКО <имя>.asm БЕЗ УКАЗАНИЯ ПУТИ на тип C:/Proteus/temp/<имя>.asm
(остальное как писал) ПОТОМ КНОПКА "OK"
Все после этого должно все работать.
Go to the top of the page
 
+Quote Post
James D.
сообщение Jan 7 2006, 17:47
Сообщение #232


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 10-10-05
Пользователь №: 9 466



А .lst файл создается в AVRстудии - Project/AVR Assembler Setup/ галочку поставил - "List file", и всё.

Значит делаю так:
Создал новую папку: D:\My Projekt Proteus\Projekt_1. My system_2
Создал новый проект, сохранил в эту папку.
Потом в нее же перенес все файлы для трех МК, которые создала AVRстудия - все в одной куче без папок.
Во всех исходниках, в начале я всегда пишу - .include "m32def.inc" или .include "m16def.inc", эти файлы подредактировал - убрал строку .device ATmega32 и .device ATmega16.

Потом Source>>>Define Code Generation Tools...
В разделе Code Generation Tool>>>
Tool: AVRASM,
Path: C:\Labcenter Electronics\Proteus 6 Demonstration\Tools\AVRASM\Avrasm.exe

В разделе Make Rules>>>
Source Extn: ASM
Obj. Extn: HEX
Command Line: %1

В разделе Debug Data Extraction>>>
List File Extn: LST
Path: C:\Labcenter Electronics\Proteus 6 Demonstration\Tools\AVRASM\avrddx.EXE

Потом Source>>>Add/Remove Source Code Files
В разделе Source Code Filename>>>AZ_1_mega32.asm
В разделе Code Generation Tool>>>AVRASM
Flags: az_1_mega32.lst az_1_mega32.hex

Потом в Протеусе расположил 3 МК: 2 - m32 и 1 - m16. Для каждого в пункте Program File указал: "az_1_mega32.hex" и так же для остальных двух. Clock Frequency: 4MHz у всех МК.
Проект сохранил.
Жму Source>>>Build All, результат:

Processing AZ_1_mega32.asm...
AVRASM AZ_1_mega32.asm az_1_mega32.lst az_1_mega32.hex
AVRASM: AVR macro assembler version 1.30 (Jan 27 1999 01:30:00)
Copyright &copy; 1995-1999 ATMEL Corporation

ERROR: Unable to open input file 'AZ_1_mega32.asm'

ERROR: Avrasm.exe reported error code (1L).
Extracting debug data from AZ_1_mega32.LST...
Processed 13737 lines.

Build FAILED with 1 error(s).

Компиллер - как видите version 1.30. В AVRстудии - не знаю какой версии, в папке, в которой находится студия - AVR Tools, есть папка AvrAssembler, в ней - avrasm32.

Ну что я делаю не так? Откуда эта ошибка?
Go to the top of the page
 
+Quote Post
James D.
сообщение Jan 7 2006, 18:17
Сообщение #233


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 10-10-05
Пользователь №: 9 466



Да, еще одно. В Debug>>>AVR Source Code - U1 (az_1_mega32) - есть, а для остальных двух МК - нет. Файл AZ_1_mega32.SDI - есть, а для остальных двух МК - файлов .SDI - нет.
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jan 7 2006, 18:54
Сообщение #234


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Ну Вы как обычно,бежите вперед батька в пекло.

Еще толком не разобрались как подключать исходник ,а вы уже хотите подключать через AVRstudio/

У ПРОТЕУСА есть свой редактор исходного кода SRCEDIT.
Когда Вы прописали параметры в Sourse,в закладке Sourse появляеться новая строка с названием вашего исходника,нажимаете редактируете.Путь к редактору Sourse>>>SetupExternalTextEditor

Теперь ошибки,хоть в английском не силен,попробую

ERROR: Unable to open input file 'AZ_1_mega32.asm'

Здесь похоже этот файл уже открыт другим приложением,возможно AVRstudio

ERROR: Avrasm.exe reported error code (1L).
Extracting debug data from AZ_1_mega32.LST...
Processed 13737 lines.

Здесь вы же создали .lst файл компиллером AVRASM32 а каким нужно?
Компилерр AVRASM сам создаст при тех настройках что писал.
Go to the top of the page
 
+Quote Post
James D.
сообщение Jan 7 2006, 19:58
Сообщение #235


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 10-10-05
Пользователь №: 9 466



Так, получается, .asm файл создает сам Протеус?
Я думал, он будет открывать мой...
Прописал параметры в Source, в Source Code Filename нажал "Change", выбрал папку проекта Протеуса (предварительно удалив оттуда свой .asm файл), написал: AZ_1_mega32.asm. Так как его там нет, Протеус задал вопрос: надо ли его создать? Создал.
В меню Source, внизу нажал "AZ_1_mega32.asm", открылось окно редактора. Раньше, при его открытии выскакивала ошибка, типа, файл нельзя открыть, теперь отрылся нормально.
Попробовал скопировать содержимое своего .asm файла в окно редактора - обломчик, у Протеуса, видно есть ограничение на объем файла. Не вставляется туда текст. Объем моего .asm файла = 300кБ.
Что же дальше?
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jan 7 2006, 20:29
Сообщение #236


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



300КИЛОБАЙТ????!!!!!

Ну извиняйте создатели SRCEDIT наверное явно не расчитывали что народ научиться писать код
для МК таких размеров.
Я например до сих пор пользуюсь проостыми вещами,например пишу исходники для веб-страниц и
asm на обыкновенном БЛОКНОТЕ.
При работе с файлами ВИНКОММАНДЕР и т.д.

Ладно есть два варианта я думаю

1. Путь к редактору Sourse>>>SetupExternalTextEditor указывайте редактор AVRstudio
2.Переписывайте исходник.

Ну еще 3.как я в основном делаю компилю в своей среде ,и использую только для симуляции.
Go to the top of the page
 
+Quote Post
James D.
сообщение Jan 7 2006, 21:36
Сообщение #237


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 10-10-05
Пользователь №: 9 466



Я тут вот что подумал.
В Source Code Filename надо ведь указывать любой МК, который присутствует в схеме? У меня мастер имеет объем .asm файла 300кБ, слэйв1 - 390кБ, а слэйв2 - 16кБ. Вот я слэйв2 и указал. В окне редактора я ничего не писал, просто указал путь на .asm файл, созданный студией. В SetupExternalTextEditor восстановил путь к SRCEDIT.
Исходник открывается нормально. Делаем Source>>>Build All, читаем:

Processing RTC_1.asm...
AVRASM RTC_1.asm rtc_1.lst rtc_1.hex
AVRASM: AVR macro assembler version 1.30 (Jan 27 1999 01:30:00)
Copyright &copy; 1995-1999 ATMEL Corporation

Creating 'RTC_1.eep'
Creating 'rtc_1.hex'
Creating 'RTC_1.obj'
Creating 'rtc_1.lst'

Assembling 'RTC_1.asm'
Including 'm16def.inc'

Program memory usage:
Code : 350 words
Constants (dw/db): 0 words
Unused : 20 words
Total : 370 words

Assembly complete with no errors.
Deleting 'RTC_1.eep'

Extracting debug data from RTC_1.LST...
Processed 1182 lines.

Build completed OK.

Так или не так?

Или всю эту процедуру надо проделывать для каждого МК в схеме? blink.gif
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jan 7 2006, 22:35
Сообщение #238


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Этим вы только указываете путь к файлу для компиляции,
но SRCEDIT том вы всеравно исходник не откроете,хотя вполне возможно SDIфайл будет.
Я тут поковырялся ,можно указать путь к AVRstudio в ПРОТЕУСЕ там править код и запускать
в ПРОТЕУСЕ но перед этим нужно сохранить файл и закрыть прогу в AVRstudio.
Возможно еще как по другому можно чтобы упростить процедуру,нужно поковыряться.
У SRCEDIT можно не выходя и сохраняя стартовать,но уж больно редактор этот простенький.
Например плохо искать ошибки в строке при компиляции и.т.д.


***Build completed OK.

Так или не так?

Или всю эту процедуру надо проделывать для каждого МК в схеме? ***

Ну наконец то пошло ,компилить для каждого конечно, прошивки же нужны и SDI-файлы тоже для просмотра полезно.
Я еще надыбал компиллер в AVRstudio покруче AVRASM2 попробую его поцепить в ПРОТЕУС,посмотреть чего хорошего.
Go to the top of the page
 
+Quote Post
James D.
сообщение Jan 8 2006, 05:36
Сообщение #239


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 10-10-05
Пользователь №: 9 466



Цитата
Этим вы только указываете путь к файлу для компиляции,
но SRCEDIT том вы всеравно исходник не откроете,хотя вполне возможно SDIфайл будет.

Исходник открывается нормально (SRCEDIT'ом), и .SDI файл имеется.
В Source>>> Add/Remove через NEW указал исходники для остальных двух МК. Редактором, правда, эти два не открываются, но .SDI файлы появились для всех 3-х МК, и, в режиме пошаговой отладки теперь можно открыть 3 окна AVR Source Code, и смотреть, как выполняется прога для каждого МК.
А что же с ошибками делать? Не может Протеус открыть мои гигантские .asm'ы...
Go to the top of the page
 
+Quote Post
James D.
сообщение Jan 8 2006, 17:23
Сообщение #240


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 10-10-05
Пользователь №: 9 466



Проверяю пошаговое выполнение программы.
Запустил отладку.
Открылось окно AVR Source Code для первого МК (у которого размер .asm файла = 300кб).
Сразу поясню: в моем исходнике сначала расположен сегмент .DSEG, потом .CSEG (прога) и, в конце, .ESEG.
Слева в окне отладчика расположены адреса (кстати, в этом окне, от меток ячеек памяти остались одни огрызки - слева от них отхвачены куски имен):

.include "m32def.inc"

---- .DSEG ;Bнуmpeнняя RAM
____
---- .ORG $0080
0100 A: .byte 32
____
---- .ORG $0100
0200 F: .byte 800
____
---- .ORG $0060
00C0 ht:.byte 1
.
.
.
---- .ORG $00F0
01E0 _kr:.byte 1 - последняя ячейка SRAM.

После этого идет сегмент .CSEG.
Прога стартует с адреса
---- .CSEG
---- .org $000
0000 rjmp RESET

Жму F11, выполнение переходит не сюда:

0052 RESET: ldi temp,high(RAMEND) . нaзнaчumь cmeк
0054 out SPH temp
0056 ldi temp,low(RAMEND)
0058 out SPL,temp

---- Уcmaнoвкa nopmoв B/B:
____
005A ldi temp,DIRA
005C out DDRA,temp ;уcmaнoвкa нanpaвлeнuя PORTA
005E ldi temp,PUPA
0060 out PORTA,temp ;uнuцuaлuзaцuя PORTA

а на сегмент .ESEG

0052 t_s: .db $00,$00,$00,$00

опять жму F11, выполнение идет на адрес 0054 - (out SPH temp), после этого на адрес 0056, 0058, а потом не на адрес 005А ( ldi temp,DIRA), а опять в .ESEG

005A t o hl:.db $00 $00

Точно так же может залететь и в .DSEG.
Что это за адреса такие, и почему они совпадают для программной памяти, ОЗУ и EEPROM?

Сообщение отредактировал James D. - Jan 8 2006, 17:27
Go to the top of the page
 
+Quote Post

19 страниц V  « < 14 15 16 17 18 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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