嵌入式开发中借助于串口输出debug信息,是很重要的手段,本实验就是完成prink函数,这样在以后的试验中可以使用printk打印信息,实验将更加容易理解。
这部分实验实现prink是出,移植的linux-0.01
下面是有个错误的解决办法。错误如下:
vsprintf.o(.text+0xfc): In function `number': : undefined reference to `__umodsi3' vsprintf.o(.text+0x10c): In function `number': : undefined reference to `__udivsi3' make: *** [uart.bin] Error 1
|
解决办法是在makefile中添加如下库:
LIBGCC = $(shell arm-linux-gcc -msoft-float -print-libgcc-file-name)
Makefile如下:
1 SRCDIRS = . 2 LIBGCC = $(shell arm-linux-gcc -msoft-float -print-libgcc-file-name) 3 NAME = $(notdir $(CURDIR)) 4 SFILES := $(foreach dir,$(SRCDIRS),$(wildcard $(dir)/*.S)) 5 CFILES := $(foreach dir,$(SRCDIRS),$(wildcard $(dir)/*.c)) 6 OBJS := $(SFILES:.S=.o) $(CFILES:.c=.o) 7 8 $(NAME).bin: $(NAME).elf 9 @echo objcopying $< ... 10 arm-linux-objcopy -v -O binary -S $(NAME).elf $@ 11 12 $(NAME).dis: $(NAME).elf 13 @echo disambling $< ... 14 arm-linux-objdump -D -m arm $(NAME).elf > $(NAME).dis 15 16 $(NAME).elf: $(OBJS) 17 @echo linking $< ... 18 arm-linux-ld -T$(NAME).lds -o $(NAME).elf -Map $(NAME).map $^ $(LIBGCC) 19 20 %.o:%.c 21 @echo compling $< ... 22 arm-linux-gcc -Wall -O2 -c -o $@ $< 23 24 %.o:%.S 25 @echo assembling $< ... 26 arm-linux-gcc -Wall -O2 -c -o $@ $< 27 28 .PHONY: clean 29 clean: 30 rm -f *.map *.bin *.elf *.dis *.o 31
|
|
文件: |
printk.tar.bz2 |
大小: |
5KB |
下载: |
下载 | |
阅读(3118) | 评论(0) | 转发(1) |