Easyelectronics.ru

Электроника для всех
Текущее время: 21 июл 2018, 20:45

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



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

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

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

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

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

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


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

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


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

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

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


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

Зарегистрирован: 01 авг 2016, 10:47
Сообщения: 222
Откуда: Таганрог
в принципе, вопрос решается следующей модификацией:
__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
Сообщения: 22
Откуда: Украина
А куча операционки не в HEAP разве размещается?
....в моем примере при изменении ram на ram1 по идее все кроме кучи ложится в ram, а куча в ram1.


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

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

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


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

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


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

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


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


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

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


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

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


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

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


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

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

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