|
Hard Fault при выполнении malloc, но если выполняю пошагово - все ок |
|
|
|
Dec 16 2013, 21:34
|
Местный
  
Группа: Свой
Сообщений: 454
Регистрация: 13-10-10
Из: Киев
Пользователь №: 60 135

|
Здравствуйте! Есть функция, которой передаётся указатель на указатель на структуру (**pIndZwithZ). В самой функции указателю на структуру присваивается выделяемое malloc'ом пространство для некоторого количества таких структур. В итоге мне нужно чтоб функция с помощью указателя возвращала массив структур, их количество рассчитывается в самой функции. Так вот, в функции есть код: Код *pIndZwithZ = malloc(CalData_str.nZ * (sizeof(float) + sizeof(uint8_t))); Если я ставлю breackpoint на следующую за ним строку, то при её выполнении происходит Hard Fault, причиной которого, как я понял, является "data bus error". Это видно из того, что SCB.CFSR становится равным 0x400. А если я точку останова ставлю на этом злополучной malloc'е, и далее выполняю пошагово, то никаких проблем не возникает. Heap'a точно хватает, пробовал увеличить - не помогло. Посоветуйте, как можно пытаться бороться с проблемой? P.S. LPC1758, Keil.
|
|
|
|
|
 |
Ответов
|
Dec 18 2013, 19:24
|
Местный
  
Группа: Свой
Сообщений: 454
Регистрация: 13-10-10
Из: Киев
Пользователь №: 60 135

|
Я уже немного переделал СИ-шные файлы, и глюки перестали наблюдаться. А скаттр файл по-идее же сейчас не используется, т.к. на вкладке "Linker" окна "Options for target" я поставил галочку "Use Memory layout from Target Dialog". А вот тут, на вкладке Target я же нормально задал параметры памяти? Тут я хотел сделать, чтоб для программы использовалась ROM по с адресами 0x0...0x240 и 0xB000...0x80000. И заодно ещё парочку вопросов. Подскажите, пожалуйста, что значат галочки "default" в этом окне? И галочка "Startup" - она говорит где размещать начальный код, который генерируется из файлы startup.s? P.S. Просьба за мои ошибки сильно не пинать, с армами и кейлом только начинаю разбираться.
|
|
|
|
|
Dec 18 2013, 20:37
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(kt368 @ Dec 18 2013, 23:24)  Я уже немного переделал СИ-шные файлы, и глюки перестали наблюдаться. А скаттр файл по-идее же сейчас не используется, т.к. на вкладке "Linker" окна "Options for target" я поставил галочку "Use Memory layout from Target Dialog". А вот тут, на вкладке Target я же нормально задал параметры памяти? Тут я хотел сделать, чтоб для программы использовалась ROM по с адресами 0x0...0x240 и 0xB000...0x80000. И заодно ещё парочку вопросов. Подскажите, пожалуйста, что значат галочки "default" в этом окне? И галочка "Startup" - она говорит где размещать начальный код, который генерируется из файлы startup.s? P.S. Просьба за мои ошибки сильно не пинать, с армами и кейлом только начинаю разбираться. давно уже не пользуюсь этим окном (в плане где и что размещать), свои скаттеры пишу сам в документации на линкер все подробно разжевано, как там и из чего строится на всякий случай приложу пару документов
DUI0056.pdf ( 1.1 мегабайт )
Кол-во скачиваний: 424
DUI0151.pdf ( 726.54 килобайт )
Кол-во скачиваний: 750вообще-то вся документация на сайте ARM так и ждет прочтения, более свежая
|
|
|
|
Сообщений в этой теме
kt368 Hard Fault при выполнении malloc Dec 16 2013, 21:34 A. Fig Lee Цитата(kt368 @ Dec 16 2013, 16:34) Здравс... Dec 16 2013, 23:57 andrewlekar Возможно дело в невыровненном доступе к памяти. По... Dec 17 2013, 04:49 kt368 А как проверить хватает ли стека?
Вот, что вижу в ... Dec 17 2013, 06:03 Сергей Борщ Цитата(kt368 @ Dec 17 2013, 08:03) Как уз... Dec 17 2013, 06:42 kt368 Я считал что аппаратный стек - это способность мик... Dec 17 2013, 08:36 Сергей Борщ Цитата(kt368 @ Dec 17 2013, 10:36) Наприм... Dec 17 2013, 10:31 A. Fig Lee Цитата(kt368 @ Dec 17 2013, 03:36) Я счит... Dec 17 2013, 12:37 kt368 Цитата(Сергей Борщ @ Dec 17 2013, 12:31) ... Dec 17 2013, 18:45 A. Fig Lee Цитата(kt368 @ Dec 17 2013, 13:45) Подска... Dec 17 2013, 19:30 Сергей Борщ Цитата(kt368 @ Dec 17 2013, 20:45) Эта ко... Dec 17 2013, 21:58 kt368 Цитата(A. Fig Lee @ Dec 17 2013, 21:30) А... Dec 17 2013, 21:22 A. Fig Lee Цитата(kt368 @ Dec 17 2013, 16:22) Да вро... Dec 17 2013, 21:52 kt368 Да, это были hex файлы. Для создания bin воспользо... Dec 18 2013, 11:03 A. Fig Lee Странное, непонятное мне распределение IRAM на кар... Dec 18 2013, 13:54 kt368 Почему ж странное, вот скрин юзер мануала, у меня ... Dec 18 2013, 14:07 toweroff По-любому в 0 записывать нельзя, если не было рема... Dec 18 2013, 14:24 kt368 Цитата(toweroff @ Dec 18 2013, 16:24) По-... Dec 18 2013, 14:25 A. Fig Lee Цитата(kt368 @ Dec 18 2013, 09:25) Это по... Dec 18 2013, 15:06 toweroff Цитата(kt368 @ Dec 18 2013, 18:25) Это по... Dec 18 2013, 15:08 Сергей Борщ Цитата(kt368 @ Dec 18 2013, 21:24) Подска... Dec 19 2013, 08:41 kt368 С размещением в памяти уже вроде-бы разобрался (ис... Dec 19 2013, 11:11
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|