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

 
 
> STM32F103RET6 уходит в HardFault_Handler
011119xx
сообщение Feb 21 2011, 05:18
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



Работаю в Keil 4. Пытаюсь инициализировать FAT следующей функцией:

Код
void MountDrive(void)
{
    uint32_t    TotSectors;
    uint32_t    DataSectors;
    uint32_t    FirstSector;
    struct    partrecord *pr;
    struct    bpb710 *bpb;
    int i;

    SectorBuffer = (uint32_t*) malloc(512);

    if (SectorBuffer == NULL)
    {
        return;
    }

    readsector(0, (uint8_t *)SectorBuffer);

            то что ниже не привожу, так как проблема возникает выше
}


SectorBuffer объявлено выше как:
Код
uint32_t    *SectorBuffer;


При этом при попытке прочитать сектор программа уходит в HardFault_Handler в файле stm32f10x_it.c и там зависает.

Если поменять код на такой:

Код
void MountDrive(void)
{
    uint32_t TotSectors;
    uint32_t DataSectors;
    uint32_t FirstSector;
    struct partrecord *pr;
    struct bpb710 *bpb;
    int i;
    uint8_t buffer[512];

    SectorBuffer = (uint32_t *)buffer;                            

    if (SectorBuffer == NULL)
    {
        return;
    }
      
    readsector(0, (uint8_t *)SectorBuffer);                        
}


то сектор читается и перехода в HardFault_Handler не происходит. Вопрос: почему не работает первый вариант кода? Что там не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
011119xx
сообщение Feb 22 2011, 08:24
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



А может память выделяется не из кучи, а из стека?
Go to the top of the page
 
+Quote Post
zhevak
сообщение Feb 22 2011, 08:44
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(011119xx @ Feb 22 2011, 13:24) *
А может память выделяется не из кучи, а из стека?

А разве такое возможно для malloc()? Это же нонсэнс!


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 22 2011, 09:02
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(zhevak @ Feb 22 2011, 10:44) *
А разве такое возможно для malloc()? Это же нонсэнс!

Скорее всего, для инициализации того, что выделено из кучи, используется стек.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 011119xx   STM32F103RET6 уходит в HardFault_Handler   Feb 21 2011, 05:18
- - zhevak   Могу ошибиться. Рассматривайте это как вариант пои...   Feb 21 2011, 06:08
- - 011119xx   SectorBuffer указывает на область ОЗУ по адресу 0x...   Feb 21 2011, 06:25
|- - Dron_Gus   Цитата(011119xx @ Feb 21 2011, 09:25) ......   Feb 21 2011, 08:30
- - 011119xx   Да.   Feb 21 2011, 09:15
- - sonycman   А куча и стек имеют достаточный размер? Вообще пр...   Feb 21 2011, 09:54
|- - 011119xx   Цитата(sonycman @ Feb 21 2011, 14:54) А к...   Feb 21 2011, 10:08
|- - sonycman   Цитата(011119xx @ Feb 21 2011, 13:08) Вот...   Feb 21 2011, 16:22
- - ViKo   А stdlib.h включен в исходный файл?   Feb 21 2011, 18:08
- - 011119xx   Да. Дело было в стеке. У меня стоял размер 512 бай...   Feb 22 2011, 03:42
|- - sonycman   Цитата(011119xx @ Feb 22 2011, 06:42) Да....   Feb 22 2011, 06:59
- - zhevak   Цитата(011119xx @ Feb 22 2011, 08:42) Да....   Feb 22 2011, 07:27
|- - aaarrr   Цитата(zhevak @ Feb 22 2011, 10:27) А сей...   Feb 22 2011, 13:31
|- - zhevak   Цитата(ViKo @ Feb 22 2011, 14:02) Скорее ...   Feb 22 2011, 09:26
|- - ViKo   Цитата(zhevak @ Feb 22 2011, 11:26) Вообщ...   Feb 22 2011, 09:51
|- - zhevak   Цитата(ViKo @ Feb 22 2011, 14:51) У меня ...   Feb 22 2011, 12:57
|- - ViKo   Цитата(zhevak @ Feb 22 2011, 14:57) Ну да...   Feb 22 2011, 13:12
|- - sonycman   Цитата(ViKo @ Feb 22 2011, 16:12) Вопрос,...   Feb 22 2011, 16:41
- - zhevak   Цитата(ViKo @ Feb 22 2011, 18:12) Я тольк...   Feb 22 2011, 18:17
- - ViKo   Цитата(zhevak @ Feb 22 2011, 20:17) Невер...   Feb 22 2011, 18:46


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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:55
Рейтинг@Mail.ru


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