Перейти к содержанию
    

Запуск в ОЗУ, LPC1766

На камнях LPC23XX можно было запускать программу в SRAM. Загрузил в ОЗУ программу, таблицу векторов в 0х40000000, выставил MEMMAP и все...

В LPC17XX я такого не нашел. Получается , что запуск в ОЗУ невозможен или я чего-то не догоняю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На камнях LPC23XX можно было запускать программу в SRAM. Загрузил в ОЗУ программу, таблицу векторов в 0х40000000, выставил MEMMAP и все...

В LPC17XX я такого не нашел. Получается , что запуск в ОЗУ невозможен или я чего-то не догоняю?

 

я не держал в руках кортексы от NXP но то что Вы говорите по логике не может быть.

 

как минимум можно руками скопировать секцию в ОЗУ и выполнить код по указателю объявив его как функцию.

 

для выполнения кода из ОЗУ мапирование таблицы векторов не обязательно. поробуйте просто отлинковать секцию кода в область ОЗУ

 

нужно в скрипте (или еще гдето если не GCC используется) сказать чтобы секция использовала связывание адресов в области ОЗУ и складывалось в .data . это обеспечит правильную адресацию и копирование этого куска в ОЗУ в crt коде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я не держал в руках кортексы от NXP но то что Вы говорите по логике не может быть.

 

как минимум можно руками скопировать секцию в ОЗУ и выполнить код по указателю объявив его как функцию.

 

для выполнения кода из ОЗУ мапирование таблицы векторов не обязательно. поробуйте просто отлинковать секцию кода в область ОЗУ

 

нужно в скрипте (или еще гдето если не GCC используется) сказать чтобы секция использовала связывание адресов в области ОЗУ и складывалось в .data . это обеспечит правильную адресацию и копирование этого куска в ОЗУ в crt коде.

Речь идет не о куске кода о, а о полноценной программе. Например, загрузчик ПО с SD карты или демо-ролик какой-нибудь. Все это независимо от программы на flash. Поэтому таблица векторов НУЖНА. А вот делается ли ремап в LPC17XX? Пока не нашел...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с cortex-ами от nxp дела не имел, но в кортексах таблица векторов ремапится в регистрах NVIC (делал на Stm32 - работает :))

 

Vector Table Offset Register

Use the Vector Table Offset Register to determine:

• if the vector table is in RAM or code memory

• the vector table offset.

The register address, access type, and Reset state are:

Address 0xE000ED08

Access Read/write

Reset state 0x00000000

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Речь идет не о куске кода о, а о полноценной программе. Например, загрузчик ПО с SD карты или демо-ролик какой-нибудь. Все это независимо от программы на flash. Поэтому таблица векторов НУЖНА. А вот делается ли ремап в LPC17XX? Пока не нашел...

Вроде нарыл--что-то похожее.

Загрузить код и таблицу векторов в SRAM. Задать адрес новой таблицы смещением и становить область SRAM в регистре VTOR.

Перейти на начало новой таблицы.

Не понятно будет ли это работать в AHB SRAM, то есть если таблицу векторов разместить в основной памяти по 0х10000000, а код в каком-либо банке AHB SRAM...

 

Vector Table Offset Register

Table 651. VTOR bit assignments

Bits Name Function

[31:30] - Reserved.

[29:8] TBLOFF Vector table base offset field. It contains bits[29:8] of the offset of the table

base from the bottom of the memory map.

Remark: Bit[29] determines whether the vector table is in the code or

SRAM memory region:

Bit[29] is sometimes called the TBLBASE bit.

• 0 = code

• 1 = SRAM.

[7:0] - Reserved

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...