学习研发笔记
qqbsd
全部博文(8)
2011年(1)
2010年(3)
2009年(4)
分类: LINUX
2009-08-04 09:50:58
/* * ===================================================================================== * * Filename: tinyhelloworld.c * * Description: tinyhelloworld * * Version: 1.0 * Created: 2009年07月04日 10时15分54秒 * Revision: none * Compiler: gcc * * Author: qqbsd, qqbsd.zhou@gmail.com * Company: none * * ===================================================================================== */char *str = "hello world!\n";/********************************************** * * function :print *description :use the syscall write *prototype of wirte: * ssize_t write(int fd, const void *buf, size_t count) **********************************************/void print(void){ __asm__ __volatile__( "mov r0, #0x0\n\t" /*fd*/ "mov r1, %0\n\t" /*buf*/ "mov r2, #0x0d\n\t" /*count*/ "swi (0x00900000 + 4)\n\t" ::"r"(str):"r0","r1","r2");}/******************************************** * function: exit * description: use the syscall exit ********************************************/void exit(void){ __asm__ __volatile__( "mov r0, #42\n\t" "swi (0x00900000 + 1)\n\t");}void nomain(void){ print(); exit();}
#######tinyhellowrold.lds连接脚本#######
ENTRY(nomain)SECTIONS{ . = 0x00008000 + SIZEOF_HEADERS; tinytext : { *(.text) *(.data) *(.rodata) } /DISCARD/ : { *(.comment) }}
#######tinyhelloworld的Makefile######################
tinyhelloworld: tinyhelloworld.c arm-linux-gcc -S -fno-builtin tinyhelloworld.c arm-linux-gcc -c -fno-builtin tinyhelloworld.s arm-linux-ld -static -T tinyhelloworld.lds -o tinyhelloworld tinyhelloworld.oclean: -rm tinyhelloworld *.o tinyhelloworld.s
上一篇:没有了
下一篇:在内核弄出来的一个测试大小端的程序,很好
登录 注册