реклама на сайте
подробности

 
 
> Keil LPC1769 нехватка RAM(?), Данные после сборки проекта вмещаются в RAM но не всё так просто.
Sv9t
сообщение Oct 31 2012, 04:13
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 18-07-12
Пользователь №: 72 794



Доброго времени суток.
Прошу прощения, если вопрос глупый, однако спросить больше негде.

Есть программа, которая должна быть запущенна через RTX Keil на LPC1769. Проект собирается, по выводу линковщика всё выглядит так, будто должно ещё оставаться свободное место и в ПЗУ и в ОЗУ, однако при работе в симуляторе проект циклится ещё где-то при инициализации RTOS. Если же в одной из областей памяти при сборке проекта прописать размер не 0x8000, а 0xA000, то всё работает нормально.
Вопрос такой, это в проекте косяк или действительно не хватает ОЗУ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jcxz
сообщение Oct 31 2012, 04:39
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Однозначно - в проекте. Если не хватает памяти, проект не должен собираться.
Go to the top of the page
 
+Quote Post
Sv9t
сообщение Oct 31 2012, 05:11
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 18-07-12
Пользователь №: 72 794



Цитата(jcxz @ Oct 31 2012, 11:39) *
Однозначно - в проекте. Если не хватает памяти, проект не должен собираться.


Хорошо, наверное так. Но тогда почему добавленные 8кб исправляют ситуацию? Как разобраться в чём ошибка? В отладчике проект зацикливается ещё до выполнения функции SystemCoreClockUpdate в файле system_LPC17xx.c, после того, как уже вышел из SystemInit. При этом от размера указанной при сборке доступной RAM меняется место, где проект зацикливается, но он всё равно собирается и запускается в отладчике.

Если надо, приложу часть кода из дизассемблера.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 31 2012, 12:50
Сообщение #4


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Sv9t @ Oct 31 2012, 07:11) *
после того, как уже вышел из SystemInit.


Где в RTX такая функция "SystemInit"?
Есть только os_sys_init , и из нее не выходят.

Go to the top of the page
 
+Quote Post
Sv9t
сообщение Nov 1 2012, 02:01
Сообщение #5





Группа: Новичок
Сообщений: 3
Регистрация: 18-07-12
Пользователь №: 72 794



Цитата(AlexandrY @ Oct 31 2012, 19:50) *
Где в RTX такая функция "SystemInit"?
Есть только os_sys_init , и из нее не выходят.


В файле system_LPC17xx.c строка 507. В ней как раз и происходит ожидание захвата PLL, как писал Dron_Gus.

Проблема в том, что из вывода дизассемблера не понятно какой части когда программы это дело соответствует, и как это исправлять. Где-то читал, что стек начинается с конца ОЗУ и растёт вниз. Может быть такое, что стек и данные в ОЗУ пересекаются? Это бы объяснило, почему увеличение размера ОЗУ помогает. Если да, то как проверить и исправить?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 1 2012, 14:10
Сообщение #6


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Sv9t @ Nov 1 2012, 04:01) *
В файле system_LPC17xx.c строка 507. В ней как раз и происходит ожидание захвата PLL, как писал Dron_Gus.

Проблема в том, что из вывода дизассемблера не понятно какой части когда программы это дело соответствует, и как это исправлять. Где-то читал, что стек начинается с конца ОЗУ и растёт вниз. Может быть такое, что стек и данные в ОЗУ пересекаются? Это бы объяснило, почему увеличение размера ОЗУ помогает. Если да, то как проверить и исправить?


В Keil-е по умолчанию стек растет вверх, а системный heap вниз. При плохом раскладе они наезжают друг на друга.
Как точно используется системный heap скрыто в библиотеках компилятора ARM.
Обычно самые не очевидные и тяжелые проблемы бывают с ним. Поэтому рекомендую исследовать его пространство на предмет засорения, а сперва увеличить его.
Системный стек тоже возможно требует увеличения.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 23:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01899 секунд с 7
ELECTRONIX ©2004-2016