到目前为止,我一直在用这个作为参考:http://wiki.osdev.org/ARM_Beagleboard
这是我到目前为止,但没有输出.
hello.c中
volatile unsigned int * const UART3DR = (unsigned int *)0x49020000;voID puts(const char *s) { while(*s != '.global startstart: ldr sp,=stack_bottom bl hello b .') { *UART3DR = (unsigned int)(*s); s++; }}voID hello() { puts("Hello,Beagleboard!\n");}
boot.asm
ENTRY(start)MEMORY{ ram : ORIGIN = 0x80200000,LENGTH = 0x10000}SECTIONS{ .hello : { hello.o(.text) } > ram .text : { *(.text) } > ram .data : { *(.data) } > ram .bss : { *(.bss) } > ram . = . + 0x5000; /* 4kB of stack memory */ stack_bottom = .;}
linker.ld
ARMGNU = arm-linux-gnueabiAOPS = --warn --fatal-warningscopS = -Wall -Werror -O2 -nostdlib -nostartfiles -ffreestandingboot.bin: boot.asm $(ARMGNU)-as boot.asm -o boot.o $(ARMGNU)-gcc-4.6 -c $(copS) hello.c -o hello.o $(ARMGNU)-ld -T linker.ld hello.o boot.o -o boot.elf $(ARMGNU)-objdump -D boot.elf > boot.List $(ARMGNU)-objcopy boot.elf -O srec boot.srec $(ARMGNU)-objcopy boot.elf -O binary boot.bin
Makefile文件
.equ UART3.BASE,0x49020000start: ldr r0,=UART3.BASE mov r1,#'c'
只使用像这样的asm文件.
这里有一些Beagleboard / minicom相关信息:http://paste.ubuntu.com/829072/
任何指针? 总结
以上是内存溢出为你收集整理的c – 你好世界,裸机Beagleboard全部内容,希望文章能够帮你解决c – 你好世界,裸机Beagleboard所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)