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

Расположить структуру по заданному адресу в памяти

Приветствую. 

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

#define USBH0_DRAM_START        0x40000000

USBH_HandleTypeDef hUsbHostHS;  - здесь она будет располагаться там, где удобно компилятору

Можно ли как-то задать адрес USBH0_DRAM_START , где будет располагаться данная структура,

как вот здесь задано: uint8_t*  setup_request=((uint8_t*)USBH0_DRAM_START);


 

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


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

On 7/3/2022 at 5:20 PM, mantech said:

Приветствую

#define hUsbHostHS         (*((volatile USBH_HandleTypeDef*)  0x40000000))

Может так ?

Посмотрите в зоголовочнике, описывающем регистры вашего МК как описываются всякие там таймеры и прочие SPI.

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


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

1 минуту назад, dimka76 сказал:
#define hUsbHostHS         (*((volatile USBH_HandleTypeDef*)  0x40000000))

Может так ?

Посмотрите в зоголовочнике, описывающем регистры вашего МК как описываются всякие там таймеры и прочие SPI.

Можно, конечно, но есть одно "но": размещением в памяти ведает линкер и, боюсь, что его объехать не удастся, т.к. если ему явно не объяснить через его скрипт, что по адресу 0x40000000 вы хотите разместить структуру hUsbHostHS, то он легко может поместить туда что-нибудь другое на своё усмотрение. Единственный вариант - если этот диапазон адресов будет скрыт от линкера (для гарантированной защиты от конфликтов совместного доступа) и можно применить такую конструкцию.

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


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

В 03.07.2022 в 17:47, makc сказал:

то он легко может поместить туда что-нибудь другое на своё усмотрение.

Нет, это адресное пространство для него закрыто, тут все будет норм...

 

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


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

1 минуту назад, mantech сказал:

Нет, это адресное пространство для него закрыто, тут все будет норм...

 

Тогда решение @dimka76 должно вполне вам подойти.

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


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

В 03.07.2022 в 17:45, dimka76 сказал:

Может так ?

Спасибо!  Частично работает, но где-то подглючивает все равно, скорее всего еще какие-то косяки моего портирования))

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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