-
- Все по разу по этим граблям прохаживались. А вот индусские программисты, писавшие USB-библиотеку STM32F0x2_USB-FS-Device_Lib V1.0.0, на эти грабли от души наступили, но удар по лбу пришелся таким парням как я :-). Цитата из ихней библиотеки, файл il-2(760 знак., 13.10.2015 15:57)
- Выравнивание у ptrMenu->value какое? VLDR требует выровненного (на 4 или 8 байт) адреса, LDR может невыровненные данные кушать. - LightElf(13.10.2015 13:02)
- Да, действительно. Сравнили с другим проектом.Там такая же строча, но все нормально. Как раз выровненное для него получилось. в другом не совпадает. Спасибо. Где могу почитать про эти команды? как защититься от этого? - Constantin24(13.10.2015 13:15)
- Про команды - это на сайте ARM. А про выравнивание вообще есть простое правило: приведение указателей к типам, отличным от char* и void*, чревато боком. - LightElf(13.10.2015 13:21)
- Когда приводите тип указателя, компилятор умывает руки и перестаёт следить за выравниванием. Так что откуда взялся ptrMenu->value, какое у него выравнивание, как обеспечить выравнивание для типа float - только вам ведомо. - SciFi(13.10.2015 13:18)
- Да, действительно. Сравнили с другим проектом.Там такая же строча, но все нормально. Как раз выровненное для него получилось. в другом не совпадает. Спасибо. Где могу почитать про эти команды? как защититься от этого? - Constantin24(13.10.2015 13:15)
- Куда "вылетает"? Каково значение R0 перед "вылетом"? - SciFi(13.10.2015 12:57)
- Вылетает в HardFault_Handler. В R0 перед вылетом хранит адрес, на что указывает ptrMenu->Value - Constantin24(13.10.2015 13:06)