Easyelectronics.ru

Электроника для всех
Текущее время: 23 фев 2019, 08:15

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Segger Embedded Studio
СообщениеДобавлено: 07 июн 2018, 16:11 
Старожил
Аватара пользователя

Зарегистрирован: 01 авг 2016, 10:47
Сообщения: 273
Откуда: Таганрог
Доброго дня!

Решил перенести проект из Keil в SES и столкнулся с одним моментом, а именно:
используемый контроллер STM32L471RG имеет две области RAM объемами 32 и 96 кБ. Keil использовал их обе при комлияции проекта и проблем не возникало.
однако, SES пока что пытается уложить все в один регион и естественно безуспешно. Ибо из-за наличия операционки большого числа буферов, расход ОЗУ на уровне 100 кБ.

Собственно вопрос: как убедить SES использовать все доступную память?
или альтернативы: как разместить кучу операционки в отдельном регионе памяти?

с линкер файлами до этого момента дел по части ручной кофигурации не имел ....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio
СообщениеДобавлено: 07 июн 2018, 16:42 
Заглядывает иногда

Зарегистрирован: 25 сен 2017, 10:57
Сообщения: 133
Откуда: Украина
Можно попробовать изменить в линкере регион "ram" на "ram1"
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio
СообщениеДобавлено: 07 июн 2018, 16:59 
Старожил
Аватара пользователя

Зарегистрирован: 01 авг 2016, 10:47
Сообщения: 273
Откуда: Таганрог
а что это даст?

фактически хочется одного из двух:
1) или закинуть кучу FreeRTOSа в отдельный регион памяти через static __attribute__((section(".RAM2")));
2) или чтобы линкер автоматически распределял данные по двум регионам


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio
СообщениеДобавлено: 07 июн 2018, 17:07 
Старожил
Аватара пользователя

Зарегистрирован: 01 авг 2016, 10:47
Сообщения: 273
Откуда: Таганрог
в принципе, вопрос решается следующей модификацией:
__attribute__((section(".bss2"))) static uint8_t ucHeap[ configTOTAL_HEAP_SIZE ];

в файле heap_4.c

но правильно ли это?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio
СообщениеДобавлено: 07 июн 2018, 17:09 
Заглядывает иногда

Зарегистрирован: 25 сен 2017, 10:57
Сообщения: 133
Откуда: Украина
А куча операционки не в HEAP разве размещается?
....в моем примере при изменении ram на ram1 по идее все кроме кучи ложится в ram, а куча в ram1.


Последний раз редактировалось AlexTA 07 июн 2018, 17:24, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio
СообщениеДобавлено: 07 июн 2018, 17:11 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2116
heap_3 использует системный malloc - следовательно берёт из общей кучи


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio
СообщениеДобавлено: 08 июн 2018, 10:49 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1626
SES использует gcc. Поменяйте .ld файл на свой и добавте там втрой регион для памяти. Или возьмите готовый .ld файл из проектов на github.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio
СообщениеДобавлено: 08 июн 2018, 13:18 
Старожил
Аватара пользователя

Зарегистрирован: 01 авг 2016, 10:47
Сообщения: 273
Откуда: Таганрог
x893 писал(а):
SES использует gcc. Поменяйте .ld файл на свой и добавте там втрой регион для памяти. Или возьмите готовый .ld файл из проектов на github.


идея интересная, буду пробовать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio
СообщениеДобавлено: 09 июн 2018, 02:40 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1626
Ничего интересного. Просто взять и указать свой.
2 минуты


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

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


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

Сейчас этот форум просматривают: Google [Bot]


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

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

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