Требование к байту ограничения диапазона - PullRequest
0 голосов
/ 21 ноября 2018

У меня ошибка компоновки в простом куске кода, и я знаю, в чем проблема.

long long maxClampRange(long maxClamp, long LoopGainFactor, long LoopGain)
{
    long long tempMax = (long long)maxClamp;
    long long tempMaxClamp;
    tempMaxClamp = (tempMax << 24);
    tempMaxClamp *= (long long)LoopGainFactor/LoopGain;

    return tempMaxClamp;
}

Сдвиг строки влево на 24 вызывает проблему, когда tempMax имеет тип данных длиной 64 бита.

Что мне интересно, так это как рассчитать объем ПЗУ, который мне нужен для правильной связи.

Фактическая ошибка

    lk166 E112: cannot locate 1 sections(s) 
    lk166 I455: requirement:0x10 bytes of ROM area in space spe:xc16x:code'
    lk166 I456: section type: ranged page restriction - any range of [0 .. 65536] with page alignment 65536 within range(s) 0xc0ba00-0xc0be00

У меня нет 'Я нашел способ разбить код, который сделает эту работу без использования 32-битных длинных типов.Но это заставляет все долго работать должным образом, поскольку оно недостаточно велико, чтобы удерживать смену.

...