Перейти к содержанию
    

Деление по модулю

Мой ИАР матюкается на строчку кода из __ramfunc функции:

if((iBit_Count > 0)  && ((iBit_Count % 5) == 0)){

 

вот таким сообщением:

Warning[Ta021]: Library call (??div32_a) from within a __ramfunc function

 

походу ему не нравится деление по модулю, т. е. происходит вызов НЕ __ramfunc функции из __ramfunc функции. Как это можно обойти? сделать свою __ramfunc функцию деления по модулю или как то заставить разместить в RAM стандартную, если это возможно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В соседней теме обсуждается вычисление кратности числа, без использования библиотечных функций вычисления остатка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день, уважаемые форумчане!

У меня вопрос немного офтопик, но проблема та-же. Когда объявляю функцию __arm __ramfunc ворчит: (IAR 440, ADuc7020)

Warning[Ta021]: Library call (??ldr32h_a) from within a __ramfunc function

Если убрать директиву __arm то компилится нормально, но я так понимаю, что в режиме арм из ОЗУ работало бы еще быстрее.

Вот код:

 
typedef struct
{
        int16_t Re;
        int16_t Im;
} cplx;

__ramfunc __arm
void Foo(cplx *x)
{
cplx T;
....
T  = x[j];    // на эту и подобные строчки ругается
/*-----------*/
T.Re  = x[j].Re;
T.Im  = x[j].Im; // такая запись компилится в арме, но смотрится криво
...
}

Что делать? На асме писать не хотелось бы...

Заранее благодарен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...