gpt4 book ai didi

c - 编写一个 C 程序来调用另一个程序,而不使用任何内置库

转载 作者:行者123 更新时间:2023-11-30 18:28:50 25 4
gpt4 key购买 nike

我正在尝试为引导加载程序编写一个简单的“go-command”,它将我带到 RAM 中的特定地址(例如 0x18000000),并且它应该执行一个闪烁 led 的程序。我有两个 .c 文件,分别是 led.c 和 go.c,其中 led.c 使两个 LED 闪烁。但我想知道并且不知道如何将控件/调用它的 main() 传递给这个 go.c 文件以转到该地址并开始闪烁 LED?但它应该在不包含其他头文件、库等的情况下完成。请帮助我!提前致谢。下面的代码是 led.c

void delay ()
{
volatile int i;
for(i=0;i<1000000;i++)
{}

}
int main(void)
{
*led0=0;
*led1=0;
while(1)
{
*led0=1;
delay();
*led0=0;
*led1=1;
delay();
*led1=0;
}
}

在我的 go.c 文件中,我想传递一个控件来调用此 led.c main() 函数

最佳答案

您省略了很多可能相关的内容,但从表面上看,您只需声明一个函数指针,用绝对地址初始化并通过该指针调用该函数。

但是可能没那么简单,因为被调用程序将使用调用程序的 C 运行时环境;任何全局静态对象都不会被初始化 - 您需要调用程序入口点(不是main())来建立程序期望的运行时环境。在简单的情况下,它可能在某种程度上起作用或看起来起作用。

关于c - 编写一个 C 程序来调用另一个程序,而不使用任何内置库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44412356/

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