Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly Uboot终止独立应用程序_Assembly_Bootloader_U Boot_Bare Metal - Fatal编程技术网

Assembly Uboot终止独立应用程序

Assembly Uboot终止独立应用程序,assembly,bootloader,u-boot,bare-metal,Assembly,Bootloader,U Boot,Bare Metal,我在终止通过uboot运行的独立应用程序时遇到了一个小问题。我正在使用TI的基于omap5的评估板。uboot工作正常,我有一个简单的程序,可以使用loady通过uboot的命令提示符上传,并使用go[loadaddr]执行 问题是在程序运行并显示字符串后,它就挂在那里了。 我必须手动重置电路板以启动它并继续使用uboot .global _Start _Start: LDR sp, = sp_top BL my_init mov pc,r14 基本上,我只想在程序执行后返回命令提示符 编辑:

我在终止通过uboot运行的独立应用程序时遇到了一个小问题。我正在使用TI的基于omap5的评估板。uboot工作正常,我有一个简单的程序,可以使用loady通过uboot的命令提示符上传,并使用go[loadaddr]执行

问题是在程序运行并显示字符串后,它就挂在那里了。 我必须手动重置电路板以启动它并继续使用uboot

.global _Start
_Start:
LDR sp, = sp_top
BL my_init
mov pc,r14
基本上,我只想在程序执行后返回命令提示符

编辑:

我正在运行的代码

#define UART3_addr       0x48020000 //UART Port Address
volatile unsigned char * const UART_PTR = (unsigned char *)UART3_addr;

int my_init() 
{

display ("Testing");
return 0;
}


void display(const char *string)
{
while(*string != '\0'){
    *UART_PTR = *string;
    string++;
}
}

你没有给我们太多的细节,但是,也许你用U-Boot启动的程序永远不会回来。你能展示一下这个程序吗?我添加了代码…我也尝试过剥离所有内容,只使用返回0;在我的_init()函数中调用。。。。。。。也许你的工具链(ABI?);但我认为您使用的是好的,因为您的程序运行正常。如果您能够读入堆栈并调试此类错误,那就太好了……“我只想返回命令提示符”——然后您必须保留U-Boot交给“程序”的堆栈和返回地址。您的启动代码似乎没有这样做。U-Boot将您的独立“程序”视为一个过程,而不是实际操作系统中的可执行文件。