|
Отладочная плата STM32VLDISCOVERY |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Feb 10 2011, 17:24
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 25-07-06
Пользователь №: 19 070

|
...This is a known bug in EWARM 5.50 with value line flashloader. It is fixed in EWARM5.50.5. I advise you, if possible, to upgrade your EWARM version to 5.50.5 (available on IAR web site: www.iar.com). Else , you can use the attached patch to fix this problem with your installed version. It contains a readme that explains hosw to use it.... https://my.st.com...
|
|
|
|
|
Feb 28 2011, 11:18
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Twen @ Feb 28 2011, 09:22)  Дело, что в настройках компилятора, поставлена галочка "Run to main", а почему тогда работа МК начинается с файла tartup_stm32f10x_md_vl.s, а не с main? Это не в настройках компилятора, а в настройках отладчика. Цитата(Twen @ Feb 28 2011, 13:11)  DCD SysTick_Handler ; SysTick Handler Как эту надпись на ассемблере можно перевести на русский? Обработчик прерывания. Там еще указано [WEAK], что значит, что если найдется другой обработчик в проекте, то этот будет игнорирован. upd. неправильно слово написал, нужно WEAK
|
|
|
|
|
Feb 28 2011, 11:22
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543

|
Согласен, но почему же не с main-а стартует? И если, кто-то знаком с ассемблером стм, то дайте ссылки на какую-то книгу по ассемблеру для стм, заранее спасибо ) Цитата Обработчик прерывания. Там еще указано [WEEK], что значит, что если найдется другой обработчик в проекте, то этот будет игнорирован. А почему не указывается адрес вектора прерывания?
Сообщение отредактировал Twen - Feb 28 2011, 11:22
|
|
|
|
|
Feb 28 2011, 11:46
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Twen @ Feb 28 2011, 13:22)  Согласен, но почему же не с main-а стартует? И если, кто-то знаком с ассемблером стм, то дайте ссылки на какую-то книгу по ассемблеру для стм, заранее спасибо ) А почему не указывается адрес вектора прерывания? Joseph Yiu. The Definitive Guide to the ARM Cortex-M3, 2 Ed (2010) здесь имеется, но доверие нужно заслужить Сами вектора прерываний заданы в начале startup_*.s А адрес обработчика подставляется командой DCD Код DCD SysTick_Handler ; SysTick Handler Потом идет обработчик-заглушка. Зацикленный на себя код. Код SysTick_Handler PROC EXPORT SysTick_Handler [WEAK] B . ENDP Но в другом файле (*_it.c обычно) можно создать другой обработчик прерывания, на c. Который и будет скомпилирован и собран в проект. До перехода в main() выполняются две функции. Функция __main копирует code и data, копирует или декомпрессирует RW data, инициализирует нулями ZI дата. Затем функция __rt_entry устанавливает stack и heap, инициализирует библиотечные функции, вызывает конструкторы верхнего уровня C++ (а также выходит из приложения после окончания работы основной программы). После этого вызывается функция main. Так написано в DUI0471C_developing_for_arm_processors.pdf Который (и кучу других) можно скачать с сайта ARM.
|
|
|
|
|
Mar 2 2011, 07:59
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543

|
Я хочу поставить на процессор(платка discovery) STM32F100B операционную систему uicroC...на сайте http://micrium.com есть множество ОС микроС, которые уже портированы, для stm есть ОС портированы на отладочные платы STM3210B-EVAL, STM3210E-EVAL, STM32-SK, STM32F103ZE-SK...у все них процессор STM32F103, а у моей платы F100. Так как процессоры 103 и 100 отличаются по большому счету емкостью памяти и наличием аппаратного USB, то я могу смело скачивать операционку для одного из отладочных модулей и использовать для своей платы, не так ли? И какие меня могут ожидать трудности в использовании ОС для 103 а не для 100? P.S. С ОС реального времени никогда не работал.
Сообщение отредактировал Twen - Mar 2 2011, 08:00
|
|
|
|
|
Mar 30 2011, 11:12
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543

|
Опытные товарищи программисты обращаюсь к вам за помощью. И так начался разбираться с микроС. Прочитал перевод книги о микроСи и принялся за практику. И тут началось )... У меня возникла следующая проблема, на сайте микроСи я скачал проект для отладочной платы STM32F103ZE-SK, вот ссылка . У меня на плате, как я уже говорил контроллер STM32F100B, а проект сделан на 103 ... Так вот , проект я нормально загрузил у свою платку, но после загрузки зеленая полоса с курсором появляется не на заголовке функции main, а на у асемблерном окне(Рис. 2). И после запуска программы процессор попадает у функцию App_Fault_ISR ( Description : Handle hard fault.) по прерыванию(Рис.1). Выходит что-то не так с настройками ОС под мой процессор. Например 103 работает на частотах до 72 Мгц и переферии у него больше чем у 100. Но я как бы запутался, я думал код программы начинает с выполнение с функции main , а в нее я даже не захожу а сразу попадаю в прерывания, так вот не понятно где находятся эти самые настройки, которые вызывают прерывание по аппаратной ошибки(То есть откуда стартует код!!! Как видно явно не из main...). За раннее спасибо.
Сообщение отредактировал Twen - Mar 30 2011, 11:14
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 30 2011, 12:46
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Скорее всего, у вас банально не хватает ОЗУ, у 100-й серии его маловато. Стартап может быть написан и на Си, поищите таблицу векторов (что-то типа Код void (* const g_pfnVectors[])(void) = { (intfunc)((unsigned long)&_estack), Reset_Handler, NMI_Handler, HardFault_Handler, MemManage_Handler,
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|