-
- Платформа-то какая? Неоднократно применял первый вариант с GCC на
Cortex-M3. Может, прерывания, неожиданные изменения вне контекста? Nikolay_Po(231 знак., 16.05.2024 13:57)
- Попробовал write4byte(&((uint8_t*)&crc32)[0], 0); - тоже не стреляет как надо. Фух, забью, на union все работает :) CubeIDE последний 1.15 Но все равно спасибо! - Mty1(16.05.2024 23:46)
- Ага, спасибо, пока сделал через union. На досуге так попробую,
отпишу. Всех благодарю за помощь. Проц stm32f411 - Mty1(16.05.2024 18:34)
- Уточните, что за компилятор. И версию. Вдруг это баг компилятора?
:) - Nikolay_Po(16.05.2024 20:01)
- Блин заработало! И с простым кодом write4byte( &digit32, 0 )
Мой косяк - в коде были проблемы с записью в eeprom - с ожиданием
готовности. Все поехало, большое спасибо всем! - Mty1(17.05.2024 00:00)
- Ну и хорошо. А то я уже испугался, что мой мир рушиться. - Nikolay_Po(17.05.2024 00:39)
- Я думал, тут во все бубны ударили. Но про этот забыл! Можно
сказать, бубен последней надежды :-) - SciFi(16.05.2024 20:13)
- Бубен последней надежды, это сильно. Надо отлить в граните :) - Mty1(17.05.2024 00:01)
- (медленно водит руками закрыв глаза) (валят клубы магического дыма)
(медленно и монотонно) Вангую... С учетом предыдущих вопросов
топикстартера.... Дело не в
бобинекомпиляторе... А компилятор у него... GCC... Свежий.. Так вижу.... Идущий вместе с его STM32... с недавними CubeIDE... - RxTx(16.05.2024 20:26)- :) Ага, ничего не скроешь от тебя. Точно 1.15 - Mty1(16.05.2024 23:47)
- Блин заработало! И с простым кодом write4byte( &digit32, 0 )
Мой косяк - в коде были проблемы с записью в eeprom - с ожиданием
готовности. Все поехало, большое спасибо всем! - Mty1(17.05.2024 00:00)
- Уточните, что за компилятор. И версию. Вдруг это баг компилятора?
:) - Nikolay_Po(16.05.2024 20:01)
- Контекста нет вообще. Вангую, там косяки в коде, который не показан. При цитировании косяки были скрыты. - SciFi(16.05.2024 11:57)
- Так и должно быть. Вы передаёте в функцию указатель на 8р, а
переменная, 32р. Оно ещо и материться должно. mse homjak(174 знак., 16.05.2024 11:57)
- Не должно материться и должно работать, такое приведение указателя безопасно. - LightElf(16.05.2024 14:17)
- Вроде не должно материться. Если память одна и та же и поддерживает байтовую адресацию. - Nikolay_Po(16.05.2024 13:58)
- Ага, так и сделал. - Mty1(16.05.2024 12:18)
- формально похже на правильно. но есть нюансы - первый раз это арес
целого, второй адрес байта - есть выравние адресов которые иногда
невидны, давай асм. размотаем косяг. - klen(16.05.2024 11:41)
- Была бы проблема, если бы определил массив из 4х байт, а потом из них сделал указатель на 32 бита. Выравнивание могло бы выстрелить. Но у ТС наоборот, определена 32бит-переменная и с выравниванием порядок, как ни обращайся. - Nikolay_Po(16.05.2024 14:01)
- Да, видать с выравниванием беда. Чуть позже могу глянуть, бежать надо - Mty1(16.05.2024 12:17)
- Как uint32_t в памяти хранится? BigEndian? LittleEndian? Может тут собака порылась ? - Bинни Пox(16.05.2024 11:40)
- Платформа-то какая? Неоднократно применял первый вариант с GCC на
Cortex-M3. Может, прерывания, неожиданные изменения вне контекста? Nikolay_Po(231 знак., 16.05.2024 13:57)