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

 
 
> WinAVR и ELPM, ставит lpm вместо elpm
ZyBEX
сообщение Sep 30 2008, 21:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 5-05-08
Пользователь №: 37 279



Столкнулся с такой проблемой:

ATmega1280,
пишу bootloader, в 0 адресе все работает. Передвигаю на 0x01E000 - не запускается.
Смотрю дебагером и обнаруживаю, что там, где должна быть инструкция ELPM - стоит LPM (хотя RAMPZ установлен верно). Соответственно данные читаются не из того места, и переход выполняется в адрес где-то за пределами кода. Пока программа лежала в 0 адресе, не было переполнения на 16-й бит адреса и все работало нормально.

Кто нибудь сталкивался? Может какие ключи компиляции помогут? Или вручную опкоды править?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ZyBEX
сообщение Oct 1 2008, 18:33
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 5-05-08
Пользователь №: 37 279



По идее проблему можно решить, создавая объекты только локально. Но, ИМХО, для scmRTOS это невозможно без изменения самой ОС.

Временно решил проблему заменой в хекс редакторе неверных опкодов 9005 и 91F4 соответственно на 9007 и 91F6. Все заработало.

Вот если бы патчик написать, который сам это делать будет.
Go to the top of the page
 
+Quote Post
aesok
сообщение Oct 2 2008, 06:45
Сообщение #3


Знающий
****

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



Цитата(ZyBEX @ Oct 1 2008, 22:33) *
Временно решил проблему заменой в хекс редакторе неверных опкодов 9005 и 91F4 соответственно на 9007 и 91F6. Все заработало.


А Вы так быстро ВСЕ проверили?

__tablejump2__ используеться для реализации оператора case. Ваши исправления сделатют его не работоспособным для случая когда в case больше 16 ветвей и RAMPZ == 0.

Анатолий.
Go to the top of the page
 
+Quote Post
ZyBEX
сообщение Oct 2 2008, 08:21
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 5-05-08
Пользователь №: 37 279



Цитата(aesok @ Oct 2 2008, 10:45) *
А Вы так быстро ВСЕ проверили?

__tablejump2__ используеться для реализации оператора case. Ваши исправления сделатют его не работоспособным для случая когда в case больше 16 ветвей и RAMPZ == 0.

Анатолий.

Я об этом думал. Но все равно бутлоадер работает только в верхней памяти и уходит оттуда когда он уже не нужен. Так что все должно работать. Главное мне каждый раз после записи флеш нижних адресов, восстанавливать RAMPZ обратно на 1.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ZyBEX   WinAVR и ELPM   Sep 30 2008, 21:39
- - demiurg_spb   Что за версия компилятора? Приведите хоть кусочек ...   Oct 1 2008, 07:33
|- - ZyBEX   Цитата(demiurg_spb @ Oct 1 2008, 11:33) Ч...   Oct 1 2008, 10:06
|- - aesok   Цитата(ZyBEX @ Oct 1 2008, 14:06) Весь ко...   Oct 1 2008, 10:20
|- - ZyBEX   Цитата(aesok @ Oct 1 2008, 14:20) А фрагм...   Oct 1 2008, 10:41
|- - Сергей Борщ   Цитата(ZyBEX @ Oct 1 2008, 13:41) Я же го...   Oct 1 2008, 10:50
|- - ZyBEX   Цитата(Сергей Борщ @ Oct 1 2008, 14:50) Д...   Oct 1 2008, 14:11
|- - aesok   GCC Bugzilla Bug 29141 static constructors beyond ...   Oct 1 2008, 15:23
- - ZyBEX   Я понял что у меня за таблица, по которой бродит t...   Oct 1 2008, 15:54
- - ZyBEX   Проблема датируется 2006 годом. Странно что до сих...   Oct 1 2008, 17:09
|- - Сергей Борщ   Цитата(ZyBEX @ Oct 1 2008, 21:33) По идее...   Oct 1 2008, 20:04
||- - ZyBEX   [SOLVED] Цитата(Сергей Борщ @ Oct 2 2008, 00...   Oct 2 2008, 20:22
||- - aesok   Цитата(ZyBEX @ Oct 3 2008, 00:22) (хотя c...   Oct 2 2008, 20:32
||- - Сергей Борщ   Цитата(aesok @ Oct 2 2008, 23:32) PS: Без...   Oct 2 2008, 21:04
||- - aesok   Цитата(Сергей Борщ @ Oct 3 2008, 01:04) У...   Oct 2 2008, 21:10
||- - ZyBEX   Цитата(Сергей Борщ @ Oct 3 2008, 01:04) У...   Oct 3 2008, 00:40
||- - Сергей Борщ   Цитата(ZyBEX @ Oct 3 2008, 03:40) Тогда л...   Oct 3 2008, 08:04
||- - ZyBEX   Цитата(Сергей Борщ @ Oct 3 2008, 12:04) Н...   Oct 3 2008, 12:54
||- - Сергей Борщ   Цитата(ZyBEX @ Oct 3 2008, 15:54) Если r1...   Oct 3 2008, 13:41
- - ZyBEX   Цитата(C:/WinAVR/Doc/avr-libc/avr-li...   Oct 3 2008, 14:00


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 09:53
Рейтинг@Mail.ru


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