Перейти к содержанию
    

Невыровненный адрес в компиляторе Cube

очень забавная ситуация, есть 2 проекта для двух процов: 432 и 496

студия одна и таже, есть функция записи в spi которая выглядит в 496 так:

u8 spi1_write_read(u8 w)
{
    u8 read, write = w;
    HAL_SPI_TransmitReceive(&hspi1, (u8 *) & write, (u8 *) &read, 1, 100);
    return read;
}

в 496 работает, в 432 вылетает в хардфолт

если исправляю так: то все работает

u8 spi1_write_read(u8 w)
{
    u32 read, write = w;
    HAL_SPI_TransmitReceive(&hspi1, (u8 *) & write, (u8 *) &read, 1, 100);
    return read;
}

почему такое странное поведение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

HAL_SPI_TransmitReceive() - блокирующая функция? Если да, то я не уверен, что Вы там ищете проблему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

51 minutes ago, inventor said:

очень забавная ситуация, есть 2 проекта для двух процов: 432 и 496

студия одна и таже, есть функция записи в spi которая выглядит в 496 так:


u8 spi1_write_read(u8 w)
{
    u8 read, write = w;
    HAL_SPI_TransmitReceive(&hspi1, (u8 *) & write, (u8 *) &read, 1, 100);
    return read;
}

в 496 работает, в 432 вылетает в хардфолт

если исправляю так: то все работает


u8 spi1_write_read(u8 w)
{
    u32 read, write = w;
    HAL_SPI_TransmitReceive(&hspi1, (u8 *) & write, (u8 *) &read, 1, 100);
    return read;
}

почему такое странное поведение?

Потому что нужно отладчиком посмотреть на какой конкретно команде происходит HardFault

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, inventor сказал:

почему такое странное поведение?

Видимо потому, что иногда пинание колёс всё-таки помогает поехать. :sarcastic:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 hours ago, inventor said:

в 496 работает, в 432 вылетает в хардфолт

Рискну предложить изучить причину этого "хардфолта". Тем более, что всё необходимое для этого есть в интернетах или в книге Джозефа Ю.

З.Ы. Очень странно, когда люди говорят о "хардфолте", как о некой конечной точке проблемы. Учитывая, что компания ARM специально ввела это исключение в своём ядре для помощи в отладке проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, haker_fox сказал:

Очень странно, когда люди говорят о "хардфолте", как о некой конечной точке проблемы...

"Вы не понимаете, это другое..."(с):prankster2:

Меня же больше раздражает необходимость чуть ли не в каждом топике гадать по каким-то формальным признакам, о каком же МК идет речь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, Arlleex said:

о каком же МК идет речь.

Я делаю так: если это ARM, то с высокой вероятностью Cortex-M3/M4. Сейчас уже и  M7. Но даже и если M0, то HF  у него есть, правда куцый. Это про ошибку. Про выравнивание и т.д. и т.п. - согласен, тут советов надавать трудно)

З.Ы. Кстати, меня ещё злит, когда говорят контроллер, вместо микроконтроллер. Или процессор, вместо микроконтроллер. А ведь это разные термины, обозначающие совершенно чуждые друг другу вещи) Так и хочется спросить, какой чипсет используется вместе с "процессором STM32F103", что в качестве южного/восточного мостов или всё на рассыпухе собрано)))))))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, haker_fox said:

З.Ы. Кстати, меня ещё злит, когда говорят контроллер, вместо микроконтроллер. Или процессор, вместо микроконтроллер. 

Толерантнее надо быть :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

34 minutes ago, dimka76 said:

Толерантнее надо быть :biggrin:

Ох, снова эта провокация))))))))))))))))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что в качестве южного/восточного мостов или всё на рассыпухе собрано)))))))))))


В "PC-юке" они всё ж были "северный" с "южным" ;-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...