ARM裸奔程序如何调用库函数
来源:互联网 发布:济宁胜通软件 编辑:程序博客网 时间:2024/05/22 10:40
转自韦东山 嵌入式linux应用开发完全手册
1. 在当前目下建立文件夹为include 和lib 分别放置头文件和实现文件
include : ctype.h* gcclib.h* kernel.h* stdio.h* string.h* system.h* types.h*
lib: ctype.c* div64.S* Makefile* printf.c* string.c* vsprintf.h* div64.h* lib1funcs.S* muldi3.c* printf.h* vsprintf.c*
2.上层makefile为:
CC = arm-linux-gcc
LD = arm-linux-ld
AR = arm-linux-ar
OBJCOPY = arm-linux-objcopy
OBJDUMP = arm-linux-objdump
INCLUDEDIR := $(shell pwd)/include @得到当前目录(pwd)下的include目录 :$(函数 参数)格式执行
CFLAGS := -Wall -O2
CPPFLAGS := -nostdinc -I$(INCLUDEDIR) @指定不使用标准头文件,使用-I指定的头文件
LDFLASG := -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc @指定使用的库,其中$(..)为提取当前工具链里边gcc库的路径
export CC LD OBJCOPY OBJDUMP INCLUDEDIR CFLAGS CPPFLAGS
objs := head.o init.o nand.o interrupt.o adc_ts.o serial.o main.o lib/libc.a
adc_ts.bin: $(objs)
${LD} -Tadc_ts.lds -o adc_ts_elf $^ ${LDFLASG}
${OBJCOPY} -O binary -S adc_ts_elf $@
${OBJDUMP} -D -m arm adc_ts_elf > adc_ts.dis
.PHONY : lib/libc.a @.PHONY表示是不存在依赖文件的动作
lib/libc.a:
cd lib; make; cd .. @跳转到当前目录的lib库去执行make命令,再跳转回来(去lib目录执行makefile生成.a库)
%.o:%.c
${CC} $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
%.o:%.S
${CC} $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
clean:
make clean -C lib
rm -f adc_ts.bin adc_ts_elf adc_ts.dis *.o
3.lib中Makefile 为
objs := div64.o lib1funcs.o ctype.o muldi3.o printf.o string.o vsprintf.o
libc.a: $(objs)
${AR} -r -o $@ $^
%.o:%.c
${CC} $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
%.o:%.S
${CC} $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
clean:
rm -f libc.a *.o
- ARM裸奔程序如何调用库函数
- ARM上裸奔的跑马灯程序
- ARM上裸奔的跑马灯程序
- fedora14中配置ARM裸奔程序下载环境
- arm 裸奔经验
- arm仿真器及裸奔步骤
- 浅谈ARM的裸奔调试
- 裸奔程序为什么会跑飞?
- 裸奔程序之UART
- C语言程序调用C++库函数方法
- c程序调用 mysql库函数 操作数据库
- arm汇编语言中调用C库函数printf[原]
- linux 下动态库函数调用--反汇编知识(arm)。
- lua学习二 lua如何调用库函数
- arm AAPCS(程序调用标准)
- 裸奔程序之LED详解
- 裸奔程序之定时器&PWM
- 裸奔程序之看门狗定时器
- 进程和线程的联系和区别
- Shell Parsing Process
- Python截取路径中的文件名
- 实用控件:将任意文件打包进dfm(zlib压缩)的控件
- 一对多关系通过外键关系连接两个表,而没有中间的表。
- ARM裸奔程序如何调用库函数
- 利用plsql developer的命令或isqlplus将查询结果保存到文件中
- html入门的一些东西
- 新建用户、付权限命令
- Objective-C初学者指南(第2版)
- AndroidManifest.xml 详解 (六) 之uses-sdk—— 译自《Beginning Android Games》
- java 中 session 失效设置
- 异常处理与MiniDump详解(4) MiniDump
- 黑马程序员——自学笔记16(交通灯管理系统)