|
LPCXpresso, внешняя RAM |
|
|
|
Sep 18 2015, 06:24
|
Участник

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

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

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

|
Цитата(Petka @ Sep 18 2015, 13:52)  Гуглить "скрипт линкера". Да я понимаю, что смотреть надо *.ld файлы. Но там все регионы памяти прописаны (формируются автоматически по настройкам из GUI и их редактировать нет смысла). Кажется должно было бы все работать. Да и описания синтаксиса я не нашел, поэтому не все в них понятно (здесь какой-то свой формат). И такая проблема не только с внешней памятью. Я работаю с LPC4357, у него несколько банков внутреннего ОЗУ. Есть даже два смежных банка, но по мере заполнения первого, данные не "переползают" во второй. Линковщик просто ругается, что не достаточно места в первом. На сайте указано, как код, константы, как массив переменных положить в нужный банк ОЗУ при помощи __attribute__ ((section.... Но это все не то. С LPCXpresso (Eclipse) только начал работать, более привычен Keil. В нем примерно также в GUI указывается распределение памяти и все работает прозрачно для программиста. А здесь даже не знаю куда ткнуться.
|
|
|
|
|
Sep 18 2015, 11:22
|
Участник

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

|
Цитата(scifi @ Sep 18 2015, 15:01)  ЕМНИП, гнутый линкер не умеет раскидывать по разным банкам. И RealView (который в Кейле) тоже не умеет. А Яр умеет. RealView как раз и умеет. Там все на раз-два настраивается прямо через GUI Keil. А если GNU не умеет, то как тогда вообще работать с банками? Мне нужно немного встроенной памяти, что-бы, как минимум, проинициализировать внешнее большое ОЗУ и уйти туда работать. Если не умеет автоматом раскидывать, то как это сделать вручную?
Сообщение отредактировал _Mikhail_ - Sep 18 2015, 11:26
|
|
|
|
|
Sep 18 2015, 11:27
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(_Mikhail_ @ Sep 18 2015, 14:22)  Если не умеет автоматом раскидывать, то как это сделать вручную? В исходнике приписывать переменные к отдельной секции, а потом размещать её в памяти как захочется. Цитата(_Mikhail_ @ Sep 18 2015, 14:22)  Тут еще момент, о котором я писал. Скрипты для линкера формируются автоматически данной средой (LPCXpresso) и править их в тексте смысла нет. Поэтому, даже если и знать, как выправить скрипт вручную, мне не понятно как это подсунуть IDE. Мне такие проблемы непонятны. Я всегда делаю сборку через Makefile, ну и скрипт линкера подсовываю сам, естественно.
|
|
|
|
Сообщений в этой теме
_Mikhail_ LPCXpresso Sep 18 2015, 06:24  zltigo QUOTE (_Mikhail_ @ Sep 18 2015, 13:27) фо... Sep 18 2015, 11:28   _Mikhail_ Цитата(zltigo @ Sep 18 2015, 15:28) Дело ... Sep 18 2015, 12:03    scifi Цитата(_Mikhail_ @ Sep 18 2015, 15:03) Эт... Sep 18 2015, 12:15    zltigo QUOTE (_Mikhail_ @ Sep 18 2015, 15:03) Эт... Sep 18 2015, 12:28     _Mikhail_ Цитата(zltigo @ Sep 18 2015, 16:28) Должн... Sep 18 2015, 13:35      Petka Цитата(_Mikhail_ @ Sep 18 2015, 16:35) К ... Sep 18 2015, 15:45       _Mikhail_ Цитата(Petka @ Sep 18 2015, 19:45) Как бы... Sep 23 2015, 06:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|