Здравствуйте коты, предисловие такое, игрался с 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 работает отлично, контроллер определяет правильно,пишет,стрирает...
1 ...Может ли это повлечь какие то проблемы при работе с stm32f407 ?
... если нет какой либо специфики ( например различия в векторах прерывания ...), то все будет работать нормально ИМХО ... ( конечно про полноценную симуляцию и отладку можно забыть ) 2. Запустить на 168Mhz можно и "ручками" - тем более если datasheet под рукой 3. Использую Keil - F4 там есть ....
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
У меня ИАР древний, но и в нем есть ST STM32F4xxx C Generic C-M4 все будет работать, но надо будет написать свой линкер скрипт. И при отладке не удобно - нет для дебагера файла с описанием регистров переферии - просмотр регистров кроме ядра будет пустой.
Карма: 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
Все верно, линейка F4xx появилась с версии IAR 6.30. Остальное уже расписали.
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
внимательнее. речь не о линкере, а о линкер-скрипте.
Тогда я извиняюсь, но я не совсем понимаю что за линкер-скрипт?
DX168B спасибо! с генерированным вами файлом контроллер запустился на 168Mhz! правда exel-прога не работает что то наверно офис старый, ща разбираюсь...
Последний раз редактировалось jordan Вс авг 19, 2012 16:38:27, всего редактировалось 1 раз.
Макросы разрешить нужно, тогда заработает (сервис -> макрос -> безопасность -> низкая (или средняя)).
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Последний раз редактировалось SubDia Вс авг 19, 2012 16:38:49, всего редактировалось 1 раз.
Карма: 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!
DX168B это у меня настроено, но все равно спасибо за то что откликнулись и не пожалели времени и помогли! И всем кто откликнулся тоже огромное спасибо, пока что все ОК, поставил IAR 6.30 там камушек этот есть, после выбора этого камушка появился и загрузчик напрямую из iar, и дебагер с регистрами... пока есть с чем рарзбираться
Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52 Сообщений: 4468 Откуда: Главный Улей России (Moscow)
Рейтинг сообщения:0
В IAR 6,30 была у меня грабля с прерываниями. Дело в том, что в моей копии среды есть только шаблон C++ Там обработчики надо заносить в extern... Пример обработчика прерывания таймера 2 и 3:
Здравствуйте опытные коты, после некоторой паузы продолжается изучение stm32f4discovery...
Пользуюсь iar 6.30 for arm... Вопрос следующий, можно ли посмотреть в дебагере или еще где нибудь сколько тактов используется на ту или иную функцию???
В avr-studio в дебагере была удобная строка в которой бежали такты... Нет ли здесь чего то подобного???
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения