|
Cortex M4F проблема с памятью |
|
|
|
Apr 14 2015, 05:28
|
Участник

Группа: Участник
Сообщений: 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):  . Подскажите пожалуйста,что копать,куда смотреть.
|
|
|
|
|
 |
Ответов
|
Apr 14 2015, 11:06
|
Участник

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

|
У меня такое было по молодости. Я тогда неправильный размер для переменной хранения указателя сделал, например int16 хранит адрес максимум 65535 иесли переменная уезжает из этого диапазона, то все падает. Появилось с ростом программы.
|
|
|
|
|
Apr 23 2015, 17:35
|
Участник

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

|
Цитата(seniorandre @ Apr 14 2015, 14:06)  У меня такое было по молодости. Я тогда неправильный размер для переменной хранения указателя сделал, например int16 хранит адрес максимум 65535 иесли переменная уезжает из этого диапазона, то все падает. Появилось с ростом программы. Сдается что у Вас все таки проблема по работе с указателями. Я сейчас разбирался как раз с проектом, про который я собственно и писал выше. У меня ошибка была когда я сдвигал несколько байт командой компилятора CCS вправо. Вчера глянул на ассемблерный код, который он генерил и понял почему ошибка. Оказывается он почему-то изменял только адрес младшего байта адреса, даже если надо было сдвигать данные в ячейке у которой уже надо менять и старший адрес. И соотв. если группа ячеек попадала в адреса, у которых все байты находятся в группе, у которых старший байт не меняется, то все ок, а если группа адресов смещается, то все перестает работать. Так и у Вас просто какая-то переменная смещается и все перестает работать. И скорее всего неважно, растет прошивка или уменьшается.
Сообщение отредактировал seniorandre - Apr 23 2015, 17:37
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|