Chinaunix首页 | 论坛 | 博客
  • 博客访问: 437569
  • 博文数量: 63
  • 博客积分: 1175
  • 博客等级: 少尉
  • 技术积分: 1204
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-19 11:33
文章分类
文章存档

2015年(1)

2014年(3)

2013年(7)

2012年(52)

分类: WINDOWS

2012-04-19 12:21:02

◆关于C语言

编译命令:arm-elf-gcc -O2 -c 源C文件名

注意这里的-O参数要大写,表示优化参数

比如:arm-elf-gcc -O2 -c hello.c执行后会有一个hello.o的文件生成

链接命令:arm-elf-ld -e 入口函数 -Ttext 内存地址 .o文件 -o 链接后生成的文件

-e表示指定程序的运行入口,-Ttext表示指定该程序的运行基地址(内存地址)

比如:arm-elf-ld -e hello -Ttext 0x0 hello.o -o hello 执行后会生成一个hello文件,入口函数是hello,连接到内存0x0处,此时hello函数就具有了运行条件。

加载到硬件命令:arm-elf-objcopy -o binary 连接后的文件 可执行机器码镜像

比如:arm-elf-objcopy -o binary hello hello.bin 执行后会生成hello.bin文件(-O必须大写)

将hello.bin文件和skyeye.conf文件放在一起,然后执行skyeye就会产生结果。

skyeye.conf文件如下(图中镜像文件为2_1.bin):

此外我们可以写自己的脚本链接文件(.lds),在链接时执行命令: arm-elf-ld -T 脚本链接文件 .o文件 -o 链接生成的文件

脚本链接文件如下:

entry显示指定入口函数

注意:在设置位置计数器时必须有空格,比如.=0x0000000;就会出错

阅读(2017) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~