|
|
  |
Ограничитель используемой SRAM, С чем именно связанно это ограничение? |
|
|
|
Apr 15 2014, 13:08
|
Участник

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

|
Здравствуйте. Столкнулся с ситуацией - не хватает SRAM доступной для использования программой. Микроконтроллер ATMEGA 48PA. В AVR Studio имеется файлик m48PAdef.inc в котором имеется ограничение используемой программой памяти.
#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100
Вопрос такой - с чем именно связанно это ограничение?
|
|
|
|
|
Apr 15 2014, 13:23
|

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

|
Цитата(KESTVVV @ Apr 15 2014, 17:08)  Вопрос такой - с чем именно связанно это ограничение? Дык, регистры периферии и прочее по ссылке смотреть Figure 8-3. Data memory map
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|
|
|
|
|
Apr 15 2014, 13:25
|

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

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

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

|
То что они используются под периферию - я прекрасно знаю. Но имеются блоки памяти помеченные как зарезервированные. Вопрос в том - можно ли использовать адреса помеченные как зарезервированные? Цитата(RabidRabbit @ Apr 15 2014, 15:25)  Не хватает ОЗУ - берите контроллер "потолще", например, 88PA, там её в два раза больше. А это адрес, с которого ОЗУ начинается, ничего более. RTFD, короче говоря  У этой модели по этим настройкам доступно 256 из 512 байт SRAM.
|
|
|
|
|
Apr 15 2014, 13:37
|

Профессионал
    
Группа: Свой
Сообщений: 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 штук).
|
|
|
|
|
Apr 15 2014, 13:41
|
Участник

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

|
Я пишу на на ассемблере. Я конечно понимаю , что это выход за "рекомендуемые" значения. Имеются два крупных блока 008С-00AF , 00C7-00FF - информация из даташита - сводная таблица регистров.
|
|
|
|
|
Apr 15 2014, 14:09
|
Участник

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

|
Цитата(RabidRabbit @ Apr 15 2014, 15:47)  Написание программы на ассемблере не избавляет от необходимости внимательно читать даташит. Причём весь, не кусками. А на Ваш вопрос исчерпывающе отвечает пункт 8.3 SRAM Data Memory. И где в этом пункте указана причина запрета обращения к этой области? То что атмел пытается себя обезопасить от проблем связанных с эволюцией контроллеров - это понятно. Если модель контроллера не меняется , то есть возможность использования этой области. Так?
|
|
|
|
|
Apr 15 2014, 14:15
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
Apr 15 2014, 14:25
|
Участник

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

|
Цитата(Сергей Борщ @ Apr 15 2014, 16:15)  Возможность есть, памяти там нет. А даже если сегодня вы ее там случайно найдете - не факт, что она там будет в таком же контроллере из другой упаковки.
Ой. Память начинается от 0x100 и заканчивается на 0x2FF. 512 байт. Где вы потеряли половину? Спасибо.... Я ошибочно предполагал , что память заканчивается на 0x01FF . Тему можно закрывать.
|
|
|
|
|
Apr 15 2014, 14:25
|

Профессионал
    
Группа: Свой
Сообщений: 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 штук).
|
|
|
|
|
Apr 15 2014, 14:37
|

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

|
Цитата(Сергей Борщ @ Apr 15 2014, 18:33)  Не, я зрение на прошлой неделе проверял - единица. В первом сообщении речь идет о меге-48. RabidRabbit: берите контроллер "потолще", например, 88PA KESTVVV: У этой модели по этим настройкам доступно 256 из 512 байт SRAM. я бы сказал, что слово этой имеет двойственность смысла относительно целевого МК. Ну да ладно
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|