摘要: 编译器:arm-linux- 3.4.1 出现以下错误cc1: error: invalid option `short-load-bytes'make: *** [entry.o]错误 1 如果改用2.95.3则不会出现该问题。 原因是高版本的编译器不支持-mshort-load-bytes选项,改为-malignment-traps即可。 阅读全文
posted @ 2010-02-21 21:20 qiang.xu 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 终于将s3c2410在skyeye上跑起来了,没有操作系统的底层支持,实现的是直接向端口写数据。hello.c/** hello.c* just a function used to output "helloworld" to uart** author: SU Hang* date: 2004-08-28 */void hello(void){ unsigned long n = 0; int i; char * hellostr="helloworld"; long* paddr=(long*)0x50000020; // for timer 阅读全文
posted @ 2010-02-20 21:54 qiang.xu 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 3.1 Basic Linker Script ConceptsWe need todefine some basic concepts and vocabulary in order to describe the linkerscript language.The linker combines input files into a single output file. Theoutput file and each input file are in a special data format known as anobjectfile format. Each file is cal 阅读全文
posted @ 2010-02-19 21:48 qiang.xu 阅读(722) 评论(0) 推荐(0) 编辑
摘要: GNU binutils是一组二进制工具集。包括:addr2line ar gprof nm objcopy objdump ranlib size strings strip. 本文归纳他们的常用法。ar ar用于建立、修改、提取档案文件(archive)。archive是一个包含多个被包含文件的单一文件(也称之为库文件),其结构保证了可以从中检索 并得到原始的被包含文件(称之为archive中的member)。member的原始文件内容、模式(权限)、时间戳、所有着和组等属性都被保存在 archive中。member被提取后,他们的属性被恢复到初始状态。 ar主要用于创建C库文件(关于.o 阅读全文
posted @ 2010-02-19 15:09 qiang.xu 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 调用格式:arm-elf-gcc [stage-opt] [other-opts] -mcpu=arm7tdmi in-file -o out-file常见用法:将C代码编译为二进制目标文件:arm-elf-gcc -c -O2 -g -mcpu=arm7tdmi filename.c -o filename.o将多个二进制目标文件合并为一个可执行文件:arm-elf-ld filename1.o filename2.o … -o filename.elf将C代码直接编译生成可执行文件:arm-elf-gcc -O2 -g -mcpu=arm7tdmi filename. 阅读全文
posted @ 2010-02-18 22:10 qiang.xu 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 在基于ARM的嵌入式系统开发中,常常用到交叉编译的GCC工具链有两种:arm-linux-*和 arm-elf-*,两者区别主要在于使用不同的C库文件。arm-linux-*使用GNU的Glibc,而arm-elf-*一般使用 uClibc/uC-libc或者使用REDHAT专门为嵌入式系统的开发的C库newlib.Glibc。uClibc/uC-libc以及 newlib都是C语言库文件,只是所应用的领域不同而已,Glibc是针对PC开发的,uClibc/uC-libc是与Glibc API兼容的小型化C语言库,实现了Glibc部分功能。  关于uClibc/uC-libc的说明,详见如下: 阅读全文
posted @ 2010-02-18 22:02 qiang.xu 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 在skyeye的安装目录下的testsuites目录下存在arm_hello工程,在该文件夹下存在如下的文件:hello.c,hello.lds,Makefile,start.S,skyeye.conf,README下面是README文件中关于上面三个文件的解释Source Files: After using command 'make clean' to delete binary files, you will findthere are only five source files in "HelloForSkyeye". They are hell 阅读全文
posted @ 2010-02-18 21:54 qiang.xu 阅读(1075) 评论(0) 推荐(0) 编辑
摘要: 0px;width:100%;">skyeye.conf是skyeye的配置文件,用来描述模拟的目标板的类型,内存分布,以及SkyEye的运行配置等等信息。事实上,你可以把想要让用户配置的选项都可以放在skyeye配置文件中。这样用户可以通过编辑skyeye.conf文件来比较灵活的选择仿真平台的功能和定制要模拟的目标板。还是从安装skyeye目录下的testsuites下的skyeye.conf来开始吧。#skyeye config file samplearch:armcpu: arm7tdmimach: at91mem_bank: map=M, type=RW, 阅读全文
posted @ 2010-02-17 21:06 qiang.xu 阅读(2153) 评论(0) 推荐(1) 编辑
摘要: 在上一篇的基础上介绍skyey的相关命令,在skyeye环境中能够使用tab键来实现命令的自动补齐。(1)breakbreak 断点地址(skyeye)break 0x1000050Insert breakpoint at address 0x1000050 successfully.(2)list-bp列出当前所有断点(skyeye)list-bpID Address Hits1 0x1000050 02 0x1 0(3)show-step显示当前运行指令数(skyeye)show-stepsteps: 16605060(4)stepi单步运行指定的指令数(5)xx 某一内存物理地址值(ru 阅读全文
posted @ 2010-02-17 20:10 qiang.xu 阅读(1160) 评论(0) 推荐(0) 编辑
摘要: 在上一篇中没有改写PATH环境变量,可以使用下面的命令:sudo vim /etc/bash.bashrc新增加下面语句if [ -d /opt/skyeye/bin ] ; thenPATH=/opt/skyeye/bin:"${PATH}"fi保存source /etc/profile最后可以从任意的目录下键入skyeye启动程序。在shell中键入skyeye命令:SkyEye is an Open Source project under GPL. All rights of different parts or modules are reserved by th 阅读全文
posted @ 2010-02-17 18:57 qiang.xu 阅读(770) 评论(0) 推荐(0) 编辑
摘要: SkyEye是一个开源软件项目,它是在Linux和Windows平台上实现一个纯软件模拟集成开发环境,模拟常见的嵌入式系统。可以在SkyEye上运行Linux,uClinux以及uC/OS-II等多款嵌入式操作系统和各种系统软件。(1)在ubuntu中最简单的方法当然是使用下面的命令来安装skyeye : sudo apt-get install skyeye(2)下面是从源码来编译skyeye的方法:首先从www.uClinux.org上下载arm-elf-tool,里面包含arm-elf-gcc, arm-elf-ld等工具。可以使用下面的方法来安装:sudo cp XXX/arm-elf 阅读全文
posted @ 2010-02-17 17:19 qiang.xu 阅读(2717) 评论(0) 推荐(0) 编辑
摘要: 首先介绍的整体的环境是ubuntu 9.04 gcc的版本是4.1.下面是具体的环境建立(1)arm-linux-gcc安装在下面的网址上http://www.handhelds.org/download/projects/toolchain/下载arm-linux-gcc-3.4.1.tar.bz2执行下面的命令:将arm-linux-gcc-3.4.1.tar.bz2复制到/tmp下bunzip2arm-linux-gcc-3.4.1.tar.bz2生成arm-linux-gcc-3.4.1.tartar xvf arm-linux-gcc-3.4.1.tar -C /将该tar包解压到/ 阅读全文
posted @ 2010-02-16 22:19 qiang.xu 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 一c#中的变量类型c#中的变量和c,c++,java中类型是大致相同的,包含以下的数据类型:int long float double decimal string char bool (B大写)。每种数据类型都有自己的范围。超出该种数据类型的范围时,会产生编译错误。1.需要注意的是变量类型decimal,它表示的是货币值,它比double数据类型具有更高的精度和更小的范围。具体decimal使用方法参见MSDNhttp://msdn.microsoft.com/zh-cn/library/364x0z75.aspx上关于decimal的介绍。下面列出其中比较重要的几点。1。int类型的变量可 阅读全文
posted @ 2010-02-16 11:00 qiang.xu 阅读(356) 评论(0) 推荐(0) 编辑
摘要: /** ioctl.c 文件实现了输入/输出控制系统调用ioctl(),该函数* 主要是调用函数tty_ioctl()对终端的IO进行控制*//** linux/fs/ioctl.c** (C) 1991 Linus Torvalds*/#include <string.h>#include <errno.h>#include <sys/stat.h>#include <linux/sched.h>extern int tty_ioctl(int dev, int cmd, int 阅读全文
posted @ 2010-02-16 09:17 qiang.xu 阅读(999) 评论(0) 推荐(0) 编辑
摘要: /** linux/fs/inode.c** (C) 1991 Linus Torvalds*/#include <string.h>#include <sys/stat.h> // 文件状态头文件#include <linux/sched.h>#include <linux/kernel.h>#include <linux/mm.h>#include <asm/system.h>struct m_inode inode_tab 阅读全文
posted @ 2010-02-16 09:15 qiang.xu 阅读(2815) 评论(1) 推荐(0) 编辑