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

 
 
> ARM, C++, IAR. Проблема., STM32F4
Geniok
сообщение Nov 11 2012, 22:02
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 15-07-12
Пользователь №: 72 756



Всем добрый день!
Возникла проблема следующего рода. При компиляции проекта на С++, программа стопорится при попытке вызова системного прерывания.
Используется IAR версии 6.40.2, стандартные библиотеки CMSIS.

Конкрентно виснет на функции delay(), которая реализована следующим образом:

Код
// Функция задержки (паузы) в работе
void Delay(__IO uint32_t nTime)
{
    TimingDelay = nTime;

    // Крутимся в бесконечном цикле, пока счетчик
    // оставшегося времени не станет равным нулю.
    // Уменьшение счетчика происходит с помощью
    // прерываний системного таймера.
    while(TimingDelay != 0);
}

// Функция уменьшения счетчика задержки (паузы)
void TimingDelay_Decrement(void)
{
    if (TimingDelay != 0x00)
    {
        TimingDelay--;
    }
}

В файле stm32f4xx_it.c определяем функцию

Код
void SysTick_Handler()
{
    TimingDelay_Decrement();
}


Виснет в файле startup_stm32f4xx.s в блоке

Код
PUBWEAK SysTick_Handler
        SECTION .text:CODE:REORDER(1)
SysTick_Handler
        B SysTick_Handler    ///  !!!!!!!!   Вот тут останавливается исполнение.


То есть как я понимаю, не может найти реализацию функции SysTick_Handler().

Когда проект был на С, данный код работал. Может кто знает, как его заставить работать на С++ ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MK2
сообщение Nov 23 2012, 11:58
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 30-10-10
Пользователь №: 60 535



Программа завелась... правда подвели макросы...
Спасибо большое за разъяснения.
посмотрим дальше как он на статические методы будет реагировать, особенно если это будут обработчиками прерываний wink.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Geniok   ARM, C++, IAR. Проблема.   Nov 11 2012, 22:02
- - _Артём_   Цитата(Geniok @ Nov 12 2012, 00:02) То ес...   Nov 11 2012, 22:27
|- - Geniok   Цитата(_Артём_ @ Nov 12 2012, 02:27) Что-...   Nov 11 2012, 22:43
- - ReAl   Цитата(Geniok @ Nov 12 2012, 00:02) В фай...   Nov 11 2012, 22:30
|- - _Артём_   Цитата(ReAl @ Nov 12 2012, 00:30) Странно...   Nov 11 2012, 22:44
|- - Geniok   Цитата(ReAl @ Nov 12 2012, 02:30) Странно...   Nov 11 2012, 23:30
||- - Сергей Борщ   QUOTE (Geniok @ Nov 12 2012, 01:30) Скоре...   Nov 12 2012, 07:50
|- - Непомнящий Евгений   Цитата(ReAl @ Nov 12 2012, 02:30) Странно...   Nov 12 2012, 07:12
- - MK2   Что бы не плодить лишних тем, рушил написать сюда....   Nov 22 2012, 18:25
|- - _Артём_   Интересно, в чём смысл этих макросов: Цитата(MK2 ...   Nov 22 2012, 20:23
|- - Сергей Борщ   QUOTE (MK2 @ Nov 22 2012, 20:25) далее te...   Nov 22 2012, 20:26
- - MK2   Цитата(_Артём_ @ Nov 22 2012, 23:23) Инте...   Nov 22 2012, 21:14
|- - _Артём_   Цитата(MK2 @ Nov 22 2012, 23:14) Да, main...   Nov 22 2012, 21:33
- - _Артём_   Цитата(MK2 @ Nov 23 2012, 13:58) посмотри...   Nov 23 2012, 21:04
- - MK2   Цитата(_Артём_ @ Nov 24 2012, 00:04) Реаг...   Nov 29 2012, 15:18
- - _Артём_   Цитата(MK2 @ Nov 29 2012, 17:18) так же н...   Nov 29 2012, 15:26
- - AHTOXA   Вот так точно работает: Кодextern "C" void...   Nov 29 2012, 16:36


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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 03:56
Рейтинг@Mail.ru


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