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

 
 
> LPCXpresso, внешняя RAM
_Mikhail_
сообщение Sep 18 2015, 06:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 19-04-11
Пользователь №: 64 477



Может кто подскажет, как сказать линковщику, что есть внешняя RAM?
Использую LPCXpresso 7.9.0.
В настройках проекта (MCU setting) добавил соответствующую секцию, но не помогает.
При линковке сообщение, что не хватает внутреннего ОЗУ... Во внешнее линковать и не пытается.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Petka
сообщение Sep 18 2015, 09:52
Сообщение #2


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(_Mikhail_ @ Sep 18 2015, 09:24) *
Может кто подскажет, как сказать линковщику, что есть внешняя RAM?
Использую LPCXpresso 7.9.0.
В настройках проекта (MCU setting) добавил соответствующую секцию, но не помогает.
При линковке сообщение, что не хватает внутреннего ОЗУ... Во внешнее линковать и не пытается.

Гуглить "скрипт линкера".
Go to the top of the page
 
+Quote Post
_Mikhail_
сообщение Sep 18 2015, 10:27
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 19-04-11
Пользователь №: 64 477



Цитата(Petka @ Sep 18 2015, 13:52) *
Гуглить "скрипт линкера".


Да я понимаю, что смотреть надо *.ld файлы. Но там все регионы памяти прописаны (формируются автоматически по настройкам из GUI и их редактировать нет смысла). Кажется должно было бы все работать. Да и описания синтаксиса я не нашел, поэтому не все в них понятно (здесь какой-то свой формат).
И такая проблема не только с внешней памятью. Я работаю с LPC4357, у него несколько банков внутреннего ОЗУ. Есть даже два смежных банка, но по мере заполнения первого, данные не "переползают" во второй. Линковщик просто ругается, что не достаточно места в первом.
На сайте указано, как код, константы, как массив переменных положить в нужный банк ОЗУ при помощи __attribute__ ((section.... Но это все не то.
С LPCXpresso (Eclipse) только начал работать, более привычен Keil. В нем примерно также в GUI указывается распределение памяти и все работает прозрачно для программиста.
А здесь даже не знаю куда ткнуться.
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 18 2015, 11:01
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(_Mikhail_ @ Sep 18 2015, 13:27) *
Есть даже два смежных банка, но по мере заполнения первого, данные не "переползают" во второй. Линковщик просто ругается, что не достаточно места в первом.

ЕМНИП, гнутый линкер не умеет раскидывать по разным банкам. И RealView (который в Кейле) тоже не умеет. А Яр умеет.
Go to the top of the page
 
+Quote Post
_Mikhail_
сообщение Sep 18 2015, 11:22
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 19-04-11
Пользователь №: 64 477



Цитата(scifi @ Sep 18 2015, 15:01) *
ЕМНИП, гнутый линкер не умеет раскидывать по разным банкам. И RealView (который в Кейле) тоже не умеет. А Яр умеет.


RealView как раз и умеет. Там все на раз-два настраивается прямо через GUI Keil.

А если GNU не умеет, то как тогда вообще работать с банками? Мне нужно немного встроенной памяти, что-бы, как минимум, проинициализировать внешнее большое ОЗУ и уйти туда работать.
Если не умеет автоматом раскидывать, то как это сделать вручную?


Сообщение отредактировал _Mikhail_ - Sep 18 2015, 11:26
Go to the top of the page
 
+Quote Post



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

 


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


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