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

 
 
> О переносимости кода, AVR => ARM
ivainc1789
сообщение Mar 8 2012, 17:54
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



При портировании кода программы на STM32 возникла трудность. На такой строке
Код
*(struct SensStruct*)(TxBuf + 5) = Sensor;

ловлю устойчивый HardFault и не понимаю, почему? Переменная Sensor типа структуры SensStruct копируется в буфер TxBuf начиная с TxBuf[5] для передачи через USART.

В AVR компилировалось без проблем, что в принципе понятно - там нет исключений... Как правильно оформить под ARM и в чем причина?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zöner
сообщение Mar 8 2012, 21:29
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 195
Регистрация: 16-02-12
Пользователь №: 70 299



Цитата
А вот кастить под структуру адрес с неизвестным выравниванием - не есть гуд
для Cortex какая разница ?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 8 2012, 21:43
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zöner @ Mar 9 2012, 01:29) *
для Cortex какая разница ?

А что Cortex?
Цитата
Unaligned support is only available for load/store singles (LDR, STR).

А структурку-то умный компилятор наверняка пытается перегнать через LDM/STM, на которые эта магия не распространяется.
Go to the top of the page
 
+Quote Post



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

 


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


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