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

 
 
> ATxmega64 -> ATxmega128
zombi
сообщение Mar 31 2012, 11:13
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Купил свои первые xmega64 для опытной партии изделий.
Написал прогу. Всё работает, всё гут.
Решил купить иксмеги для серии.
И оказалось что проще купить ATxmega128 чем ATxmega64.
Менеджер по продажам с пеной у рта кричал что чипы отличаются только обьёмами памяти и замена произойдёт абсолютно безболезненно.
Поверил. Купил.
Собрал изделие на 128-й.
НЕРАБОТАЕТ.
Начал рыть, пол дня блин убил.
Выяснил что неработает вот такой простейший код:
Код
ldi ra,low(MMM)
push ra
ldi ra,high(MMM)
push ra
ret
...
MMM: nop

Оказалось что у иксмеги128 програмной памяти больше чем 128кБ (у неё 136!) и у неё PC 22 бита!
Команды CALL,RCALL и вход в прерывание загружает в стек не 2 а 3 байта.
Пришлось переписывать программу и пересчитывать времянки.
Вот такая вот "безболезненная" замена. biggrin.gif
Кстати, а где в DS на иксмеги указывается размер PC?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Юрий_СВ
сообщение Mar 31 2012, 11:29
Сообщение #2


Участник
*

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



Цитата
3.10 RAMP and Extended Indirect Registers
In order to access program memory or data memory above 64K bytes, the address or address
pointer must be more than 16-bits. This is done by concatenating one register to one of the X-,
Y- or Z-registers, and this register then holds the most significant byte (MSB) in a 24-bit address
or address pointer.
These registers are only available on devices with external bus interface and/or more than 64K
bytes of program or data memory space. For these devices, only the number of bits required to
address the whole program and data memory space in the device is implemented in the
registers.
.................
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Mar 31 2012, 11:29
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(zombi @ Mar 31 2012, 14:13) *
Оказалось что у иксмеги128 програмной памяти больше чем 128кБ (у неё 136!) и у неё PC 22 бита!

Откуда дровишки?
Зачем 22 бита?
Хватает 17 бит.

Цитата(zombi @ Mar 31 2012, 14:13) *
Команды CALL,RCALL и вход в прерывание загружает в стек не 2 а 3 байта.

Что логично
Go to the top of the page
 
+Quote Post
zombi
сообщение Mar 31 2012, 11:38
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(_Артём_ @ Mar 31 2012, 14:29) *
Откуда дровишки?
Зачем 22 бита?
Хватает 17 бит.

Ну да, я имел ввиду > 16-ти.
Цитата(_Артём_ @ Mar 31 2012, 14:29) *
Что логично

Логично то логично. Но сбило столку число 128 в названии чипа!
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Mar 31 2012, 11:42
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(zombi @ Mar 31 2012, 14:38) *
Но сбило столку число 128 в названии чипа!

Бывает.
Хотя там ясно сказано 128+8 на бутлоадер.
Go to the top of the page
 
+Quote Post

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

 


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


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