22.02.2015, 16:35
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Мало ли кто тут что-то говорит!?
Код:
|
uint64_t ds;
ds = (*(__IO uint64_t *)(uint32_t)&(data_buffer));
ds = (((uint64_t)(__REV(ds)) ‹‹ 32) + __REV(ds ›› 32));
ds ››= 5;
ds = (((uint64_t)(__REV(ds)) ‹‹ 32) + __REV(ds ›› 32));
(*(__IO uint64_t *)(uint32_t)&(data_buffer)) = ds; |
Последний раз редактировалось STM32F0; 22.02.2015 в 16:50.
|
|
|
|
22.02.2015, 19:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Дотянуть строку до 8 байт. А далее все просто как мычание.
PHP код:
|
uint8_t string[8];
*( (uint32_t *) &string[4] ) ››= 5; // сдвиyли на 5 бит
string[4] |= string[3] ‹‹= 3 ; // вставили 5 бит
*( (uint32_t *) &string[0] ) ››= 5; // сдвиyли на 5 бит
|
|
|
|
|
23.02.2015, 02:19
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Дотянули... сдвинули... и утетели в HardFault по невыровненным данным.
Нормально, чо.
|
|
|
|
23.02.2015, 12:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Hives
|
Дотянули... сдвинули... и утетели в HardFault по невыровненным данным.
Нормально, чо.
|
Это Вы о чем сейчас ЧОкаете?
Вот для Вас в симуляторе. Вечером буду с железкой баловться ИСЧО покажу результат.
P.S Обратите внимание - все работает и даже чужие байты не порчу при i=6,5,4 так как модифицирется только младший байт.
|
|
|
|
23.02.2015, 12:49
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Кому ЧО, кому ни ЧО, кому ...
В 103-ем может и прокатит, а вот в F051, при невыровненных данных, лихо влетело в HardFault. Такшта, выравнивание какбэ ещё актуально.
|
|
|
|
23.02.2015, 13:41
|
|
Прописка
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
В симуляторе инкремент каждого байта.
Я по другому прием битов написал, сразу укладку байт как нужно мне со сдвигом.
Всем спасибо за помощь.
|
|
|
|
23.02.2015, 14:08
|
|
Прописка
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Я так и предполагал что ничего двигать не нужно! просто вопрос сформулировал не совсем понятно! а решение то покаж? ато тут столько вариантов предложено!!! может часом кому и сгодится.
|
|
|
|
23.02.2015, 14:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от STM32F0
|
Кому ЧО, кому ни ЧО, кому ...
В 103-ем может и прокатит, а вот в F051, при невыровненных данных, лихо влетело в HardFault. Такшта, выравнивание какбэ ещё актуально.
|
Ну так надо иногда вспоминать какой Cortex
Вот на M0 - двигает и не вылетает да и не длинно все это
|
|
|
|
23.02.2015, 14:20
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Цитата:
|
Вот на M0 - двигает и не вылетает да и не длинно все это
|
Угу! ХДЕ? На выровненных данных? Смотрим на адреса и не надеемся на "умность" компилятора.
|
|
|
|
23.02.2015, 16:01
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Boba_spb, Я на F0 влетел на либах Чана . Так что улетает и еще как ...
__________________
Осторожно , злой кот
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:20.
|
|