Является ли это BUG ??... avrstudio помощь ...

K

kanishka13

Guest
Я написал основную программу для хранения данных в SRAM и составил ее в окно памяти данных открыта.В результате, как ожидается.Данные из Регистра хранится в SRAM месте.Программа была ниже ...., Программа для хранения данных в SRAM месте 0x60
. INCLUDE "m32def.inc". Org 0x000rjmp МАГАЗИНSTORE:LDI R16, 10STS 0x60, R16; магазина в прямом SRAMrjmp МАГАЗИН
Но тогда ...

Я написал другую программу для загрузки содержимого при 0x60 расположения SRAM на R16.Я был перекомпилирован новой программы.Логика говорит, что, поскольку я восстановить всю программу снова предыдущее содержимое ОЗУ должен быть упущен и значение загружается в регистр R16 должно быть FF.Программа для загрузки данных из SRAM и сохранить его в R16
. INCLUDE "m32def.inc". Org 0x000rjmp ГРУЗГРУЗ:LDS R16, 0x60; нагрузку непосредственно от SRAMrjmp ГРУЗ

??

Но ценность, которые хранились в предыдущей программе была загружена .... Так IsInt эту ошибку??<img src="http://www.edaboard.com/images/smiles/icon_question.gif" alt="Вопрос" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_exclaim.gif" alt="Восклицательный" border="0" />Или я ошибаюсь то ??....

<img src="http://www.edaboard.com/images/smiles/icon_question.gif" alt="Вопрос" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_question.gif" alt="Вопрос" border="0" />Я использовал AVRSTUDIO 4.0 с пакетом обновления 1 для atmega32.

 
Попробуйте это:
Код:. INCLUDE "m32def.inc"

. Org 0x000rjmp началоНачало:

, всегда создании указателя стека!

;

LDI R16, LOW (RAMEND); создан указателя стека низким

из SPL, R16

LDI R16, HIGH (RAMEND); создан указателя стека высокой

из SPH, R16CLR R16; начинаться с 0 значения R16Главная:

rcall магазин; хранить данные в оперативной памяти @ 0x60 от R16

rcall нагрузки; загрузить байт из оперативной памяти @ 0x60 на R17

rjmp Main; петляSTORE:

Inc R16; каждый раз вкл R16

STS 0x60, R16; магазина в прямом SRAM от R16

СходГРУЗ:

LDS R17, 0x60; нагрузка прямо из SRAM в R17

Сход. Выход

 
Да я использую AVR тренажера для просмотра памяти SRAM

 
Это одна использует Y регистров в качестве указателя в ОЗУ.Код:

. INCLUDE "m32def.inc"

. Org 0x000

rjmp началоНачало:

, всегда создании указателя стека!

;

LDI R16, LOW (RAMEND); создан указателя стека низким

из SPL, R16

LDI R16, HIGH (RAMEND); создан указателя стека высокой

из SPH, R16Главная:

rcall clrRam; четкой оперативной памяти 0100

rcall fillRam; заполнить ОЗУ до 0100

rjmp Main; петляclrRam:

LDI R16, 0xFF; заполнить RAM со значением 0xFF

LDI Ю.Л., 0x60; начало RAM

LDI YH, 0x00;

clrRam1:

Санкт-Y , R16; хранить данные в R16 @ Y

, а прирост Y

ИПЦ YH, 0x01; четкой оперативной памяти 0100

Brně clrRam1

Сход

;------------------------------------------

; заполнить RAM со значениями 00,01,02,03,04, и т.д. ..

FillRam:

CLR R16; начинаться с 0 значения R16

LDI Ю.Л., 0x60; начало RAM

LDI YH, 0x00;

FillRam1:

Санкт-Y , R16; хранить данные в R16 @ Y

, а прирост Y

Inc R16, добавить 1 до R16

ИПЦ YH, 0x01; Заполните оперативной памяти 0100

Brně FillRam1

Сход

. Выход

 
Привет,
Это лишь общие комментарии.Я не думаю, что конкретное поведение необходимо рассматривать как ошибку, поскольку вы непосредственное чтение SRAM месте и программное обеспечение будут просто читать.Оно также показывает, что программное обеспечение не может инициализировать эти места, и вы должны это сделать с помощью программного обеспечения в случае необходимости.Вы можете получить некоторые другие значения в этом месте, если вы запустите программу сразу же после включения питания.
Если вы использовали имя переменной для хранения значения, может быть программное обеспечение будет иметь autoinitiated в FFh или 00h для первого использования времени.Опять же, может зависеть UPN конвенций после определенного языка.
Привет,
Laktronics

 

Welcome to EDABoard.com

Sponsor

Back
Top