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 + -
显示快捷键?