exec.c

来自「SMDK2440 boot code, base on vivi」· C语言 代码 · 共 62 行

C
62
字号
/* * vivi/lib/exec.c: Execute a binary. * * Copyright (C) 2002 MIZI Research, Inc. * * Author: Janghoon Lyu <nandy@mizi.com> * * $Date: 2003/08/12 11:14:14 $ * $Revision: 1.1 $ * * $Id: exec.c,v 1.1 2003/08/12 11:14:14 nandy Exp $ * */#include <command.h>#include <memory.h>#include <vstring.h>#include <types.h>static void call(unsigned long addr, long a0, long a1, long a2, long a3){	printk("Jump to 0x%08lx. a0=0x%08lx, a1=0x%08lx, a2=0x%08lx, a3=0x%08lx\n\n", addr, a0, a1, a2, a3);	__asm__(		"mov	r0, %0\n"		"mov	r1, %1\n"		"mov	r2, %2\n"		"mov	r3, %3\n"		"mov	pc, %4\n"	: 	: "r" (a0), "r" (a1), "r" (a2), "r" (a3), "r" (addr)	);}void command_call(int argc, const char **argv){	int i;	long a[4] = { 0, };	unsigned long addr;	if (argc == 1) {		addr = (unsigned long)(RAM_BASE + 0x8000);	} else {		addr = simple_strtoul(argv[1], NULL, 0);	}	i = 2;	for (i = 2; argv[i] == NULL; i++) {		a[i-2] = (long)simple_strtoul(argv[i], NULL, 0);	}	call(addr, a[0], a[1], a[2], a[3]);	return;}user_command_t call_cmd = {	"call",	command_call,	NULL};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?