oracle pc开发环境,FS_S5PC100平台ARM开发及环境搭建

学习ARM开发的第一件事就是先搭建编程环境,如今有非常多的IDE以及调试软件/仿真硬件,但能支持Cortex-A8的低价仿真器很少。本文介绍一种能仿真FS_S5PC100的低成本仿真器,目前价格不超过200元。

一、 OpenJtag仿真器介绍

目前市面上的仿真器数量众多,并且价格也有很大差异,如Keil ,IAR,RowleyAssociates等,它们的安装使用很便利,并且功能强大,但是价格很贵,几百美元甚至更多,还要购买相应的硬件,如J-LINK,U-LINK等USB到JTAG的转换器。

针对个人学习还是企业需求的话,则需要从多方面出现选择一款适合的仿真器。如果是学习使用,推荐使用OpenJtag。价格便宜,使用开源的openOCD接口,操作稍微繁琐。

如果需要专业一些的调试,则应该选择TRACE 32这类专业级的仿真器,操作简单,调试功能强大,但价格昂贵。

Openjtag是一款基于开源的OpenOcd接口的调试方案,外观小巧,但有着很全的调试功能,集成了一个usb转串口,打印终端操作更容易,再加上eclipse这样强大的集成开发环境,使得它同样能成为工程师的首选,它有着如下的硬件特点:

2077cc748afc218e34c25148265d055b.png

图1 OpenJtag仿真器

●    USB特性

USB2.0全速接口

USB电源供电

●    JTAG特性

IEEE 1149.1标准

大速率6Mbits/s (是并口JTAG的150倍)

Multi-ICE10-pin 插座

Multi-ICE20-pin 插座

目标系统3.0v

●    集成的USB转串口

RS232标准

在线调试功能

支持多种cpu系列,arm经典系列,cortex众多系列。

再来看看配套的软件有哪些特点

●    集成的USB转串口Eclipse集成开发环境

提供实时调试功能。如单步,全速运行,复位,软/硬断点,跳转动态查看寄存器,存储器,变量观察。

●    源码级别调试器OpenOCD,开源,并且提供良好的交互界面

●    支持烧写nor/nand Flash。

二、 eclipse 环境搭建

2.1 下载并安装eclipse

本书大量实验代码都可在eclipse下进行编译(以windows为例),因此重点介绍eclipse的用法,先到官方网站上下一个新的eclipse。

网址:http://www.eclipse.org/downloads/

注意下载的版本应该是集成CDT的Eclipse IDE for C/C++ Developers。下载完成后直接安装,注意设置安装路径。

2.2 下载并安装JDK6.0

1、同样在官方网站上下载JDK6.0

2、安装时,选择自动添加环境变量,这样安装好后,就不需要再去添加,比较方便,不过也可以手动添加。

2.3 下载学习代码

后面所用到的相关代码,读者都可以从http://www.hqyj.com/FarsightBBS/这个论坛上获得。请读者自行下载并分析之。

2.4 工程

1、运行eclipse,如果正常运行的话,可以看到如下的界面

5cae465c0c5adc2ee3ada16419cc6f9c.png

图2 eclipse的启动界面

2、新建工程

(1)File->New->C project,如下图所示。

ab02b7fda41ff1b51b115e690fbad15f.png

图3 创建工程

(2)在弹出的窗口中,按照下图所示分别填写工程名,这个是可以自己喜好填写,其次是你的源代码的存放位置,剩下只要按照图上的方式选择即可,后点击finish。

175d8306a95b6fa367cbe911c0ef8e11.png

图4 创建选项

(3)做到这里,应该会出现类似的工程源文件列表(下图是笔者当前的工程列表),它会自动找出工程目录下的所有文件。这样我们的前期准备工作就做完了,剩下的就需要做两件事,一个是安装交叉编译工具链,一个是安装GDB,后面会逐一介绍。

7d291f6d3a0d2c7d79ba5c769daaf38e.png

图5 创建后的界面

(4)安装交叉编译工具链

首先,请到http://www.yagarto.de/这个地址下载新的工具链,将YAGARTO Tools以及YAGARTO GNU ARM toolchain下载并安装。

da1b28a7a0f6ec6994ad65bd676f34af.png

图6 下载列表

简单介绍下这两个工具,YAGARTO是GNU 交叉编译器的基础上制作的在windows下使用的arm交叉编译工具链,除了是在windows下使用意外,其他和linux下使用没有太大区别,推荐使用当前新版本。

提示:安装的时候好按照默认的方式安装,并且都选择自动添加环境变量。

安装好后,请立刻作如下的测试:

11c6e2c7fd315eca27d036f0033dc2a2.png

图7 cmd下测试工具

打开cmd,并输入命令,arm-none-eabi-gcc -v 看是否有类似的打印信息,注意,读者的命令名称可能会和笔者的不同,所以读者应当参看安装主目录下的bin目录,并以目录下的命令的名称为准。

(5)开始编译吧

在开始编译前,还有件事不得不去做,那就是编写Makefile,以及lds脚本链接文件,既然是GNU-ARM风格,当然要按照它的规则来了,其实编写Makefile是为了给我们刚才下的交叉编译工具使用,现在列出一个简单的Makefile样本以及lds样本。

●    Makefile例子:

CROSS_COMPILE=arm-none-eabi-

SRC=leds

all : start.o leds.o

$(CROSS_COMPILE)ld –T $(SRC).lds -o $(SRC).elf $^

$(CROSS_COMPILE)objcopy -O binary $(SRC).elf $(SRC).bin

$(CROSS_COMPILE)objdump -D $(SRC).elf > $(SRC).dis

%.o : %.S

$(CROSS_COMPILE)gcc -g -c -O0 -o $@ $^

%.o : %.c

$(CROSS_COMPILE)gcc -g -c -O0 -o $@ $^

clean:

rm -f *.o *.bin *.elf *.dis

读者只需要改变CROSS_COMPILE以及SRC这两个环境变量就可以使用了。

●    test.lds链接脚本例子:

SECTIONS

{

. = 0x20008000;

.text :

{

start.o

* (.text)

}

. = ALIGN(4);

.rodata :

{

* (.rodata)

}

. = ALIGN(4);

.data :

{

* (.data)

}

. = ALIGN(4);

bss_start = . ;

.bss :

{

* (.bss)

* (.common)

}

bss_end = . ;

}

(6)编译并烧写程序

如果上面步骤都正确的话,那么可以开始编译了,看到下图所示:

6f239866f5d927d3f6827fe0bb8a1cec.png

图8 提示信息

64dc0aa6126cc1376d8bab70e58dad8e.png

图9 eclipse中的MAKE操作

Project -> Clean ,会执行Makefile中clean这个段内容。Build ALL会执行一次make,相当于按照makefile的规则编译一次。在console中会打印编译信息,对我们编译程序很有帮助。

b977aa80de36e1880be55edf58eda5f6.png

图10 console打印

将生成的.bin文件烧写到s5pc100上可以看到流水灯现象。

2.5 使用OpenJtag进行调试

1、点击图示中的按钮,并打开Debug configuration,进行相应的配置,并将OpenJtag与开发板连接好,准备开始调试。

3413ffb500365eb167d73b24d0f23d39.png

图11 Debug

2、如何设置eclipse的debug配置项

0e9c32d3614d71897742c54f6fd84d31.png

图12 配置一

682810ebad3b496605b46b031fceda89.png

图13 配置二

3f1dfa56e3d8bfbf4bb01509dda4fb95.png

图14 配置三

后点击Apply,并且点击Debug按钮后,就会跳转到debug界面,如图所示:

e6038eddf7ae587486fa9c8a087c6c25.png

图15 调试主界面

从图中可以看出一个大概的调试界面,下面图中的按钮是和调试有关的,有单步,step over,step in方式。还有eclipse自带的挂起,中断连接功能。下面简单介绍下各个窗口的用途。

e7b4c9c42b35754590262d3ce1a374b4.png

图5-17 调试按钮

该窗开用来查看函数变量,可以看到当前i,j的值。

1f8da490f6317b9dd80ddb6670e3b3c0.png

图16 查看变量

该窗口是用来查看ARM寄存器的窗口,从r0-r15通用寄存器的值可以被很清楚的观察到,并且还可观察到 cpsr当前状态寄存器的值。

59fdb833328000c64bf02307be630310.png

图17 查看寄存器

该窗口则是单步调试的时候,代码的跟踪显示,左侧的箭头则是当前pc位置。

下面紧接着的窗口则是断点信息。

6e63afe4588fc434a15cbfba16492260.png

图18 单步调试

到这里,已从大体上介绍eclipse的使用,工程的创建,编译以及如何使用JTAG调试,如果要熟练掌握的话,还需要大量的实验做练习,本书说用的实验代码均可到华清远见官网论坛上找到,地址是:http://www.hqyj.com/FarsightBBS/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值