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

 
 
> Cortex M4F проблема с памятью
vanek18
сообщение Apr 14 2015, 05:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 30-01-15
Пользователь №: 84 841



Добрый день! Я работаю с процессором на ядре Cortex M4F. Среда разработки - Keil 4.23. Устройство для навигации. Проблема такая: при увеличении размера прошивки, начинаются глюки. Поясню. Отлаживаюсь я через uart. Вот как должна работать программа(вотразмер прошивки:Program Size: Code=29044 RO-data=652 RW-data=184 ZI-data=13048):
Прикрепленное изображение

Следующим шагом я раскомменчиваю вызов одной функции,размер кода увеличивается(Program Size: Code=35892 RO-data=652 RW-data=184 ZI-data=13048):
Прикрепленное изображение

Затем еще вызываю одну функцию(Program Size: Code=40528 RO-data=648 RW-data=184 ZI-data=13048):
Прикрепленное изображение.
Подскажите пожалуйста,что копать,куда смотреть.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Apr 14 2015, 10:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



А почему у вас IRAM зарезан? на 0х400?

А вы на функции поставили чтобы они из RАМ запускались? Или же все же из IROM?

ну еще хорошо бы поглядеть карту памяти, что там куда легло в итоге.
Go to the top of the page
 
+Quote Post
seniorandre
сообщение Apr 14 2015, 11:06
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 6-07-12
Из: г.Нижний Новгород
Пользователь №: 72 651



У меня такое было по молодости. Я тогда неправильный размер для переменной хранения указателя сделал, например int16 хранит адрес максимум 65535 иесли переменная уезжает из этого диапазона, то все падает. Появилось с ростом программы.
Go to the top of the page
 
+Quote Post
seniorandre
сообщение Apr 23 2015, 17:35
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 6-07-12
Из: г.Нижний Новгород
Пользователь №: 72 651



Цитата(seniorandre @ Apr 14 2015, 14:06) *
У меня такое было по молодости. Я тогда неправильный размер для переменной хранения указателя сделал, например int16 хранит адрес максимум 65535 иесли переменная уезжает из этого диапазона, то все падает. Появилось с ростом программы.

Сдается что у Вас все таки проблема по работе с указателями. Я сейчас разбирался как раз с проектом, про который я собственно и писал выше. У меня ошибка была когда я сдвигал несколько байт командой компилятора CCS вправо. Вчера глянул на ассемблерный код, который он генерил и понял почему ошибка. Оказывается он почему-то изменял только адрес младшего байта адреса, даже если надо было сдвигать данные в ячейке у которой уже надо менять и старший адрес. И соотв. если группа ячеек попадала в адреса, у которых все байты находятся в группе, у которых старший байт не меняется, то все ок, а если группа адресов смещается, то все перестает работать.
Так и у Вас просто какая-то переменная смещается и все перестает работать. И скорее всего неважно, растет прошивка или уменьшается.

Сообщение отредактировал seniorandre - Apr 23 2015, 17:37
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- vanek18   Cortex M4F проблема с памятью   Apr 14 2015, 05:28
- - Golikov A.   проверьте размер стэка, потом кучи... Я думаю дело...   Apr 14 2015, 05:34
|- - vanek18   Цитата(Golikov A. @ Apr 14 2015, 05:34) п...   Apr 14 2015, 06:29
|- - johnshadow   Цитата(vanek18 @ Apr 14 2015, 09:29) С ра...   Apr 14 2015, 06:49
- - Golikov A.   А у вас случаем нигде не настроено так что програм...   Apr 14 2015, 08:15
|- - vanek18   Цитата(Golikov A. @ Apr 14 2015, 09:15) А...   Apr 14 2015, 09:48
|- - johnshadow   Цитата(vanek18 @ Apr 14 2015, 12:48) А во...   Apr 15 2015, 08:53
|- - vanek18   Цитата(Golikov A. @ Apr 14 2015, 10:58) А...   Apr 15 2015, 04:55
- - Golikov A.   ЦитатаЯ тогда неправильный размер для переменной х...   Apr 14 2015, 11:14
|- - seniorandre   ну да в лоб сделал что подобное, потом инкремент и...   Apr 14 2015, 11:22
- - Golikov A.   0x200026b0 0x00001000 Zero RW 2 ...   Apr 15 2015, 05:00
|- - vanek18   Цитата(Golikov A. @ Apr 15 2015, 05:00) 0...   Apr 15 2015, 05:33
- - редактор   Может данные в UART идут из локального буфера, поэ...   Apr 15 2015, 06:09
|- - vanek18   Цитата(редактор @ Apr 15 2015, 06:09) Мож...   Apr 15 2015, 06:24
- - Golikov A.   на кучу нет, можно вообще без нее, А стек какой-то...   Apr 15 2015, 07:52
|- - vanek18   Цитата(Golikov A. @ Apr 15 2015, 07:52) н...   Apr 15 2015, 09:49
- - scifi   Цитата(vanek18 @ Apr 15 2015, 12:49) Итак...   Apr 15 2015, 10:15
- - Golikov A.   ЦитатаКакой ужас! Как можно так жить? К чему э...   Apr 15 2015, 10:54
|- - vanek18   Цитата(Golikov A. @ Apr 15 2015, 10:54) А...   Apr 15 2015, 11:34
- - scifi   Кстати, выстрел наугад: у меня когда стек не был в...   Apr 15 2015, 11:50
|- - johnshadow   Цитата(scifi @ Apr 15 2015, 14:50) Кстати...   Apr 15 2015, 18:48
- - Golikov A.   А стэк пишется с конца, тут ничего не изменилось?...   Apr 15 2015, 11:56
- - aaarrr   Для ARM выравнивание стека производится по границе...   Apr 15 2015, 18:56
|- - vanek18   Цитата(aaarrr @ Apr 15 2015, 18:56) Для A...   Apr 23 2015, 11:46
|- - aaarrr   Цитата(vanek18 @ Apr 23 2015, 14:46) И он...   Apr 23 2015, 11:56
|- - vanek18   Цитата(aaarrr @ Apr 23 2015, 11:56) Может...   Apr 23 2015, 12:06
|- - aaarrr   Цитата(vanek18 @ Apr 23 2015, 15:06) Он ч...   Apr 23 2015, 12:10
|- - vanek18   Цитата(aaarrr @ Apr 23 2015, 13:10) Вот т...   Apr 23 2015, 12:18
|- - aaarrr   Цитата(vanek18 @ Apr 23 2015, 15:18) Это ...   Apr 23 2015, 12:28
|- - vanek18   Цитата(aaarrr @ Apr 23 2015, 12:28) С той...   Apr 24 2015, 05:16
- - Golikov A.   ЦитатаСдается что у Вас все таки проблема по работ...   Apr 23 2015, 17:46


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

 


RSS Текстовая версия Сейчас: 5th August 2025 - 00:35
Рейтинг@Mail.ru


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