c - 范围限制字节要求
问题描述
我在一段简单的代码中有一个链接错误,我知道问题出在哪里。
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 位长类型的情况下使其工作的代码。但是,这会导致一切长时间正常工作,因为它不足以容纳转变。
解决方案
推荐阅读
- reactjs - 如何在选择第一个选择的第一组值时显示?(有2种不同的选择)
- php - WooCommerce:比较变体属性值
- c# - 以编程方式将数据插入 MDS 实体
- azure - 我可以在 azure 中升级 vm 的操作系统吗?
- linux - Bash - 传递给函数的参数中的空格
- python - tensor.numpy() 在 CustomLayer 中不起作用
- sql - Query not returning SUM, only giving separate values
- timezone - 如何更改我在 Centreon 上的支票的时区?
- javascript - 在反应引导表单元格上动态禁用按钮
- python - Python 装饰器无法识别全局变量