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

 
 
 
Reply to this topicStart new topic
> Ограничитель используемой SRAM, С чем именно связанно это ограничение?
KESTVVV
сообщение Apr 15 2014, 13:08
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-02-07
Пользователь №: 25 146



Здравствуйте.
Столкнулся с ситуацией - не хватает SRAM доступной для использования программой.
Микроконтроллер ATMEGA 48PA.
В AVR Studio имеется файлик m48PAdef.inc в котором имеется ограничение используемой программой памяти.

#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100

Вопрос такой - с чем именно связанно это ограничение?
Go to the top of the page
 
+Quote Post
megajohn
сообщение Apr 15 2014, 13:23
Сообщение #2


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

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(KESTVVV @ Apr 15 2014, 17:08) *
Вопрос такой - с чем именно связанно это ограничение?


Дык, регистры периферии и прочее

по ссылке смотреть Figure 8-3. Data memory map


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
RabidRabbit
сообщение Apr 15 2014, 13:25
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040



Не хватает ОЗУ - берите контроллер "потолще", например, 88PA, там её в два раза больше.
Цитата(KESTVVV @ Apr 15 2014, 17:08) *
#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100

А это адрес, с которого ОЗУ начинается, ничего более.
RTFD, короче говоря sm.gif
Go to the top of the page
 
+Quote Post
KESTVVV
сообщение Apr 15 2014, 13:28
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-02-07
Пользователь №: 25 146



То что они используются под периферию - я прекрасно знаю. Но имеются блоки памяти помеченные как зарезервированные.
Вопрос в том - можно ли использовать адреса помеченные как зарезервированные?

Цитата(RabidRabbit @ Apr 15 2014, 15:25) *
Не хватает ОЗУ - берите контроллер "потолще", например, 88PA, там её в два раза больше.

А это адрес, с которого ОЗУ начинается, ничего более.
RTFD, короче говоря sm.gif


У этой модели по этим настройкам доступно 256 из 512 байт SRAM.
Go to the top of the page
 
+Quote Post
megajohn
сообщение Apr 15 2014, 13:37
Сообщение #5


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

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(RabidRabbit @ Apr 15 2014, 17:25) *
Не хватает ОЗУ - берите контроллер "потолще", например, 88PA, там её в два раза больше.
А это адрес, с которого ОЗУ начинается, ничего более.


ну в голодные времена, люди юзали регистры неиспользуемой периферии. А что было делать.

А вообще, автору можно приделать malloc / free ( это проще, чем перепаивать контроллеры )

Цитата(KESTVVV @ Apr 15 2014, 17:28) *
То что они используются под периферию - я прекрасно знаю. Но имеются блоки памяти помеченные как зарезервированные.
Вопрос в том - можно ли использовать адреса помеченные как зарезервированные?


и где такое узрели ?

Код
; ***** DATA MEMORY DECLARATIONS *****************************************
.equ    FLASHEND    = 0x07ff; Note: Word address
.equ    IOEND    = 0x00ff
.equ    SRAM_START    = 0x0100
.equ    SRAM_SIZE    = 512
.equ    RAMEND    = 0x02ff
.equ    XRAMEND    = 0x0000
.equ    E2END    = 0x00ff
.equ    EEPROMEND    = 0x00ff
.equ    EEADRBITS    = 8
#pragma AVRPART MEMORY PROG_FLASH 4096
#pragma AVRPART MEMORY EEPROM 256
#pragma AVRPART MEMORY INT_SRAM SIZE 512
#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
KESTVVV
сообщение Apr 15 2014, 13:41
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-02-07
Пользователь №: 25 146



Я пишу на на ассемблере.
Я конечно понимаю , что это выход за "рекомендуемые" значения.
Имеются два крупных блока 008С-00AF , 00C7-00FF - информация из даташита - сводная таблица регистров.
Go to the top of the page
 
+Quote Post
RabidRabbit
сообщение Apr 15 2014, 13:47
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040



Написание программы на ассемблере не избавляет от необходимости внимательно читать даташит. Причём весь, не кусками. А на Ваш вопрос исчерпывающе отвечает пункт 8.3 SRAM Data Memory.
Go to the top of the page
 
+Quote Post
megajohn
сообщение Apr 15 2014, 13:51
Сообщение #8


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

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(KESTVVV @ Apr 15 2014, 17:41) *
Я пишу на на ассемблере.
Я конечно понимаю , что это выход за "рекомендуемые" значения.
Имеются два крупных блока 008С-00AF , 00C7-00FF - информация из даташита - сводная таблица регистров.


For compatibility with future devices, reserved bits should be written to zero if accessed.
Reserved I/O memory addresses should never be written.


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
KESTVVV
сообщение Apr 15 2014, 14:09
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-02-07
Пользователь №: 25 146



Цитата(RabidRabbit @ Apr 15 2014, 15:47) *
Написание программы на ассемблере не избавляет от необходимости внимательно читать даташит. Причём весь, не кусками. А на Ваш вопрос исчерпывающе отвечает пункт 8.3 SRAM Data Memory.

И где в этом пункте указана причина запрета обращения к этой области?

То что атмел пытается себя обезопасить от проблем связанных с эволюцией контроллеров - это понятно.
Если модель контроллера не меняется , то есть возможность использования этой области. Так?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 15 2014, 14:15
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(KESTVVV @ Apr 15 2014, 17:09) *
Если модель контроллера не меняется , то есть возможность использования этой области. Так?
Возможность есть, памяти там нет. А даже если сегодня вы ее там случайно найдете - не факт, что она там будет в таком же контроллере из другой упаковки.


Цитата(KESTVVV @ Apr 15 2014, 16:28) *
У этой модели по этим настройкам доступно 256 из 512 байт SRAM.
Ой. Память начинается от 0x100 и заканчивается на 0x2FF. 512 байт. Где вы потеряли половину?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
KESTVVV
сообщение Apr 15 2014, 14:25
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-02-07
Пользователь №: 25 146



Цитата(Сергей Борщ @ Apr 15 2014, 16:15) *
Возможность есть, памяти там нет. А даже если сегодня вы ее там случайно найдете - не факт, что она там будет в таком же контроллере из другой упаковки.


Ой. Память начинается от 0x100 и заканчивается на 0x2FF. 512 байт. Где вы потеряли половину?

Спасибо.... Я ошибочно предполагал , что память заканчивается на 0x01FF .
Тему можно закрывать.
Go to the top of the page
 
+Quote Post
megajohn
сообщение Apr 15 2014, 14:25
Сообщение #12


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

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(Сергей Борщ @ Apr 15 2014, 18:15) *
Ой. Память начинается от 0x100 и заканчивается на 0x2FF. 512 байт. Где вы потеряли половину?



это вы потеряли половину, а топик-стартер потерял 75% =)))
в меге88 1кб

Код
.equ    SRAM_START    = 0x0100
.equ    SRAM_SIZE    = 1024
.equ    RAMEND    = 0x04ff


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 15 2014, 14:33
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(megajohn @ Apr 15 2014, 17:25) *
это вы потеряли половину, а топик-стартер потерял 75% =)))
Не, я зрение на прошлой неделе проверял - единица. В первом сообщении речь идет о меге-48.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
prottoss
сообщение Apr 15 2014, 14:33
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(megajohn @ Apr 15 2014, 20:25) *
это вы потеряли половину, а топик-стартер потерял 75% =)))
в меге88 1кб
Это Ваш аватар просто одним глазом смотрит sm.gif - речь про ATmega48 а не про ATmega88


--------------------
Go to the top of the page
 
+Quote Post
megajohn
сообщение Apr 15 2014, 14:37
Сообщение #15


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

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(Сергей Борщ @ Apr 15 2014, 18:33) *
Не, я зрение на прошлой неделе проверял - единица. В первом сообщении речь идет о меге-48.


RabidRabbit: берите контроллер "потолще", например, 88PA
KESTVVV: У этой модели по этим настройкам доступно 256 из 512 байт SRAM.

я бы сказал, что слово этой имеет двойственность смысла относительно целевого МК.

Ну да ладно


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post

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

 


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


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