axa09 0 17 марта, 2009 Опубликовано 17 марта, 2009 · Жалоба требуется объявить "неприкасаемый" регион памяти - тоесть чтоб линковщик не размещал там никаких функций/данных/стеков для собственных нужд... напишите плиз фрагмент объявления такого сегмента(секции) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 17 марта, 2009 Опубликовано 17 марта, 2009 · Жалоба Если хотите использовать какой-либо регион в своих целях, то просто опишите эти цели линкеру, ничего лишнего он туда не положит. А если хотите совсем неприкасаемый регион, то линкеру можно просто не говорить о его существовании :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
richie 0 17 марта, 2009 Опубликовано 17 марта, 2009 · Жалоба :) Объяви массив нужной тебе длины и скажи линковщику куда его положить. Обещаю, больше линковщик с ним ничего делать не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axa09 0 18 марта, 2009 Опубликовано 18 марта, 2009 · Жалоба Объяви массив нужной тебе длины и скажи линковщику куда его положить. у меня Keil uv 3.3 там директива __at не работает: char P[0x1000] __at 0x00201000 - выдаёт ошибку! языком скрипта реалвьюшного линкера не владею, посему прошу участников написать фрагмент sct-файла, чтоб зарезервировать к примеру адреса : 0x00201000...0x002010FF для арм7 прошу дописать Sct-файл: ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x00100000 0x00010000 { ; load region ER_IROM1 0x00100000 { ; load address = execution address *.o (RESET, +First) * (+RO) } RW_IRAM1 0x00200000 0x00004000 { ; RW data * (+RW +ZI) } } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 18 марта, 2009 Опубликовано 18 марта, 2009 · Жалоба языком скрипта реалвьюшного линкера не владею, посему прошу участников написать фрагмент sct-файла, чтоб зарезервировать к примеру адреса : 0x00201000...0x002010FF Вот так просто выгрызать 256 посередине региона не лучшая идея - замучаетесь потом секции распихивать, и уж без владения линкерным скриптом никак. А выделить кусок в начале или в конце памяти можно достаточно спокойно - нужно лишь исправить адрес и длину execution region'а RW_IRAM1. И инициализацию стека еще проверить, чтобы не было пересечений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 18 марта, 2009 Опубликовано 18 марта, 2009 · Жалоба Вот так просто выгрызать 256 посередине региона не лучшая идея - замучаетесь потом секции распихивать, и уж без владения линкерным скриптом никак. Вот и у меня возникала потребность сделать "дыру" в памяти. Помнится, линкер от IAR делал это без проблем: сам раскидывал секции по обе стороны "дыры". А вот у RealView такой фичи не вижу, только ручная сортировка секций. Или я плохо искал? Просьба знающим людям прокомментировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 18 марта, 2009 Опубликовано 18 марта, 2009 · Жалоба Нет, такой фичи нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tsibulnick 0 10 октября, 2009 Опубликовано 10 октября, 2009 · Жалоба В Keil это сделать просто. Заходим в опции проекта, выбираем вкладку Target и корректируем поля в Read/Only Memory Areas. Таким образом сообщаем Линковщику где можно использовать FLASH и по каким адресам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться