roboforum.ru

Технический форум по робототехнике.


Очередной вопрос про STM32F407. Как завести FPU?

ARM7, ARM9, ARM11 etc.

Очередной вопрос про STM32F407. Как завести FPU?

Сообщение elmot » 31 янв 2012, 00:40

Ставлю в KEIL "Use FPU" и при старте рантайм-библиотеки вылетаю в HardFault_Handler.
Проект на C++, библиотека стандартная. RTOS нету, кейл 4.22.
ЧЯДНТ?
Последний раз редактировалось elmot 31 янв 2012, 15:59, всего редактировалось 1 раз.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Очередной идиотский вопрос про STM32F407. Как завести FP

Сообщение Vooon » 31 янв 2012, 11:49

Вот что делать с gcc я знаю, но не с кейлом.
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3336
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Очередной идиотский вопрос про STM32F407. Как завести FP

Сообщение elmot » 31 янв 2012, 13:00

И что сним делать?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Очередной идиотский вопрос про STM32F407. Как завести FP

Сообщение Vooon » 31 янв 2012, 14:50

Для gcc нужно чтобы он был собран с поддержкой -mhard-float и чтобы newlib тоже.
Не уверен, но возможно уже есть -cpu=cortex-m4f с нужными ключами.

Кстати вот нагуглилось: 03 - Harnisch_ARM_Cortex-M4_DSP_SIMD_FP.pdf
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3336
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Очередной идиотский вопрос про STM32F407. Как завести FP

Сообщение elmot » 31 янв 2012, 15:09

Ага... Кажется, это оно! Спасибо, вечером попробую
Похоже дело не в библиотеках и ключах компилятора, а в том, что FPU включить надо. Некий способ описан в PDF.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Очередной идиотский вопрос про STM32F407. Как завести FP

Сообщение galex1981 » 31 янв 2012, 15:20

Главное отпишись по результатам - мне самому интересно как это сделать
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4358
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Очередной вопрос про STM32F407. Как завести FPU?

Сообщение elmot » 31 янв 2012, 22:07

Все, проблема решилась. Vooon, спасибо.
в функцию SystemInit(void)
добавить
Код: Выделить всёРазвернуть
  /* FPU settings ------------------------------------------------------------*/
  SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));  /* set CP10 and CP11 Full Access */
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Очередной вопрос про STM32F407. Как завести FPU?

Сообщение kyb » 04 апр 2014, 09:30

:Yahoo!: Спасибо помогло
kyb
 
Сообщения: 1
Зарегистрирован: 03 апр 2014, 13:36

Re: Очередной вопрос про STM32F407. Как завести FPU?

Сообщение avr123.nm.ru » 04 апр 2014, 10:58

я только мечатаю про stm32 - поясните кратко почему:
/* FPU settings ------------------------------------------------------------*/
SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */

двигается 3 а не 1 и почему *2
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Очередной вопрос про STM32F407. Как завести FPU?

Сообщение dccharacter » 04 апр 2014, 22:38

гггг, авр, серьезно?
3 = 0b11
два бита кагбэ
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4975
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Очередной вопрос про STM32F407. Как завести FPU?

Сообщение avr123.nm.ru » 04 апр 2014, 23:05

я понимаю что 2, просто не понимаю почему. я ж не пробовал их ни разу.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Очередной вопрос про STM32F407. Как завести FPU?

Сообщение dccharacter » 05 апр 2014, 01:15

avr123.nm.ru писал(а):я понимаю что 2, просто не понимаю почему. я ж не пробовал их ни разу.

Ээээ, ну часто бывает, что настройка чего-то не просто вкл/выкл, а как, например, оптимизация - выкл, 1,2,3 левел. Попробуй одним битом представить это.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4975
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Очередной вопрос про STM32F407. Как завести FPU?

Сообщение avr123.nm.ru » 05 апр 2014, 01:37

дак cp10 cp11 по 2 бита чтоль? вот и непонятно, привык к 1 битным битам настройки
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Очередной вопрос про STM32F407. Как завести FPU?

Сообщение dccharacter » 05 апр 2014, 04:59

Посмотри инициализацию осцилляторов в пиках. Да и куча регистров, определяются как бит-поля. По 2-3-4 бита легко. Мильен раз видел.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4975
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Очередной вопрос про STM32F407. Как завести FPU?

Сообщение elmot » 06 апр 2014, 14:47

Двухбитные поля. http://infocenter.arm.com/help/index.js ... DBFBJ.html
Один бит - разрешегние FPU для привелигерованного режима, второй - для обычного.
Вот почему 2 сопроцессора - вот сие вопрос

Добавлено спустя 25 минут 47 секунд:
avr, а зачем ты "только мечтаешь"? купи себе одну из плат дискавери и развлекайся
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

След.

Вернуться в ARM

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Mail.ru counter