Easyelectronics.ru

Электроника для всех
Текущее время: 15 окт 2018, 18:49

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



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

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

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

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

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

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


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

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


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

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

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


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

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


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

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

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


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

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


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

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


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


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

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


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

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


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

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


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

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

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