gpt4 book ai didi

c - Raspberry PI 中的幂函数

转载 作者:行者123 更新时间:2023-11-30 15:32:24 27 4
gpt4 key购买 nike

我在 Raspberry PI 中遇到 pow() 问题。我使用它并简单地像这样转动GPIO引脚:

*((unsigned int *)(GPIO_PIN_ON)) = ( 1 * pow(2,16) ); // 1 << 16

GPIO_PIN_ON 是我在顶部定义的常量。这很好用。我什至不必包含“Math.h”,但是当我在其他文件中创建“GPIOsetFunction()”并使用 pow() 时,即使使用“math.h”库,也会出现以下错误:

gpio.c:(.text+0x38): undefined reference to `__aeabi_i2d'
gpio.c:(.text+0x48): undefined reference to `__aeabi_i2d'
>> gpio.c:(.text+0x64): undefined reference to `pow'
gpio.c:(.text+0x80): undefined reference to `__aeabi_dmul'
gpio.c:(.text+0x94): undefined reference to `__aeabi_d2iz'

这里表示pow()未定义。有人可以帮我吗?

P.S:我正在将 BakingPI 教程从 Assembly 转换为 C,但我不想使用 Shift 运算符。

下面是我在没有“math.h”和“-lm”的情况下成功运行的代码,如果“-lm”是解决方案,我如何运行它? (这是BAKING-PI教程OK-02的完整代码)

P.S2:我正在使用 YAGARTO 编译器。

#include <sys/types.h>

void main(void);

#define GPIO_BASE 538968064 //0x20200000
#define GPIO_PIN_FUNC (GPIO_BASE+4)
#define GPIO_PIN_ON (GPIO_BASE+28)
#define GPIO_PIN_OFF (GPIO_BASE+40)

void main(void) {
register int counter = 0;
*((unsigned int *)(GPIO_PIN_FUNC)) = ( 1 * pow(2,18) ); //1 << 18
while (1 == 1) { // forever
*((unsigned int *)(GPIO_PIN_OFF)) = ( 1 * pow(2,16) ); //1 << 16
counter = 4128768; //0x3f0000;
while (counter--);
*((unsigned int *)(GPIO_PIN_ON)) = ( 1 * pow(2,16) ); // 1 << 16
counter = 4128768; //0x3f0000;
while (counter--);
}
// should never get here
}

最佳答案

您必须链接到数学库。将 -m 附加到您的编译(链接)命令行。

关于c - Raspberry PI 中的幂函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24259507/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com