Chinaunix首页 | 论坛 | 博客
  • 博客访问: 312752
  • 博文数量: 172
  • 博客积分: 25
  • 博客等级: 民兵
  • 技术积分: 895
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-09 16:57
文章分类

全部博文(172)

文章存档

2012年(86)

2011年(86)

分类:

2011-11-21 00:10:02

原文地址:printk函数实现 作者:booktree

嵌入式开发中借助于串口输出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
下载: 下载

阅读(659) | 评论(0) | 转发(0) |
0

上一篇:linux头文件

下一篇:Linux面试题

给主人留下些什么吧!~~