首页 > 解决方案 > 范围限制字节要求

问题描述

我在一段简单的代码中有一个链接错误,我知道问题出在哪里。

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;
}

当 tempMax 是 64 位 long long 数据类型时,行左移 24 会导致问题。

我想知道的是如何计算正确链接所需的 ROM 数量。

实际错误是

    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 位长类型的情况下使其工作的代码。但是,这会导致一切长时间正常工作,因为它不足以容纳转变。

标签: clinkerlinker-errorsrom

解决方案


推荐阅读