Easyelectronics.ru

Электроника для всех
Текущее время: 27 ноя 2020, 11:27

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: GCC, размещение переменных по абсолютным адресам
СообщениеДобавлено: 26 авг 2020, 13:34 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 781
Посмотрите на картинку и, пожалуйста, покажите как разместить массив размером в 64К байт по адресам секторов 2 и3? Естественно, что остальные секторы заполнены кодом. Файлов много, поэтому вариант с ручным раскладыванием не проходит.


Вложения:
Screenshot_246.jpg
Screenshot_246.jpg [ 62.08 Кб | Просмотров: 286 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, размещение переменных по абсолютным адресам
СообщениеДобавлено: 26 авг 2020, 13:41 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2617
Обсуждалось уже.
Используя скрипт линкера (ld файл).
http://forum.easyelectronics.ru/viewtopic.php?f=35&t=36779&hilit=%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D1%82%D1%8C+%D0%B0%D0%BE+%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83+%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D1%83


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, размещение переменных по абсолютным адресам
СообщениеДобавлено: 26 авг 2020, 14:12 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 549
Откуда: Киев
Сделать секцию с дыркой в 64к не выйдет наверное, можно флеш разбить на 3 секции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, размещение переменных по абсолютным адресам
СообщениеДобавлено: 26 авг 2020, 14:33 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 781
Не сработало.

Код:
section .PLC_ROM LMA [0000000008010000,000000000801ffff] overlaps section .text LMA [00000000080001d0,000000000801d757]

Код:
/* Memories definition */
MEMORY
{
    RAM             (xrw)   : ORIGIN = 0x20000000, LENGTH = 320K
    FLASH           (rx)    : ORIGIN = 0x08000000, LENGTH = 1024K
    PLC_ROM_FLASH   (rx)    : ORIGIN = 0x08010000, LENGTH = 64K
}

/* Sections */
SECTIONS
{
    ...

    /* ПЗУ для ПЛК*/
    .PLC_ROM :
    {
        . = ALIGN(4);
        _PLC_ROM_ADDR = .;
        KEEP(*(.PLC_ROM))
        . = ALIGN(4);
    } >PLC_ROM_FLASH
     
    ...
}



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, размещение переменных по абсолютным адресам
СообщениеДобавлено: 26 авг 2020, 14:34 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 781
Цитата:
Сделать секцию с дыркой в 64к

Как указать начало и размер "дырки"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, размещение переменных по абсолютным адресам
СообщениеДобавлено: 26 авг 2020, 15:55 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2617
tonyk писал(а):
Цитата:
Сделать секцию с дыркой в 64к

Как указать начало и размер "дырки"?

По ссылке все описано яснее некуда...

STATE (rx) : ORIGIN = 0x807F800, LENGTH = 2K

Что тут не понятно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, размещение переменных по абсолютным адресам
СообщениеДобавлено: 26 авг 2020, 16:14 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 781
Код:
section .PLC_ROM LMA [0000000008010000,000000000801ffff] overlaps section .text LMA [00000000080001d0,000000000801d757]


Мне понятно, а линкёру- нет. Ошибку выдаёт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, размещение переменных по абсолютным адресам
СообщениеДобавлено: 26 авг 2020, 16:21 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2617
tonyk писал(а):
Код:
section .PLC_ROM LMA [0000000008010000,000000000801ffff] overlaps section .text LMA [00000000080001d0,000000000801d757]


Мне понятно, а линкёру- нет. Ошибку выдаёт.


Надо выделять в конце флеша, а секцию FLASH "укоротить" соответственно на 64 К.
Я так понимаю.
А Вы просто прибавили ещё 64К, вот и ругается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, размещение переменных по абсолютным адресам
СообщениеДобавлено: 26 авг 2020, 18:51 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 781
Цитата:
Надо выделять в конце флеша, а секцию FLASH "укоротить" соответственно на 64 К.

В конце- это не вариант. В начале флэш размер страницы по 32К, а в конце- по 256К. Я для этого-то картинку и приложил.
Видимо, придётся пожертвовать 32К из сектора 0. Разместить свой массив, а код уже за ним. Других решений я не нашёл.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB