Например TDA7294

Форум РадиоКот • Просмотр темы - stm32f4 Discovery инициализация
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вт дек 23, 2025 05:05:16

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 11:06:23 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Чт апр 01, 2010 14:14:55
Сообщений: 271
Рейтинг сообщения: 0
Здравствуйте коты, предисловие такое, игрался с stm32f100rb( stm32f100 discovery ) проблем практически не было и инфы в сети достаточно... взял stm32f4 Discovery для изучения более мощного контроллера, и появилось желание использовать стандартную библиотеку для периферии от ST, в stm32f100 работал непосредственно с регистрами по даташиту...
По аналогии создал проект в iar 6.21, подключил startup_stm32f4xx.s, stm32f4xx.h, system_stm32f4xx.c, system_stm32f4xx.h, прописал пути к заголовочным файлам, файл линкера взял из demo проекта от ST для stm32f4discovery проект запустился, помигал светодиодиком, но осталось несколько вопросов и опасений:

1. В general options в поле device не stm32f407vgt6, вообще не ни одного stm32f4... просто выбрал в поле Core - Cortex-M4.
Может ли это повлечь какие то проблемы при работе с stm32f407 ?

2. Контроллер запустился но явно не на 168Mhz, я предполагаю что из-за этого stm32f4xx.h -->
Код:
#if !defined  (HSE_VALUE)
  #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */

А на плате установлен кварц на 8Mhz, как выйти из ситуации желательно с помощью, библиотечных функций и stm32f4xx_rcc.c
( з библиотечными функциями мала знаком )

3. Iar`овский загрузчик(ST-link) и дебагер не работает, пишет что о способен работать только с Cortex-M3,и нет загрузчика в папке Iar/....../,может другую версию Iar, или загрузчик можно где то надыбать, st-link utility работает отлично, контроллер определяет правильно,пишет,стрирает...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 13:19:23 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
jordan писал(а):
1 ...Может ли это повлечь какие то проблемы при работе с stm32f407 ?
... если нет какой либо специфики ( например различия в векторах прерывания ...), то все будет работать нормально ИМХО ... ( конечно про полноценную симуляцию и отладку можно забыть :) )
2. Запустить на 168Mhz можно и "ручками" - тем более если datasheet под рукой
3. Использую Keil - F4 там есть ....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 14:19:55 
Друг Кота
Аватар пользователя

Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7439
Откуда: г. Москва
Рейтинг сообщения: 0
У меня ИАР древний, но и в нем есть ST STM32F4xxx
C Generic C-M4 все будет работать, но надо будет написать свой линкер скрипт.
И при отладке не удобно - нет для дебагера файла с описанием регистров переферии - просмотр регистров кроме ядра будет пустой.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 15:16:43 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Чт апр 01, 2010 14:14:55
Сообщений: 271
Рейтинг сообщения: 0
Цитата:
Запустить на 168Mhz можно и "ручками" - тем более если datasheet под рукой
- то что можно ручками по даташиту это понятно, я попросил пример настройки библиотечными функциями если у кого есть такая возможность...

Цитата:
У меня ИАР древний, но и в нем есть ST STM32F4xxx
C Generic C-M4 все будет работать, но надо будет написать свой линкер скрипт.


линкер в любом случае нужен, линкер есть... а что у вас за версия Iar?

кто настраивал на 168Mhz, как решали задачу?


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 15:34:13 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
У меня IAR 6.30. Там есть этот МК.
А для настройки тактирования я воспользовался Excell скриптом от производителя.
Взять его можно тут: СЦЫЛКО
Настраиваете тактирование, потом жмете Run и потом генерируете исходник system_stm32f4xx.c и заменяете им тот, что есть у вас.
В файле startup надо проверить наличие этих строк:
Код:
.........

        MODULE  ?cstartup

        ;; Forward declaration of sections.
        SECTION CSTACK:DATA:NOROOT(3)

        SECTION .intvec:CODE:NOROOT(2)

        EXTERN  __iar_program_start
        EXTERN  SystemInit
        PUBLIC  __vector_table

        DATA
__vector_table
        DCD     sfe(CSTACK)
        DCD     Reset_Handler             ; Reset Handler
..........

И в обработчике Reset_Handler (в том же файле):
Код:
...................
        THUMB
        PUBWEAK Reset_Handler
        SECTION .text:CODE:REORDER(2)
Reset_Handler

        LDR     R0, =SystemInit
        BLX     R0
        LDR     R0, =__iar_program_start
        BX      R0
..................

А с библиотеками я пока не разбирался. В регистры пишу пока все руками, чтобы нормально его освоить.

Скриншот скрипта:

Изображение

Во вложении лежит готовый исходник. (Ядро 168MHz, шины и периферия тоже на максимальных частотах)


Вложения:
Комментарий к файлу: Исходник (периферия на максимуме)
system_stm32f4xx.c [22.33 KiB]
Скачиваний: 1114

_________________
I am DX168B and this is my favourite forum on internet!
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 16:06:44 
Друг Кота
Аватар пользователя

Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7439
Откуда: г. Москва
Рейтинг сообщения: 0
jordan писал(а):
Цитата:
C Generic C-M4 все будет работать, но надо будет написать свой линкер скрипт.

линкер в любом случае нужен, линкер есть... а что у вас за версия Iar?

внимательнее. речь не о линкере, а о линкер-скрипте.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 16:19:34 
Держит паяльник хвостом
Аватар пользователя

Карма: 9
Рейтинг сообщений: 40
Зарегистрирован: Сб апр 02, 2011 17:59:22
Сообщений: 995
Откуда: Город-герой Севастополь
Рейтинг сообщения: 0
Все верно, линейка F4xx появилась с версии IAR 6.30.
Остальное уже расписали.

_________________
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 16:34:27 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Чт апр 01, 2010 14:14:55
Сообщений: 271
Рейтинг сообщения: 0
Цитата:
внимательнее. речь не о линкере, а о линкер-скрипте.


Тогда я извиняюсь, но я не совсем понимаю что за линкер-скрипт?

DX168B спасибо! с генерированным вами файлом контроллер запустился на 168Mhz! правда exel-прога не работает что то наверно офис старый, ща разбираюсь...


Последний раз редактировалось jordan Вс авг 19, 2012 16:38:27, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 16:37:23 
Держит паяльник хвостом
Аватар пользователя

Карма: 9
Рейтинг сообщений: 40
Зарегистрирован: Сб апр 02, 2011 17:59:22
Сообщений: 995
Откуда: Город-герой Севастополь
Рейтинг сообщения: 0
Макросы разрешить нужно, тогда заработает (сервис -> макрос -> безопасность -> низкая (или средняя)).

_________________
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение


Последний раз редактировалось SubDia Вс авг 19, 2012 16:38:49, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 16:37:58 
Друг Кота
Аватар пользователя

Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7439
Откуда: г. Москва
Рейтинг сообщения: 0
jordan писал(а):
Цитата:
внимательнее. речь не о линкере, а о линкер-скрипте.

Тогда я извиняюсь, но я не совсем понимаю что за линкер-скрипт?

Конфиг для линкера, в какие области памяти какие сегменты поместить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 17:28:52 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Добавлю про сегменты:
Открываем даташит и смотрим на карту памяти\регистров. Там расписаны адреса начала Flash памяти и концовка. Так же там есть тоже самое для ОЗУ (оперативки)
В настройках проекта, в разделе Linker, на вкладке Config ставим галочку Override default.
Далее, указываем путь к нашему будущему линкер-скрипту: $PROJ_DIR$\stm32f4xx_flash.icf
После этого, жмем кнопку Edit и указываем значения адресов памяти:

На первой вкладке Vector table
.intvec start выставляем 0x08000000

На второй вкладке Memory Regions
ROM Start: 0x08000000 ; End: 0x080FFFFF
RAM Start: 0x20000000 ; End: 0x2001FFFF

На третьей вкладке Stack\Heap Sizes
CSTACK: 0x400 ; HEAP: 0x200 //Тут значения размеров стека и кучи. Выбираете сами, в зависимости от поставленной задачи.

После этого, жмете Save и сохраняете файл в папке с проектом.

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 18:54:41 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Чт апр 01, 2010 14:14:55
Сообщений: 271
Рейтинг сообщения: 0
DX168B это у меня настроено, но все равно спасибо за то что откликнулись и не пожалели времени и помогли!
И всем кто откликнулся тоже огромное спасибо, пока что все ОК, поставил IAR 6.30 там камушек этот есть, после выбора
этого камушка появился и загрузчик напрямую из iar, и дебагер с регистрами... пока есть с чем рарзбираться :shock:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс авг 19, 2012 23:08:56 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
В IAR 6,30 была у меня грабля с прерываниями.
Дело в том, что в моей копии среды есть только шаблон C++
Там обработчики надо заносить в extern...
Пример обработчика прерывания таймера 2 и 3:

Код:
//////////////////////////////////////////////////////////////////////////////
extern "C"
{
  void TIM2_IRQHandler(void) //Обработчик прерывания TIM2
  {
    buff++;
      USART_Send(&buff, 1);
    i += 1u;
    TIM2->SR = 0;
  }
  //----------
  void TIM3_IRQHandler(void) //Обработчик прерывания TIM3
  {
    asm("nop");
    
TIM3->SR 0;
  }
};
 

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 Discovery инициализация
СообщениеДобавлено: Вс янв 27, 2013 14:18:54 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Чт апр 01, 2010 14:14:55
Сообщений: 271
Рейтинг сообщения: 0
Здравствуйте опытные коты, после некоторой паузы продолжается изучение stm32f4discovery...

Пользуюсь iar 6.30 for arm... Вопрос следующий, можно ли посмотреть в дебагере или еще где нибудь сколько тактов используется на ту или иную функцию???

В avr-studio в дебагере была удобная строка в которой бежали такты... Нет ли здесь чего то подобного???


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y