我正在使用atmel评估板上定制的atmel版本的U-Boot(u-boot-at91)at91sam9x5ek。我使用U-Boot来启动运行正常的Linux。我想实现一个简单的C应用程序,它从ram中读取和更改一些数据。我能够编译并运行hello_world
文件夹中的examples/standalone/
示例。我的问题是,我无法弄清楚如何访问glue.h
文件夹中examples/api/
提供的api函数。我可以包含该文件,但在编译时收到以下错误消息:
u-boot-at91/examples/standalone/hello_world.c:34: undefined reference to `ub_env_set'
我在我的主板头文件中添加了#define CONFIG_API
,因此构建了api。
答案 0 :(得分:0)
函数ub_env_set()在glue.c中实现,这是它的样子:
void ub_env_set(const char *name, char *value)
{
syscall(API_ENV_SET, NULL, (uint32_t)name, (uint32_t)value);
}
一种选择是将glue.c编译并链接到您的可执行文件中。
另一种选择是将ub_env_set()的副本添加到您的代码中,并确保包括api_public.h,如下所示:
#include <api_public.h>
然后你应该能够编译。